@jini-ai/agent-runtime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +43 -0
- package/dist/acp-model-probe.d.ts +48 -0
- package/dist/acp-model-probe.d.ts.map +1 -0
- package/dist/acp-model-probe.js +15 -0
- package/dist/acp-model-probe.js.map +1 -0
- package/dist/agent-protocol/acp/account-failure.d.ts +54 -0
- package/dist/agent-protocol/acp/account-failure.d.ts.map +1 -0
- package/dist/agent-protocol/acp/account-failure.js +37 -0
- package/dist/agent-protocol/acp/account-failure.js.map +1 -0
- package/dist/agent-protocol/acp/constants.d.ts +26 -0
- package/dist/agent-protocol/acp/constants.d.ts.map +1 -0
- package/dist/agent-protocol/acp/constants.js +39 -0
- package/dist/agent-protocol/acp/constants.js.map +1 -0
- package/dist/agent-protocol/acp/index.d.ts +14 -0
- package/dist/agent-protocol/acp/index.d.ts.map +1 -0
- package/dist/agent-protocol/acp/index.js +14 -0
- package/dist/agent-protocol/acp/index.js.map +1 -0
- package/dist/agent-protocol/acp/json.d.ts +82 -0
- package/dist/agent-protocol/acp/json.d.ts.map +1 -0
- package/dist/agent-protocol/acp/json.js +144 -0
- package/dist/agent-protocol/acp/json.js.map +1 -0
- package/dist/agent-protocol/acp/models.d.ts +112 -0
- package/dist/agent-protocol/acp/models.d.ts.map +1 -0
- package/dist/agent-protocol/acp/models.js +293 -0
- package/dist/agent-protocol/acp/models.js.map +1 -0
- package/dist/agent-protocol/acp/rpc.d.ts +107 -0
- package/dist/agent-protocol/acp/rpc.d.ts.map +1 -0
- package/dist/agent-protocol/acp/rpc.js +162 -0
- package/dist/agent-protocol/acp/rpc.js.map +1 -0
- package/dist/agent-protocol/acp/session-params.d.ts +55 -0
- package/dist/agent-protocol/acp/session-params.d.ts.map +1 -0
- package/dist/agent-protocol/acp/session-params.js +81 -0
- package/dist/agent-protocol/acp/session-params.js.map +1 -0
- package/dist/agent-protocol/acp/session.d.ts +101 -0
- package/dist/agent-protocol/acp/session.d.ts.map +1 -0
- package/dist/agent-protocol/acp/session.js +832 -0
- package/dist/agent-protocol/acp/session.js.map +1 -0
- package/dist/agent-protocol/acp/text-suppression.d.ts +73 -0
- package/dist/agent-protocol/acp/text-suppression.d.ts.map +1 -0
- package/dist/agent-protocol/acp/text-suppression.js +229 -0
- package/dist/agent-protocol/acp/text-suppression.js.map +1 -0
- package/dist/agent-protocol/acp/types.d.ts +27 -0
- package/dist/agent-protocol/acp/types.d.ts.map +1 -0
- package/dist/agent-protocol/acp/types.js +2 -0
- package/dist/agent-protocol/acp/types.js.map +1 -0
- package/dist/agent-protocol/acp/updates.d.ts +166 -0
- package/dist/agent-protocol/acp/updates.d.ts.map +1 -0
- package/dist/agent-protocol/acp/updates.js +268 -0
- package/dist/agent-protocol/acp/updates.js.map +1 -0
- package/dist/agent-protocol/core/index.d.ts +6 -0
- package/dist/agent-protocol/core/index.d.ts.map +1 -0
- package/dist/agent-protocol/core/index.js +6 -0
- package/dist/agent-protocol/core/index.js.map +1 -0
- package/dist/agent-protocol/core/json-line-stream.d.ts +42 -0
- package/dist/agent-protocol/core/json-line-stream.d.ts.map +1 -0
- package/dist/agent-protocol/core/json-line-stream.js +333 -0
- package/dist/agent-protocol/core/json-line-stream.js.map +1 -0
- package/dist/agent-protocol/index.d.ts +8 -0
- package/dist/agent-protocol/index.d.ts.map +1 -0
- package/dist/agent-protocol/index.js +8 -0
- package/dist/agent-protocol/index.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/events.d.ts +26 -0
- package/dist/agent-protocol/pi-rpc/events.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/events.js +167 -0
- package/dist/agent-protocol/pi-rpc/events.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/index.d.ts +11 -0
- package/dist/agent-protocol/pi-rpc/index.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/index.js +11 -0
- package/dist/agent-protocol/pi-rpc/index.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/internal.d.ts +45 -0
- package/dist/agent-protocol/pi-rpc/internal.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/internal.js +41 -0
- package/dist/agent-protocol/pi-rpc/internal.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/models.d.ts +21 -0
- package/dist/agent-protocol/pi-rpc/models.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/models.js +48 -0
- package/dist/agent-protocol/pi-rpc/models.js.map +1 -0
- package/dist/agent-protocol/pi-rpc/session.d.ts +106 -0
- package/dist/agent-protocol/pi-rpc/session.d.ts.map +1 -0
- package/dist/agent-protocol/pi-rpc/session.js +371 -0
- package/dist/agent-protocol/pi-rpc/session.js.map +1 -0
- package/dist/amr-model-cache.d.ts +40 -0
- package/dist/amr-model-cache.d.ts.map +1 -0
- package/dist/amr-model-cache.js +79 -0
- package/dist/amr-model-cache.js.map +1 -0
- package/dist/amr-profile-resolver.d.ts +21 -0
- package/dist/amr-profile-resolver.d.ts.map +1 -0
- package/dist/amr-profile-resolver.js +4 -0
- package/dist/amr-profile-resolver.js.map +1 -0
- package/dist/artifact-taxonomy.d.ts +27 -0
- package/dist/artifact-taxonomy.d.ts.map +1 -0
- package/dist/artifact-taxonomy.js +5 -0
- package/dist/artifact-taxonomy.js.map +1 -0
- package/dist/auth.d.ts +25 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +332 -0
- package/dist/auth.js.map +1 -0
- package/dist/capabilities.d.ts +9 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +2 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/claude-stream.d.ts +37 -0
- package/dist/claude-stream.d.ts.map +1 -0
- package/dist/claude-stream.js +660 -0
- package/dist/claude-stream.js.map +1 -0
- package/dist/copilot-stream.d.ts +37 -0
- package/dist/copilot-stream.d.ts.map +1 -0
- package/dist/copilot-stream.js +136 -0
- package/dist/copilot-stream.js.map +1 -0
- package/dist/defs/aider.d.ts +13 -0
- package/dist/defs/aider.d.ts.map +1 -0
- package/dist/defs/aider.js +63 -0
- package/dist/defs/aider.js.map +1 -0
- package/dist/defs/amp.d.ts +12 -0
- package/dist/defs/amp.d.ts.map +1 -0
- package/dist/defs/amp.js +56 -0
- package/dist/defs/amp.js.map +1 -0
- package/dist/defs/amr.d.ts +37 -0
- package/dist/defs/amr.d.ts.map +1 -0
- package/dist/defs/amr.js +303 -0
- package/dist/defs/amr.js.map +1 -0
- package/dist/defs/antigravity.d.ts +25 -0
- package/dist/defs/antigravity.d.ts.map +1 -0
- package/dist/defs/antigravity.js +213 -0
- package/dist/defs/antigravity.js.map +1 -0
- package/dist/defs/claude.d.ts +30 -0
- package/dist/defs/claude.d.ts.map +1 -0
- package/dist/defs/claude.js +130 -0
- package/dist/defs/claude.js.map +1 -0
- package/dist/defs/codebuddy.d.ts +26 -0
- package/dist/defs/codebuddy.d.ts.map +1 -0
- package/dist/defs/codebuddy.js +124 -0
- package/dist/defs/codebuddy.js.map +1 -0
- package/dist/defs/codex.d.ts +30 -0
- package/dist/defs/codex.d.ts.map +1 -0
- package/dist/defs/codex.js +196 -0
- package/dist/defs/codex.js.map +1 -0
- package/dist/defs/copilot.d.ts +12 -0
- package/dist/defs/copilot.d.ts.map +1 -0
- package/dist/defs/copilot.js +88 -0
- package/dist/defs/copilot.js.map +1 -0
- package/dist/defs/cursor-agent.d.ts +27 -0
- package/dist/defs/cursor-agent.d.ts.map +1 -0
- package/dist/defs/cursor-agent.js +93 -0
- package/dist/defs/cursor-agent.js.map +1 -0
- package/dist/defs/deepseek.d.ts +12 -0
- package/dist/defs/deepseek.d.ts.map +1 -0
- package/dist/defs/deepseek.js +53 -0
- package/dist/defs/deepseek.js.map +1 -0
- package/dist/defs/devin.d.ts +12 -0
- package/dist/defs/devin.d.ts.map +1 -0
- package/dist/defs/devin.js +45 -0
- package/dist/defs/devin.js.map +1 -0
- package/dist/defs/grok-build.d.ts +26 -0
- package/dist/defs/grok-build.d.ts.map +1 -0
- package/dist/defs/grok-build.js +105 -0
- package/dist/defs/grok-build.js.map +1 -0
- package/dist/defs/hermes.d.ts +13 -0
- package/dist/defs/hermes.d.ts.map +1 -0
- package/dist/defs/hermes.js +51 -0
- package/dist/defs/hermes.js.map +1 -0
- package/dist/defs/index.d.ts +33 -0
- package/dist/defs/index.d.ts.map +1 -0
- package/dist/defs/index.js +33 -0
- package/dist/defs/index.js.map +1 -0
- package/dist/defs/kilo.d.ts +12 -0
- package/dist/defs/kilo.d.ts.map +1 -0
- package/dist/defs/kilo.js +20 -0
- package/dist/defs/kilo.js.map +1 -0
- package/dist/defs/kimi.d.ts +13 -0
- package/dist/defs/kimi.d.ts.map +1 -0
- package/dist/defs/kimi.js +26 -0
- package/dist/defs/kimi.js.map +1 -0
- package/dist/defs/kiro.d.ts +12 -0
- package/dist/defs/kiro.d.ts.map +1 -0
- package/dist/defs/kiro.js +20 -0
- package/dist/defs/kiro.js.map +1 -0
- package/dist/defs/mimo.d.ts +13 -0
- package/dist/defs/mimo.d.ts.map +1 -0
- package/dist/defs/mimo.js +26 -0
- package/dist/defs/mimo.js.map +1 -0
- package/dist/defs/opencode.d.ts +27 -0
- package/dist/defs/opencode.d.ts.map +1 -0
- package/dist/defs/opencode.js +89 -0
- package/dist/defs/opencode.js.map +1 -0
- package/dist/defs/pi.d.ts +18 -0
- package/dist/defs/pi.d.ts.map +1 -0
- package/dist/defs/pi.js +94 -0
- package/dist/defs/pi.js.map +1 -0
- package/dist/defs/qoder.d.ts +11 -0
- package/dist/defs/qoder.d.ts.map +1 -0
- package/dist/defs/qoder.js +50 -0
- package/dist/defs/qoder.js.map +1 -0
- package/dist/defs/qwen.d.ts +11 -0
- package/dist/defs/qwen.d.ts.map +1 -0
- package/dist/defs/qwen.js +28 -0
- package/dist/defs/qwen.js.map +1 -0
- package/dist/defs/reasonix.d.ts +20 -0
- package/dist/defs/reasonix.d.ts.map +1 -0
- package/dist/defs/reasonix.js +60 -0
- package/dist/defs/reasonix.js.map +1 -0
- package/dist/defs/shared.d.ts +23 -0
- package/dist/defs/shared.d.ts.map +1 -0
- package/dist/defs/shared.js +58 -0
- package/dist/defs/shared.js.map +1 -0
- package/dist/defs/trae-cli.d.ts +14 -0
- package/dist/defs/trae-cli.d.ts.map +1 -0
- package/dist/defs/trae-cli.js +22 -0
- package/dist/defs/trae-cli.js.map +1 -0
- package/dist/defs/vibe.d.ts +12 -0
- package/dist/defs/vibe.d.ts.map +1 -0
- package/dist/defs/vibe.js +20 -0
- package/dist/defs/vibe.js.map +1 -0
- package/dist/detection.d.ts +14 -0
- package/dist/detection.d.ts.map +1 -0
- package/dist/detection.js +266 -0
- package/dist/detection.js.map +1 -0
- package/dist/diagnostics.d.ts +8 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +95 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/env.d.ts +19 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +95 -0
- package/dist/env.js.map +1 -0
- package/dist/executables.d.ts +24 -0
- package/dist/executables.d.ts.map +1 -0
- package/dist/executables.js +349 -0
- package/dist/executables.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/dist/invocation.d.ts +6 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +47 -0
- package/dist/invocation.js.map +1 -0
- package/dist/json-event-stream.d.ts +9 -0
- package/dist/json-event-stream.d.ts.map +1 -0
- package/dist/json-event-stream.js +856 -0
- package/dist/json-event-stream.js.map +1 -0
- package/dist/launch.d.ts +12 -0
- package/dist/launch.d.ts.map +1 -0
- package/dist/launch.js +221 -0
- package/dist/launch.js.map +1 -0
- package/dist/mcp.d.ts +44 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +12 -0
- package/dist/mcp.js.map +1 -0
- package/dist/metadata.d.ts +24 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +100 -0
- package/dist/metadata.js.map +1 -0
- package/dist/mmd-routes.d.ts +12 -0
- package/dist/mmd-routes.d.ts.map +1 -0
- package/dist/mmd-routes.js +146 -0
- package/dist/mmd-routes.js.map +1 -0
- package/dist/model-registry.d.ts +120 -0
- package/dist/model-registry.d.ts.map +1 -0
- package/dist/model-registry.js +77 -0
- package/dist/model-registry.js.map +1 -0
- package/dist/models.d.ts +16 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +93 -0
- package/dist/models.js.map +1 -0
- package/dist/opencode-log.d.ts +16 -0
- package/dist/opencode-log.d.ts.map +1 -0
- package/dist/opencode-log.js +163 -0
- package/dist/opencode-log.js.map +1 -0
- package/dist/paths.d.ts +3 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +29 -0
- package/dist/paths.js.map +1 -0
- package/dist/pi-models.d.ts +13 -0
- package/dist/pi-models.d.ts.map +1 -0
- package/dist/pi-models.js +36 -0
- package/dist/pi-models.js.map +1 -0
- package/dist/prompt-augmenter.d.ts +60 -0
- package/dist/prompt-augmenter.d.ts.map +1 -0
- package/dist/prompt-augmenter.js +26 -0
- package/dist/prompt-augmenter.js.map +1 -0
- package/dist/prompt-budget.d.ts +20 -0
- package/dist/prompt-budget.d.ts.map +1 -0
- package/dist/prompt-budget.js +226 -0
- package/dist/prompt-budget.js.map +1 -0
- package/dist/prompt-file.d.ts +7 -0
- package/dist/prompt-file.d.ts.map +1 -0
- package/dist/prompt-file.js +27 -0
- package/dist/prompt-file.js.map +1 -0
- package/dist/providers/aihubmix.d.ts +99 -0
- package/dist/providers/aihubmix.d.ts.map +1 -0
- package/dist/providers/aihubmix.js +239 -0
- package/dist/providers/aihubmix.js.map +1 -0
- package/dist/providers/anthropic-messages.d.ts +116 -0
- package/dist/providers/anthropic-messages.d.ts.map +1 -0
- package/dist/providers/anthropic-messages.js +313 -0
- package/dist/providers/anthropic-messages.js.map +1 -0
- package/dist/providers/azure-chat.d.ts +99 -0
- package/dist/providers/azure-chat.d.ts.map +1 -0
- package/dist/providers/azure-chat.js +164 -0
- package/dist/providers/azure-chat.js.map +1 -0
- package/dist/providers/connection-guard.d.ts +67 -0
- package/dist/providers/connection-guard.d.ts.map +1 -0
- package/dist/providers/connection-guard.js +211 -0
- package/dist/providers/connection-guard.js.map +1 -0
- package/dist/providers/elevenlabs.d.ts +28 -0
- package/dist/providers/elevenlabs.d.ts.map +1 -0
- package/dist/providers/elevenlabs.js +138 -0
- package/dist/providers/elevenlabs.js.map +1 -0
- package/dist/providers/google-messages.d.ts +108 -0
- package/dist/providers/google-messages.d.ts.map +1 -0
- package/dist/providers/google-messages.js +284 -0
- package/dist/providers/google-messages.js.map +1 -0
- package/dist/providers/google.d.ts +20 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +42 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +39 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +39 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/model-catalog.d.ts +32 -0
- package/dist/providers/model-catalog.d.ts.map +1 -0
- package/dist/providers/model-catalog.js +394 -0
- package/dist/providers/model-catalog.js.map +1 -0
- package/dist/providers/oauth-callback-server.d.ts +35 -0
- package/dist/providers/oauth-callback-server.d.ts.map +1 -0
- package/dist/providers/oauth-callback-server.js +217 -0
- package/dist/providers/oauth-callback-server.js.map +1 -0
- package/dist/providers/oauth-credentials.d.ts +29 -0
- package/dist/providers/oauth-credentials.d.ts.map +1 -0
- package/dist/providers/oauth-credentials.js +70 -0
- package/dist/providers/oauth-credentials.js.map +1 -0
- package/dist/providers/oauth-provider.d.ts +95 -0
- package/dist/providers/oauth-provider.d.ts.map +1 -0
- package/dist/providers/oauth-provider.js +130 -0
- package/dist/providers/oauth-provider.js.map +1 -0
- package/dist/providers/oauth-tokens.d.ts +35 -0
- package/dist/providers/oauth-tokens.d.ts.map +1 -0
- package/dist/providers/oauth-tokens.js +136 -0
- package/dist/providers/oauth-tokens.js.map +1 -0
- package/dist/providers/ollama-chat.d.ts +106 -0
- package/dist/providers/ollama-chat.d.ts.map +1 -0
- package/dist/providers/ollama-chat.js +292 -0
- package/dist/providers/ollama-chat.js.map +1 -0
- package/dist/providers/openai-chat.d.ts +147 -0
- package/dist/providers/openai-chat.d.ts.map +1 -0
- package/dist/providers/openai-chat.js +302 -0
- package/dist/providers/openai-chat.js.map +1 -0
- package/dist/providers/pkce.d.ts +81 -0
- package/dist/providers/pkce.d.ts.map +1 -0
- package/dist/providers/pkce.js +176 -0
- package/dist/providers/pkce.js.map +1 -0
- package/dist/providers/sse-decode.d.ts +47 -0
- package/dist/providers/sse-decode.d.ts.map +1 -0
- package/dist/providers/sse-decode.js +109 -0
- package/dist/providers/sse-decode.js.map +1 -0
- package/dist/providers/token-params.d.ts +29 -0
- package/dist/providers/token-params.d.ts.map +1 -0
- package/dist/providers/token-params.js +41 -0
- package/dist/providers/token-params.js.map +1 -0
- package/dist/providers/turn-end-guard.d.ts +37 -0
- package/dist/providers/turn-end-guard.d.ts.map +1 -0
- package/dist/providers/turn-end-guard.js +42 -0
- package/dist/providers/turn-end-guard.js.map +1 -0
- package/dist/providers/types.d.ts +36 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +13 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/qoder-stream.d.ts +19 -0
- package/dist/qoder-stream.d.ts.map +1 -0
- package/dist/qoder-stream.js +167 -0
- package/dist/qoder-stream.js.map +1 -0
- package/dist/registry.d.ts +5 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +58 -0
- package/dist/registry.js.map +1 -0
- package/dist/resolution.d.ts +2 -0
- package/dist/resolution.d.ts.map +1 -0
- package/dist/resolution.js +19 -0
- package/dist/resolution.js.map +1 -0
- package/dist/role-marker-guard.d.ts +53 -0
- package/dist/role-marker-guard.d.ts.map +1 -0
- package/dist/role-marker-guard.js +280 -0
- package/dist/role-marker-guard.js.map +1 -0
- package/dist/telemetry-sink.d.ts +35 -0
- package/dist/telemetry-sink.d.ts.map +1 -0
- package/dist/telemetry-sink.js +5 -0
- package/dist/telemetry-sink.js.map +1 -0
- package/dist/terminal-launch.d.ts +11 -0
- package/dist/terminal-launch.d.ts.map +1 -0
- package/dist/terminal-launch.js +123 -0
- package/dist/terminal-launch.js.map +1 -0
- package/dist/types.d.ts +185 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/agent-protocol/acp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** @module agent-protocol/acp/text-suppression
|
|
2
|
+
* Generic tagged-text-block suppressor for stripping `<artifact>`/`<DSML
|
|
3
|
+
* artifact>` and `<tool_call>`/`<edit>` XML-ish echo tags out of streamed
|
|
4
|
+
* agent text, so a run's canonical text_delta stream doesn't leak an agent's
|
|
5
|
+
* raw tool/artifact echo. Pure string processing — no I/O, no dependency on
|
|
6
|
+
* any other agent-protocol file. ACP-session-only today (the sole consumer is
|
|
7
|
+
* acp/session.ts), so it is colocated here rather than promoted to a
|
|
8
|
+
* package-wide shared module with only one real consumer.
|
|
9
|
+
*
|
|
10
|
+
* Ported from the upstream product's `apps/daemon/src/artifacts/text-suppression.ts`
|
|
11
|
+
* with two private helpers (`possibleDsmlArtifactOpenStart`,
|
|
12
|
+
* `possibleArtifactCloseStart`) dropped — both were declared but never
|
|
13
|
+
* called anywhere in the origin file (verified by grep); keeping genuinely
|
|
14
|
+
* dead, unreachable code would force either a contrived test or a
|
|
15
|
+
* coverage-suppression comment to satisfy this package's >=99% bar, and this
|
|
16
|
+
* repo's coverage-discipline convention calls for refactoring dead branches
|
|
17
|
+
* away rather than either of those. See source-map.md.
|
|
18
|
+
*/
|
|
19
|
+
/** A single streamed text delta event, as consumed by `emitWithTextSuppressor`. */
|
|
20
|
+
type EventSink = (event: {
|
|
21
|
+
type: 'text_delta';
|
|
22
|
+
delta: string;
|
|
23
|
+
}) => void;
|
|
24
|
+
/** A stateful stripper that removes a specific tagged text block (DSML
|
|
25
|
+
* artifact echo, or tool_call/edit echo) from a stream of text deltas,
|
|
26
|
+
* buffering a bounded "possible tag start" candidate across calls so a tag
|
|
27
|
+
* split across two deltas is still detected. */
|
|
28
|
+
export interface ArtifactTextSuppressor {
|
|
29
|
+
/** Feeds the next text delta through the suppressor, returning the portion
|
|
30
|
+
* (if any) that is safe to emit as visible text right now. */
|
|
31
|
+
strip(text: string): string;
|
|
32
|
+
/** Drains any buffered candidate text at end-of-stream. Returns `''` while
|
|
33
|
+
* still inside a suppressed block (nothing pending is safe to emit). */
|
|
34
|
+
flush(): string;
|
|
35
|
+
/** Returns `true` while currently inside a suppressed tagged block. */
|
|
36
|
+
isSuppressing(): boolean;
|
|
37
|
+
/** Returns `true` when a possible-tag-start candidate is buffered but not
|
|
38
|
+
* yet resolved as an actual open/close tag. */
|
|
39
|
+
hasPendingCandidate(): boolean;
|
|
40
|
+
/** Returns a snapshot of suppression counters for diagnostics. */
|
|
41
|
+
stats(): ArtifactTextSuppressorStats;
|
|
42
|
+
}
|
|
43
|
+
/** Diagnostic counters describing an `ArtifactTextSuppressor`'s cumulative activity. */
|
|
44
|
+
export interface ArtifactTextSuppressorStats {
|
|
45
|
+
suppressedChars: number;
|
|
46
|
+
suppressedChunks: number;
|
|
47
|
+
openedBlocks: number;
|
|
48
|
+
closedBlocks: number;
|
|
49
|
+
pendingCandidateChars: number;
|
|
50
|
+
suppressing: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Creates a suppressor that strips `<artifact>...</artifact>` and
|
|
54
|
+
* `<|DSML artifact|>...<|/DSML|>` blocks from streamed agent text.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createDsmlArtifactTextSuppressor(): ArtifactTextSuppressor;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a suppressor that strips `<tool_call>...</tool_call>` and
|
|
59
|
+
* `<edit>...</edit>` blocks from streamed agent text.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createToolCallTextSuppressor(): ArtifactTextSuppressor;
|
|
62
|
+
/**
|
|
63
|
+
* Runs `text` through `suppressor` and, if any visible text survives,
|
|
64
|
+
* forwards it to `onEvent` as a `text_delta`.
|
|
65
|
+
*
|
|
66
|
+
* @param suppressor - The suppressor to strip `text` through.
|
|
67
|
+
* @param onEvent - Sink invoked with a `text_delta` event when output survives.
|
|
68
|
+
* @param text - The raw text delta to strip.
|
|
69
|
+
* @returns `true` when a `text_delta` was emitted, `false` otherwise.
|
|
70
|
+
*/
|
|
71
|
+
export declare function emitWithTextSuppressor(suppressor: ArtifactTextSuppressor, onEvent: EventSink, text: string): boolean;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=text-suppression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-suppression.d.ts","sourceRoot":"","sources":["../../../src/agent-protocol/acp/text-suppression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mFAAmF;AACnF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAaxE;;;gDAGgD;AAChD,MAAM,WAAW,sBAAsB;IACrC;kEAC8D;IAC9D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;4EACwE;IACxE,KAAK,IAAI,MAAM,CAAC;IAChB,uEAAuE;IACvE,aAAa,IAAI,OAAO,CAAC;IACzB;mDAC+C;IAC/C,mBAAmB,IAAI,OAAO,CAAC;IAC/B,kEAAkE;IAClE,KAAK,IAAI,2BAA2B,CAAC;CACtC;AAED,wFAAwF;AACxF,MAAM,WAAW,2BAA2B;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,IAAI,sBAAsB,CAOzE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAOrE;AAoGD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,sBAAsB,EAClC,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAKT"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/** @module agent-protocol/acp/text-suppression
|
|
2
|
+
* Generic tagged-text-block suppressor for stripping `<artifact>`/`<DSML
|
|
3
|
+
* artifact>` and `<tool_call>`/`<edit>` XML-ish echo tags out of streamed
|
|
4
|
+
* agent text, so a run's canonical text_delta stream doesn't leak an agent's
|
|
5
|
+
* raw tool/artifact echo. Pure string processing — no I/O, no dependency on
|
|
6
|
+
* any other agent-protocol file. ACP-session-only today (the sole consumer is
|
|
7
|
+
* acp/session.ts), so it is colocated here rather than promoted to a
|
|
8
|
+
* package-wide shared module with only one real consumer.
|
|
9
|
+
*
|
|
10
|
+
* Ported from the upstream product's `apps/daemon/src/artifacts/text-suppression.ts`
|
|
11
|
+
* with two private helpers (`possibleDsmlArtifactOpenStart`,
|
|
12
|
+
* `possibleArtifactCloseStart`) dropped — both were declared but never
|
|
13
|
+
* called anywhere in the origin file (verified by grep); keeping genuinely
|
|
14
|
+
* dead, unreachable code would force either a contrived test or a
|
|
15
|
+
* coverage-suppression comment to satisfy this package's >=99% bar, and this
|
|
16
|
+
* repo's coverage-discipline convention calls for refactoring dead branches
|
|
17
|
+
* away rather than either of those. See source-map.md.
|
|
18
|
+
*/
|
|
19
|
+
const ARTIFACT_OPEN_RE = /(?:<\s*\|?\s*DSML[\s,]+artifact\b[^>]*>|<\s*artifact\b[^>]*>)/i;
|
|
20
|
+
const DSML_ARTIFACT_CLOSE_RE = /(?:<\/artifact>|<\/\s*\|?\s*DSML\s*>|<\s*\|?\s*\/\s*DSML\s*\|?\s*>)/i;
|
|
21
|
+
const DSML_OPEN_CANONICAL = 'dsmlartifact';
|
|
22
|
+
const ARTIFACT_OPEN_CANONICAL = 'artifact';
|
|
23
|
+
const ARTIFACT_CLOSE_CANONICALS = ['artifact', 'dsml'];
|
|
24
|
+
const TOOL_CALL_OPEN_RE = /(?:<\s*tool_call\b[^>]*>|<\s*edit\s*>)/i;
|
|
25
|
+
const TOOL_CALL_CLOSE_RE = /(?:<\/\s*tool_call\s*>|<\/\s*edit\s*>)/i;
|
|
26
|
+
const TOOL_CALL_OPEN_CANONICALS = ['toolcall', 'edit'];
|
|
27
|
+
const TOOL_CALL_CLOSE_CANONICALS = ['toolcall', 'edit'];
|
|
28
|
+
const MAX_CANDIDATE_LENGTH = 512;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a suppressor that strips `<artifact>...</artifact>` and
|
|
31
|
+
* `<|DSML artifact|>...<|/DSML|>` blocks from streamed agent text.
|
|
32
|
+
*/
|
|
33
|
+
export function createDsmlArtifactTextSuppressor() {
|
|
34
|
+
return createTaggedTextSuppressor({
|
|
35
|
+
openRe: ARTIFACT_OPEN_RE,
|
|
36
|
+
closeRe: DSML_ARTIFACT_CLOSE_RE,
|
|
37
|
+
isPossibleOpen: isPossibleDsmlArtifactOpen,
|
|
38
|
+
isPossibleClose: isPossibleArtifactClose,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Creates a suppressor that strips `<tool_call>...</tool_call>` and
|
|
43
|
+
* `<edit>...</edit>` blocks from streamed agent text.
|
|
44
|
+
*/
|
|
45
|
+
export function createToolCallTextSuppressor() {
|
|
46
|
+
return createTaggedTextSuppressor({
|
|
47
|
+
openRe: TOOL_CALL_OPEN_RE,
|
|
48
|
+
closeRe: TOOL_CALL_CLOSE_RE,
|
|
49
|
+
isPossibleOpen: isPossibleToolCallOpen,
|
|
50
|
+
isPossibleClose: isPossibleToolCallClose,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Builds a stateful `ArtifactTextSuppressor` for one open/close tag pair.
|
|
55
|
+
* Shared implementation behind both `createDsmlArtifactTextSuppressor` and
|
|
56
|
+
* `createToolCallTextSuppressor`.
|
|
57
|
+
*
|
|
58
|
+
* @param args.openRe - Matches a complete opening tag.
|
|
59
|
+
* @param args.closeRe - Matches a complete closing tag.
|
|
60
|
+
* @param args.isPossibleOpen - Returns `true` when a trailing fragment could
|
|
61
|
+
* still grow into a complete opening tag on the next delta.
|
|
62
|
+
* @param args.isPossibleClose - Same, for the closing tag.
|
|
63
|
+
*/
|
|
64
|
+
function createTaggedTextSuppressor(args) {
|
|
65
|
+
let suppressing = false;
|
|
66
|
+
let candidate = '';
|
|
67
|
+
let suppressedChars = 0;
|
|
68
|
+
let suppressedChunks = 0;
|
|
69
|
+
let openedBlocks = 0;
|
|
70
|
+
let closedBlocks = 0;
|
|
71
|
+
function noteSuppressed(text) {
|
|
72
|
+
if (text.length <= 0)
|
|
73
|
+
return;
|
|
74
|
+
suppressedChars += text.length;
|
|
75
|
+
suppressedChunks += 1;
|
|
76
|
+
}
|
|
77
|
+
function strip(text) {
|
|
78
|
+
const current = `${candidate}${text}`;
|
|
79
|
+
candidate = '';
|
|
80
|
+
if (suppressing) {
|
|
81
|
+
const close = args.closeRe.exec(current);
|
|
82
|
+
if (!close || close.index === undefined) {
|
|
83
|
+
const closeCandidateStart = possibleTagStart(current, args.isPossibleClose);
|
|
84
|
+
if (closeCandidateStart !== -1) {
|
|
85
|
+
candidate = current.slice(closeCandidateStart);
|
|
86
|
+
noteSuppressed(current.slice(0, closeCandidateStart));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
noteSuppressed(current);
|
|
90
|
+
}
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
93
|
+
suppressing = false;
|
|
94
|
+
const end = close.index + close[0].length;
|
|
95
|
+
closedBlocks += 1;
|
|
96
|
+
noteSuppressed(current.slice(0, end));
|
|
97
|
+
return strip(current.slice(end));
|
|
98
|
+
}
|
|
99
|
+
const open = args.openRe.exec(current);
|
|
100
|
+
if (open && open.index !== undefined) {
|
|
101
|
+
suppressing = true;
|
|
102
|
+
openedBlocks += 1;
|
|
103
|
+
const prefix = current.slice(0, open.index);
|
|
104
|
+
const tail = current.slice(open.index + open[0].length);
|
|
105
|
+
noteSuppressed(open[0]);
|
|
106
|
+
return `${prefix}${strip(tail)}`;
|
|
107
|
+
}
|
|
108
|
+
const candidateStart = possibleTagStart(current, args.isPossibleOpen);
|
|
109
|
+
if (candidateStart === -1)
|
|
110
|
+
return current;
|
|
111
|
+
candidate = current.slice(candidateStart);
|
|
112
|
+
return current.slice(0, candidateStart);
|
|
113
|
+
}
|
|
114
|
+
function flush() {
|
|
115
|
+
const text = candidate;
|
|
116
|
+
candidate = '';
|
|
117
|
+
return suppressing ? '' : text;
|
|
118
|
+
}
|
|
119
|
+
function isSuppressing() {
|
|
120
|
+
return suppressing;
|
|
121
|
+
}
|
|
122
|
+
function hasPendingCandidate() {
|
|
123
|
+
return candidate.length > 0;
|
|
124
|
+
}
|
|
125
|
+
function stats() {
|
|
126
|
+
return {
|
|
127
|
+
suppressedChars,
|
|
128
|
+
suppressedChunks,
|
|
129
|
+
openedBlocks,
|
|
130
|
+
closedBlocks,
|
|
131
|
+
pendingCandidateChars: candidate.length,
|
|
132
|
+
suppressing,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return { strip, flush, isSuppressing, hasPendingCandidate, stats };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Runs `text` through `suppressor` and, if any visible text survives,
|
|
139
|
+
* forwards it to `onEvent` as a `text_delta`.
|
|
140
|
+
*
|
|
141
|
+
* @param suppressor - The suppressor to strip `text` through.
|
|
142
|
+
* @param onEvent - Sink invoked with a `text_delta` event when output survives.
|
|
143
|
+
* @param text - The raw text delta to strip.
|
|
144
|
+
* @returns `true` when a `text_delta` was emitted, `false` otherwise.
|
|
145
|
+
*/
|
|
146
|
+
export function emitWithTextSuppressor(suppressor, onEvent, text) {
|
|
147
|
+
const delta = suppressor.strip(text);
|
|
148
|
+
if (!delta)
|
|
149
|
+
return false;
|
|
150
|
+
onEvent({ type: 'text_delta', delta });
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Finds the start index of the rightmost `<`-prefixed suffix of `text` that
|
|
155
|
+
* could still grow into a complete tag matched by `predicate`, scanning back
|
|
156
|
+
* at most `MAX_CANDIDATE_LENGTH` characters. Returns `-1` when no such suffix
|
|
157
|
+
* exists.
|
|
158
|
+
*
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
function possibleTagStart(text, predicate) {
|
|
162
|
+
const min = Math.max(0, text.length - MAX_CANDIDATE_LENGTH);
|
|
163
|
+
let index = text.lastIndexOf('<');
|
|
164
|
+
while (index >= min) {
|
|
165
|
+
const tail = text.slice(index);
|
|
166
|
+
if (predicate(tail))
|
|
167
|
+
return index;
|
|
168
|
+
if (index === 0)
|
|
169
|
+
break;
|
|
170
|
+
index = text.lastIndexOf('<', index - 1);
|
|
171
|
+
}
|
|
172
|
+
return -1;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Returns `true` when `text` is a `<`-prefixed, not-yet-closed fragment that
|
|
176
|
+
* could still grow into a DSML-artifact or plain-artifact opening tag.
|
|
177
|
+
*
|
|
178
|
+
* @internal
|
|
179
|
+
*/
|
|
180
|
+
function isPossibleDsmlArtifactOpen(text) {
|
|
181
|
+
if (!text.startsWith('<') || text.includes('>'))
|
|
182
|
+
return false;
|
|
183
|
+
const compact = text.toLowerCase().replace(/[<|,\s]/g, '');
|
|
184
|
+
return compact.length === 0 ||
|
|
185
|
+
DSML_OPEN_CANONICAL.startsWith(compact) ||
|
|
186
|
+
compact.startsWith(DSML_OPEN_CANONICAL) ||
|
|
187
|
+
ARTIFACT_OPEN_CANONICAL.startsWith(compact) ||
|
|
188
|
+
compact.startsWith(ARTIFACT_OPEN_CANONICAL);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Returns `true` when `text` is a `<`-prefixed, not-yet-closed fragment that
|
|
192
|
+
* could still grow into an artifact/DSML closing tag.
|
|
193
|
+
*
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
function isPossibleArtifactClose(text) {
|
|
197
|
+
if (!text.startsWith('<') || text.includes('>'))
|
|
198
|
+
return false;
|
|
199
|
+
const compact = text.toLowerCase().replace(/[<|/\s]/g, '');
|
|
200
|
+
return compact.length === 0 ||
|
|
201
|
+
ARTIFACT_CLOSE_CANONICALS.some((canonical) => canonical.startsWith(compact) || compact.startsWith(canonical));
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Returns `true` when `text` is a `<`-prefixed, not-yet-closed fragment that
|
|
205
|
+
* could still grow into a `tool_call`/`edit` opening tag.
|
|
206
|
+
*
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
function isPossibleToolCallOpen(text) {
|
|
210
|
+
if (!text.startsWith('<') || text.includes('>'))
|
|
211
|
+
return false;
|
|
212
|
+
const compact = text.toLowerCase().replace(/[<|,\s_-]/g, '');
|
|
213
|
+
return compact.length === 0 ||
|
|
214
|
+
TOOL_CALL_OPEN_CANONICALS.some((canonical) => canonical.startsWith(compact) || compact.startsWith(canonical));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Returns `true` when `text` is a `<`-prefixed, not-yet-closed fragment that
|
|
218
|
+
* could still grow into a `tool_call`/`edit` closing tag.
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
function isPossibleToolCallClose(text) {
|
|
223
|
+
if (!text.startsWith('<') || text.includes('>'))
|
|
224
|
+
return false;
|
|
225
|
+
const compact = text.toLowerCase().replace(/[<|/\s_-]/g, '');
|
|
226
|
+
return compact.length === 0 ||
|
|
227
|
+
TOOL_CALL_CLOSE_CANONICALS.some((canonical) => canonical.startsWith(compact) || compact.startsWith(canonical));
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=text-suppression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-suppression.js","sourceRoot":"","sources":["../../../src/agent-protocol/acp/text-suppression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @module agent-protocol/acp/types
|
|
2
|
+
* Shared primitive type aliases for the ACP JSON-RPC transport layer.
|
|
3
|
+
* Consumed by every other file in acp/; depends only on Node built-ins and
|
|
4
|
+
* carries no runtime code.
|
|
5
|
+
*/
|
|
6
|
+
import type { Writable } from 'node:stream';
|
|
7
|
+
import type { ChildProcess } from 'node:child_process';
|
|
8
|
+
/** A JSON-RPC 2.0 request or response identifier. May be a numeric integer or a string. */
|
|
9
|
+
export type JsonRpcId = string | number;
|
|
10
|
+
/** An arbitrary JSON object with string keys and unknown values. Used as a loose type for parsed RPC frames. */
|
|
11
|
+
export type JsonObject = Record<string, unknown>;
|
|
12
|
+
/** Minimal writable interface required to send JSON-RPC newline-delimited frames to an ACP agent's stdin. */
|
|
13
|
+
export type RpcWritable = Pick<Writable, 'write' | 'end'>;
|
|
14
|
+
/** The Node `ChildProcess` handle for a spawned ACP agent subprocess. */
|
|
15
|
+
export type AcpChildProcess = ChildProcess;
|
|
16
|
+
/** Opaque handle returned by `setTimeout`, used for stage watchdog timers in acp/session.ts and acp/models.ts. */
|
|
17
|
+
export type TimerHandle = ReturnType<typeof setTimeout>;
|
|
18
|
+
/**
|
|
19
|
+
* Execution profile of an agent run: whether artifacts are written to the
|
|
20
|
+
* filesystem (`'filesystem'`) or emitted inline as agent text
|
|
21
|
+
* (`'text_artifact'`). Inlined here rather than imported from an external
|
|
22
|
+
* contracts package — the upstream type is a trivial two-value literal union
|
|
23
|
+
* with no product-specific branding, so importing a whole package for it
|
|
24
|
+
* would be the tail wagging the dog. See source-map.md.
|
|
25
|
+
*/
|
|
26
|
+
export type ExecutionProfile = 'filesystem' | 'text_artifact';
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent-protocol/acp/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,2FAA2F;AAC3F,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACxC,gHAAgH;AAChH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,6GAA6G;AAC7G,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC;AAC1D,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAC3C,kHAAkH;AAClH,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AACxD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent-protocol/acp/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/** @module agent-protocol/acp/updates
|
|
2
|
+
* ACP session-update classification helpers: status normalisation,
|
|
3
|
+
* artifact-write detection, AMR retry/stderr failure promotion (via the
|
|
4
|
+
* injectable `AccountFailureClassifier` port), and raw event-shape
|
|
5
|
+
* diagnostics. Depends on acp/types, acp/json, and acp/account-failure;
|
|
6
|
+
* consumed exclusively by acp/session.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { JsonObject } from './types.js';
|
|
9
|
+
import { type AccountFailureClassifier } from './account-failure.js';
|
|
10
|
+
/**
|
|
11
|
+
* Produces a shallow diagnostic snapshot of an ACP update object for the
|
|
12
|
+
* `acp_raw_event_shape` diagnostic event. Captures key presence, value kinds,
|
|
13
|
+
* and content structure without serialising the full update, so the payload
|
|
14
|
+
* stays bounded in size. Emitted only for AMR sessions where unknown shapes
|
|
15
|
+
* may require debugging.
|
|
16
|
+
*
|
|
17
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
18
|
+
* @returns A flat diagnostic object suitable for inclusion in an agent event payload.
|
|
19
|
+
*/
|
|
20
|
+
export declare function acpRawEventShape(update: JsonObject): {
|
|
21
|
+
sessionUpdate: string | null;
|
|
22
|
+
keys: string[];
|
|
23
|
+
contentKind: string;
|
|
24
|
+
contentKeys: string[];
|
|
25
|
+
hasText: boolean;
|
|
26
|
+
hasTopLevelText: boolean;
|
|
27
|
+
hasTopLevelDelta: boolean;
|
|
28
|
+
hasTopLevelMessage: boolean;
|
|
29
|
+
hasToolCallId: boolean;
|
|
30
|
+
hasRawInput: boolean;
|
|
31
|
+
rawInputKind: string;
|
|
32
|
+
rawInputKeys: string[];
|
|
33
|
+
locationsKind: string;
|
|
34
|
+
locationsCount: number | undefined;
|
|
35
|
+
status: string | undefined;
|
|
36
|
+
titlePresent: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Normalises the `status` field of an ACP update to a lowercase,
|
|
40
|
+
* whitespace-and-punctuation-stripped token. Returns `''` when the field
|
|
41
|
+
* is absent or not a string, so all status comparisons use the token form.
|
|
42
|
+
*
|
|
43
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
44
|
+
*/
|
|
45
|
+
export declare function acpUpdateStatus(update: JsonObject): string;
|
|
46
|
+
/**
|
|
47
|
+
* Returns `true` when the update's `status` field represents a successful
|
|
48
|
+
* terminal state (`completed`, `complete`, `succeeded`, or `success`).
|
|
49
|
+
* Used to decide when to emit deferred artifact-write tool events.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isAcpCompletedStatus(update: JsonObject): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Returns `true` when the update's `status` field represents a terminal
|
|
54
|
+
* failure state (`failed`, `failure`, `error`, `cancelled`, or `canceled`).
|
|
55
|
+
* Used to clean up pending write-suppression state and emit failed tool events.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isAcpTerminalFailureStatus(update: JsonObject): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Returns `true` when the update's status is `'retry'`. Signals that the AMR
|
|
60
|
+
* agent wants to restart the request; the session promoter maps this to a
|
|
61
|
+
* structured error payload via `promotedAmrRetryStatusPayload`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isAcpRetryStatus(update: JsonObject): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Recursively collects all text-bearing leaf values from an ACP update
|
|
66
|
+
* (strings, numbers, booleans) up to 4 levels deep. Used to produce a flat
|
|
67
|
+
* text corpus for an injected `AccountFailureClassifier` to pattern-match
|
|
68
|
+
* against, without requiring knowledge of a specific agent's response shape.
|
|
69
|
+
*
|
|
70
|
+
* @param value - Any value from a parsed ACP session update.
|
|
71
|
+
* @param depth - Current recursion depth (max 4); callers omit this.
|
|
72
|
+
* @returns A flat array of trimmed non-empty string representations.
|
|
73
|
+
*/
|
|
74
|
+
export declare function acpUpdateDiagnosticText(value: unknown, depth?: number): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Promotes an AMR `retry` status update into a structured error payload when
|
|
77
|
+
* the update's diagnostic text matches a known account-failure pattern (e.g.
|
|
78
|
+
* quota exceeded, auth failure), as decided by `classifier`. Returns `null`
|
|
79
|
+
* when the update is not a retry, or when `classifier` finds no match.
|
|
80
|
+
*
|
|
81
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
82
|
+
* @param classifier - The account-failure classifier to consult; defaults to
|
|
83
|
+
* `noopAccountFailureClassifier`, under which this always returns `null`.
|
|
84
|
+
* @returns A structured error payload with `message` and `error`, or `null`.
|
|
85
|
+
*/
|
|
86
|
+
export declare function promotedAmrRetryStatusPayload(update: JsonObject, classifier?: AccountFailureClassifier): {
|
|
87
|
+
message: string;
|
|
88
|
+
error: {
|
|
89
|
+
code: string;
|
|
90
|
+
message: string;
|
|
91
|
+
retryable: boolean;
|
|
92
|
+
details: {
|
|
93
|
+
promoted_by: string;
|
|
94
|
+
kind: "account_failure";
|
|
95
|
+
action: string;
|
|
96
|
+
actionUrl?: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
} | null;
|
|
100
|
+
/**
|
|
101
|
+
* Scans a rolling tail of AMR stderr output for known retry/session-failure
|
|
102
|
+
* signals and, when found, promotes a match (via `classifier`) to a
|
|
103
|
+
* structured error payload. Returns `null` when the chunk does not contain
|
|
104
|
+
* the expected markers or does not match a known failure pattern.
|
|
105
|
+
*
|
|
106
|
+
* @param chunk - A tail slice of accumulated stderr bytes from the AMR subprocess.
|
|
107
|
+
* @param classifier - The account-failure classifier to consult; defaults to
|
|
108
|
+
* `noopAccountFailureClassifier`, under which this always returns `null`.
|
|
109
|
+
* @returns A structured error payload, or `null` when not applicable.
|
|
110
|
+
*/
|
|
111
|
+
export declare function promotedAmrStderrPayload(chunk: string, classifier?: AccountFailureClassifier): {
|
|
112
|
+
message: string;
|
|
113
|
+
error: {
|
|
114
|
+
code: string;
|
|
115
|
+
message: string;
|
|
116
|
+
retryable: boolean;
|
|
117
|
+
details: {
|
|
118
|
+
promoted_by: string;
|
|
119
|
+
kind: "account_failure";
|
|
120
|
+
action: string;
|
|
121
|
+
actionUrl?: string;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
} | null;
|
|
125
|
+
/**
|
|
126
|
+
* Extracts and trims the `toolCallId` string from an ACP update, or returns
|
|
127
|
+
* `null` when absent or empty. Used as a stable dedup key for artifact-write
|
|
128
|
+
* tracking across update frames.
|
|
129
|
+
*
|
|
130
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
131
|
+
*/
|
|
132
|
+
export declare function acpToolCallId(update: JsonObject): string | null;
|
|
133
|
+
/**
|
|
134
|
+
* Returns `true` when the update's `title` or `name` field contains a word
|
|
135
|
+
* that indicates a file-write operation (`edit`, `write`, `create`, `update`,
|
|
136
|
+
* `save`, `patch`, or `replace`). Used to heuristically identify
|
|
137
|
+
* artifact-write tool calls before their `toolCallId` is known.
|
|
138
|
+
*
|
|
139
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
140
|
+
*/
|
|
141
|
+
export declare function isAcpArtifactWriteLabel(update: JsonObject): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Returns `true` when an ACP update represents the terminal completion of an
|
|
144
|
+
* artifact-write tool call and should arm the DSML text suppressor. Requires
|
|
145
|
+
* a completed status combined with either a write-style label or a tool call
|
|
146
|
+
* id tracked in `writeToolCallIds`.
|
|
147
|
+
*
|
|
148
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
149
|
+
* @param writeToolCallIds - The set of tool call ids identified as artifact writes so far.
|
|
150
|
+
*/
|
|
151
|
+
export declare function isAcpArtifactWriteUpdate(update: JsonObject, writeToolCallIds: Set<string>): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Best-effort extraction of a concrete file path from an ACP artifact-write
|
|
154
|
+
* tool call update, checking three sources in priority order:
|
|
155
|
+
* 1. `locations` or `content` array entries with a `path` field.
|
|
156
|
+
* 2. `rawInput.path`, `rawInput.file_path`, or `rawInput.filename`.
|
|
157
|
+
* 3. A filename token embedded in the human-readable `title` field.
|
|
158
|
+
*
|
|
159
|
+
* Returns `null` when no concrete path is present; the caller then falls
|
|
160
|
+
* back to the toolCallId as a dedup key.
|
|
161
|
+
*
|
|
162
|
+
* @param update - A parsed ACP `session/update` params object.
|
|
163
|
+
* @returns An absolute or relative file path string, or `null` when absent.
|
|
164
|
+
*/
|
|
165
|
+
export declare function acpArtifactWritePath(update: JsonObject): string | null;
|
|
166
|
+
//# sourceMappingURL=updates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../../src/agent-protocol/acp/updates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;EAsBlD;AACD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAI1D;AACD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAGhE;AACD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAGtE;AACD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE5D;AACD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CA6B3E;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,UAAU,EAClB,UAAU,GAAE,wBAAuD;;;;;;;;;;;;;SAkBpE;AACD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,wBAAuD;;;;;;;;;;;;;SAkBpE;AACD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAI/D;AACD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAMnE;AACD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAInG;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAsBtE"}
|