Skip to content

feat(m7.5a): TypeScript progressive disclosure + conformance parity - #31

Merged
shamspias merged 1 commit into
mainfrom
build/m7.5a-ts-conformance
Jul 5, 2026
Merged

feat(m7.5a): TypeScript progressive disclosure + conformance parity#31
shamspias merged 1 commit into
mainfrom
build/m7.5a-ts-conformance

Conversation

@shamspias

Copy link
Copy Markdown
Owner

The cross-language parity gate: the full shared conformance suite now passes in TypeScript, mirroring Python and Go.

  • disclosure.ts: dual progressive disclosure (§2.12) — above 12 registered capabilities the model sees only a constant-size search_capabilities tool instead of the whole registry; matches are exposed and become directly callable. A SchemaIndex, when attached, is reachable only via search_schema. Keyword tokenize/score, exposed-match tracking, and a collision guard, all mirroring the Python and Go ports so the base-context behavior is language-neutral.
  • loop.ts: discovery calls are answered inline — harness-internal reads that are never gated and allowed under ask(); the model.complete tool surface now comes from Disclosure.tools(). Agent config and RunOptions gain schema/defer.
  • tests/conformance.test.ts: the TS adapter for spec/conformance/cases — loads the same language-neutral YAML (js-yaml, a test-only dep), drives the TS harness with a scripted FakeModel, and asserts each case's expect block. Passes all 13 neutral cases (linter + golden), skipping only the {program} code-mode case, whose step carries Python source (a language-specific dialect, contract §7.5) — TS code-mode will be validated by native tests.
  • disclosure.test.ts: deferral threshold, search exposing matches, schema search, empty-query and no-match hints, and the discovery-tool name collision.
  • README/roadmap: TypeScript now listed as passing the shared conformance suite.

Verified: make js-check green — format, typecheck, 111 tests (110 pass, 1 skip).

The cross-language parity gate: the full shared conformance suite now passes in
TypeScript, mirroring Python and Go.

- disclosure.ts: dual progressive disclosure (§2.12) — above 12 registered
  capabilities the model sees only a constant-size search_capabilities tool instead
  of the whole registry; matches are exposed and become directly callable. A
  SchemaIndex, when attached, is reachable only via search_schema. Keyword
  tokenize/score, exposed-match tracking, and a collision guard, all mirroring the
  Python and Go ports so the base-context behavior is language-neutral.
- loop.ts: discovery calls are answered inline — harness-internal reads that are
  never gated and allowed under ask(); the model.complete tool surface now comes
  from Disclosure.tools(). Agent config and RunOptions gain schema/defer.
- tests/conformance.test.ts: the TS adapter for spec/conformance/cases — loads the
  same language-neutral YAML (js-yaml, a test-only dep), drives the TS harness with
  a scripted FakeModel, and asserts each case's expect block. Passes all 13 neutral
  cases (linter + golden), skipping only the {program} code-mode case, whose step
  carries Python source (a language-specific dialect, contract §7.5) — TS code-mode
  will be validated by native tests.
- disclosure.test.ts: deferral threshold, search exposing matches, schema search,
  empty-query and no-match hints, and the discovery-tool name collision.
- README/roadmap: TypeScript now listed as passing the shared conformance suite.

Verified: make js-check green — format, typecheck, 111 tests (110 pass, 1 skip).
@shamspias
shamspias merged commit 4d1e904 into main Jul 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant