@openma/common 0.0.0-stage → 0.9.1
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 +202 -0
- package/README.md +391 -2
- package/dist/acp-artifacts/binary.d.ts +35 -0
- package/dist/acp-artifacts/binary.d.ts.map +1 -0
- package/dist/acp-artifacts/binary.js +120 -0
- package/dist/acp-artifacts/binary.js.map +1 -0
- package/dist/acp-artifacts/index.d.ts +7 -0
- package/dist/acp-artifacts/index.d.ts.map +1 -0
- package/dist/acp-artifacts/index.js +7 -0
- package/dist/acp-artifacts/index.js.map +1 -0
- package/dist/acp-artifacts/node-abi.d.ts +3 -0
- package/dist/acp-artifacts/node-abi.d.ts.map +1 -0
- package/dist/acp-artifacts/node-abi.js +17 -0
- package/dist/acp-artifacts/node-abi.js.map +1 -0
- package/dist/acp-artifacts/npm-cli.d.ts +3 -0
- package/dist/acp-artifacts/npm-cli.d.ts.map +1 -0
- package/dist/acp-artifacts/npm-cli.js +9 -0
- package/dist/acp-artifacts/npm-cli.js.map +1 -0
- package/dist/acp-artifacts/npm.d.ts +37 -0
- package/dist/acp-artifacts/npm.d.ts.map +1 -0
- package/dist/acp-artifacts/npm.js +167 -0
- package/dist/acp-artifacts/npm.js.map +1 -0
- package/dist/acp-artifacts/registry.d.ts +45 -0
- package/dist/acp-artifacts/registry.d.ts.map +1 -0
- package/dist/acp-artifacts/registry.js +206 -0
- package/dist/acp-artifacts/registry.js.map +1 -0
- package/dist/acp-artifacts/shared.d.ts +45 -0
- package/dist/acp-artifacts/shared.d.ts.map +1 -0
- package/dist/acp-artifacts/shared.js +157 -0
- package/dist/acp-artifacts/shared.js.map +1 -0
- package/dist/acp-artifacts/uvx.d.ts +32 -0
- package/dist/acp-artifacts/uvx.d.ts.map +1 -0
- package/dist/acp-artifacts/uvx.js +95 -0
- package/dist/acp-artifacts/uvx.js.map +1 -0
- package/dist/acp-fork/index.d.ts +51 -0
- package/dist/acp-fork/index.d.ts.map +1 -0
- package/dist/acp-fork/index.js +116 -0
- package/dist/acp-fork/index.js.map +1 -0
- package/dist/acp-harnesses/agent-setup.d.ts +118 -0
- package/dist/acp-harnesses/agent-setup.d.ts.map +1 -0
- package/dist/acp-harnesses/agent-setup.js +717 -0
- package/dist/acp-harnesses/agent-setup.js.map +1 -0
- package/dist/acp-harnesses/custom-agents.d.ts +81 -0
- package/dist/acp-harnesses/custom-agents.d.ts.map +1 -0
- package/dist/acp-harnesses/custom-agents.js +361 -0
- package/dist/acp-harnesses/custom-agents.js.map +1 -0
- package/dist/acp-harnesses/headless-launch.d.ts +34 -0
- package/dist/acp-harnesses/headless-launch.d.ts.map +1 -0
- package/dist/acp-harnesses/headless-launch.js +67 -0
- package/dist/acp-harnesses/headless-launch.js.map +1 -0
- package/dist/acp-harnesses/index.d.ts +18 -0
- package/dist/acp-harnesses/index.d.ts.map +1 -0
- package/dist/acp-harnesses/index.js +58 -0
- package/dist/acp-harnesses/index.js.map +1 -0
- package/dist/acp-harnesses/install-state.d.ts +86 -0
- package/dist/acp-harnesses/install-state.d.ts.map +1 -0
- package/dist/acp-harnesses/install-state.js +322 -0
- package/dist/acp-harnesses/install-state.js.map +1 -0
- package/dist/acp-harnesses/installer.d.ts +145 -0
- package/dist/acp-harnesses/installer.d.ts.map +1 -0
- package/dist/acp-harnesses/installer.js +716 -0
- package/dist/acp-harnesses/installer.js.map +1 -0
- package/dist/acp-harnesses/known-agents.d.ts +154 -0
- package/dist/acp-harnesses/known-agents.d.ts.map +1 -0
- package/dist/acp-harnesses/known-agents.js +240 -0
- package/dist/acp-harnesses/known-agents.js.map +1 -0
- package/dist/acp-harnesses/launcher.d.ts +27 -0
- package/dist/acp-harnesses/launcher.d.ts.map +1 -0
- package/dist/acp-harnesses/launcher.js +64 -0
- package/dist/acp-harnesses/launcher.js.map +1 -0
- package/dist/acp-harnesses/registry-fetch.d.ts +42 -0
- package/dist/acp-harnesses/registry-fetch.d.ts.map +1 -0
- package/dist/acp-harnesses/registry-fetch.js +132 -0
- package/dist/acp-harnesses/registry-fetch.js.map +1 -0
- package/dist/acp-harnesses/registry.d.ts +36 -0
- package/dist/acp-harnesses/registry.d.ts.map +1 -0
- package/dist/acp-harnesses/registry.js +307 -0
- package/dist/acp-harnesses/registry.js.map +1 -0
- package/dist/acp-runtime/errors.d.ts +7 -0
- package/dist/acp-runtime/errors.d.ts.map +1 -0
- package/dist/acp-runtime/errors.js +17 -0
- package/dist/acp-runtime/errors.js.map +1 -0
- package/dist/acp-runtime/fork-support.d.ts +8 -0
- package/dist/acp-runtime/fork-support.d.ts.map +1 -0
- package/dist/acp-runtime/fork-support.js +20 -0
- package/dist/acp-runtime/fork-support.js.map +1 -0
- package/dist/acp-runtime/index.d.ts +11 -0
- package/dist/acp-runtime/index.d.ts.map +1 -0
- package/dist/acp-runtime/index.js +6 -0
- package/dist/acp-runtime/index.js.map +1 -0
- package/dist/acp-runtime/probe.d.ts +103 -0
- package/dist/acp-runtime/probe.d.ts.map +1 -0
- package/dist/acp-runtime/probe.js +881 -0
- package/dist/acp-runtime/probe.js.map +1 -0
- package/dist/acp-runtime/runtime.d.ts +7 -0
- package/dist/acp-runtime/runtime.d.ts.map +1 -0
- package/dist/acp-runtime/runtime.js +26 -0
- package/dist/acp-runtime/runtime.js.map +1 -0
- package/dist/acp-runtime/session.d.ts +87 -0
- package/dist/acp-runtime/session.d.ts.map +1 -0
- package/dist/acp-runtime/session.js +1071 -0
- package/dist/acp-runtime/session.js.map +1 -0
- package/dist/acp-runtime/spawners/node.d.ts +5 -0
- package/dist/acp-runtime/spawners/node.d.ts.map +1 -0
- package/dist/acp-runtime/spawners/node.js +244 -0
- package/dist/acp-runtime/spawners/node.js.map +1 -0
- package/dist/acp-runtime/types.d.ts +180 -0
- package/dist/acp-runtime/types.d.ts.map +1 -0
- package/dist/acp-runtime/types.js +2 -0
- package/dist/acp-runtime/types.js.map +1 -0
- package/dist/agent-contract/acp.d.ts +4 -0
- package/dist/agent-contract/acp.d.ts.map +1 -0
- package/dist/agent-contract/acp.js +273 -0
- package/dist/agent-contract/acp.js.map +1 -0
- package/dist/agent-contract/index.d.ts +125 -0
- package/dist/agent-contract/index.d.ts.map +1 -0
- package/dist/agent-contract/index.js +102 -0
- package/dist/agent-contract/index.js.map +1 -0
- package/dist/agent-contract/managed.d.ts +5 -0
- package/dist/agent-contract/managed.d.ts.map +1 -0
- package/dist/agent-contract/managed.js +242 -0
- package/dist/agent-contract/managed.js.map +1 -0
- package/dist/agent-ui/index.d.ts +170 -0
- package/dist/agent-ui/index.d.ts.map +1 -0
- package/dist/agent-ui/index.js +853 -0
- package/dist/agent-ui/index.js.map +1 -0
- package/dist/agent-ui/presentation.d.ts +30 -0
- package/dist/agent-ui/presentation.d.ts.map +1 -0
- package/dist/agent-ui/presentation.js +79 -0
- package/dist/agent-ui/presentation.js.map +1 -0
- package/dist/agent-ui/react.d.ts +50 -0
- package/dist/agent-ui/react.d.ts.map +1 -0
- package/dist/agent-ui/react.js +334 -0
- package/dist/agent-ui/react.js.map +1 -0
- package/dist/brand/index.d.ts +17 -0
- package/dist/brand/index.d.ts.map +1 -0
- package/dist/brand/index.js +119 -0
- package/dist/brand/index.js.map +1 -0
- package/dist/brand/openma-logo-mark.svg +7 -0
- package/dist/brand/tokens.css +77 -0
- package/dist/brand/website.css +67 -0
- package/dist/chat-ui/acp.d.ts +26 -0
- package/dist/chat-ui/acp.d.ts.map +1 -0
- package/dist/chat-ui/acp.js +166 -0
- package/dist/chat-ui/acp.js.map +1 -0
- package/dist/chat-ui/components.d.ts +230 -0
- package/dist/chat-ui/components.d.ts.map +1 -0
- package/dist/chat-ui/components.js +561 -0
- package/dist/chat-ui/components.js.map +1 -0
- package/dist/chat-ui/composer-drafts.d.ts +21 -0
- package/dist/chat-ui/composer-drafts.d.ts.map +1 -0
- package/dist/chat-ui/composer-drafts.js +58 -0
- package/dist/chat-ui/composer-drafts.js.map +1 -0
- package/dist/chat-ui/controller.d.ts +61 -0
- package/dist/chat-ui/controller.d.ts.map +1 -0
- package/dist/chat-ui/controller.js +218 -0
- package/dist/chat-ui/controller.js.map +1 -0
- package/dist/chat-ui/index.d.ts +8 -0
- package/dist/chat-ui/index.d.ts.map +1 -0
- package/dist/chat-ui/index.js +8 -0
- package/dist/chat-ui/index.js.map +1 -0
- package/dist/chat-ui/markdown.d.ts +37 -0
- package/dist/chat-ui/markdown.d.ts.map +1 -0
- package/dist/chat-ui/markdown.js +33 -0
- package/dist/chat-ui/markdown.js.map +1 -0
- package/dist/chat-ui/presentation.d.ts +34 -0
- package/dist/chat-ui/presentation.d.ts.map +1 -0
- package/dist/chat-ui/presentation.js +191 -0
- package/dist/chat-ui/presentation.js.map +1 -0
- package/dist/chat-ui/styles.css +815 -0
- package/dist/chat-ui/utils.d.ts +14 -0
- package/dist/chat-ui/utils.d.ts.map +1 -0
- package/dist/chat-ui/utils.js +71 -0
- package/dist/chat-ui/utils.js.map +1 -0
- package/dist/local-runtime/checkpoint.d.ts +28 -0
- package/dist/local-runtime/checkpoint.d.ts.map +1 -0
- package/dist/local-runtime/checkpoint.js +2 -0
- package/dist/local-runtime/checkpoint.js.map +1 -0
- package/dist/local-runtime/daemon-connection.d.ts +27 -0
- package/dist/local-runtime/daemon-connection.d.ts.map +1 -0
- package/dist/local-runtime/daemon-connection.js +161 -0
- package/dist/local-runtime/daemon-connection.js.map +1 -0
- package/dist/local-runtime/daemon-host.d.ts +39 -0
- package/dist/local-runtime/daemon-host.d.ts.map +1 -0
- package/dist/local-runtime/daemon-host.js +88 -0
- package/dist/local-runtime/daemon-host.js.map +1 -0
- package/dist/local-runtime/index.d.ts +6 -0
- package/dist/local-runtime/index.d.ts.map +1 -0
- package/dist/local-runtime/index.js +5 -0
- package/dist/local-runtime/index.js.map +1 -0
- package/dist/local-runtime/runtime.d.ts +36 -0
- package/dist/local-runtime/runtime.d.ts.map +1 -0
- package/dist/local-runtime/runtime.js +82 -0
- package/dist/local-runtime/runtime.js.map +1 -0
- package/dist/local-runtime/session-host.d.ts +62 -0
- package/dist/local-runtime/session-host.d.ts.map +1 -0
- package/dist/local-runtime/session-host.js +477 -0
- package/dist/local-runtime/session-host.js.map +1 -0
- package/dist/managed-runtime/acp-subagents.d.ts +14 -0
- package/dist/managed-runtime/acp-subagents.d.ts.map +1 -0
- package/dist/managed-runtime/acp-subagents.js +67 -0
- package/dist/managed-runtime/acp-subagents.js.map +1 -0
- package/dist/managed-runtime/claimed-environment-work.d.ts +61 -0
- package/dist/managed-runtime/claimed-environment-work.d.ts.map +1 -0
- package/dist/managed-runtime/claimed-environment-work.js +170 -0
- package/dist/managed-runtime/claimed-environment-work.js.map +1 -0
- package/dist/managed-runtime/contracts.d.ts +31 -0
- package/dist/managed-runtime/contracts.d.ts.map +1 -0
- package/dist/managed-runtime/contracts.js +2 -0
- package/dist/managed-runtime/contracts.js.map +1 -0
- package/dist/managed-runtime/http-control.d.ts +67 -0
- package/dist/managed-runtime/http-control.d.ts.map +1 -0
- package/dist/managed-runtime/http-control.js +465 -0
- package/dist/managed-runtime/http-control.js.map +1 -0
- package/dist/managed-runtime/index.d.ts +89 -0
- package/dist/managed-runtime/index.d.ts.map +1 -0
- package/dist/managed-runtime/index.js +215 -0
- package/dist/managed-runtime/index.js.map +1 -0
- package/dist/managed-runtime/input-identity.d.ts +2 -0
- package/dist/managed-runtime/input-identity.d.ts.map +1 -0
- package/dist/managed-runtime/input-identity.js +2 -0
- package/dist/managed-runtime/input-identity.js.map +1 -0
- package/dist/managed-runtime/managed-event-projector.d.ts +24 -0
- package/dist/managed-runtime/managed-event-projector.d.ts.map +1 -0
- package/dist/managed-runtime/managed-event-projector.js +333 -0
- package/dist/managed-runtime/managed-event-projector.js.map +1 -0
- package/dist/managed-runtime/semantic-recovery.d.ts +61 -0
- package/dist/managed-runtime/semantic-recovery.d.ts.map +1 -0
- package/dist/managed-runtime/semantic-recovery.js +167 -0
- package/dist/managed-runtime/semantic-recovery.js.map +1 -0
- package/dist/project-ui/CreateProjectDialog.d.ts +15 -0
- package/dist/project-ui/CreateProjectDialog.d.ts.map +1 -0
- package/dist/project-ui/CreateProjectDialog.js +87 -0
- package/dist/project-ui/CreateProjectDialog.js.map +1 -0
- package/dist/project-ui/ProjectComposer.d.ts +13 -0
- package/dist/project-ui/ProjectComposer.d.ts.map +1 -0
- package/dist/project-ui/ProjectComposer.js +70 -0
- package/dist/project-ui/ProjectComposer.js.map +1 -0
- package/dist/project-ui/ProjectConversation.d.ts +10 -0
- package/dist/project-ui/ProjectConversation.d.ts.map +1 -0
- package/dist/project-ui/ProjectConversation.js +28 -0
- package/dist/project-ui/ProjectConversation.js.map +1 -0
- package/dist/project-ui/ProjectMessageAttachments.d.ts +4 -0
- package/dist/project-ui/ProjectMessageAttachments.d.ts.map +1 -0
- package/dist/project-ui/ProjectMessageAttachments.js +28 -0
- package/dist/project-ui/ProjectMessageAttachments.js.map +1 -0
- package/dist/project-ui/ProjectSettings.d.ts +8 -0
- package/dist/project-ui/ProjectSettings.d.ts.map +1 -0
- package/dist/project-ui/ProjectSettings.js +65 -0
- package/dist/project-ui/ProjectSettings.js.map +1 -0
- package/dist/project-ui/Projects.d.ts +18 -0
- package/dist/project-ui/Projects.d.ts.map +1 -0
- package/dist/project-ui/Projects.js +377 -0
- package/dist/project-ui/Projects.js.map +1 -0
- package/dist/project-ui/client.d.ts +234 -0
- package/dist/project-ui/client.d.ts.map +1 -0
- package/dist/project-ui/client.js +42 -0
- package/dist/project-ui/client.js.map +1 -0
- package/dist/project-ui/controls.d.ts +15 -0
- package/dist/project-ui/controls.d.ts.map +1 -0
- package/dist/project-ui/controls.js +17 -0
- package/dist/project-ui/controls.js.map +1 -0
- package/dist/project-ui/index.d.ts +20 -0
- package/dist/project-ui/index.d.ts.map +1 -0
- package/dist/project-ui/index.js +17 -0
- package/dist/project-ui/index.js.map +1 -0
- package/dist/project-ui/project-coordinator.d.ts +3 -0
- package/dist/project-ui/project-coordinator.d.ts.map +1 -0
- package/dist/project-ui/project-coordinator.js +12 -0
- package/dist/project-ui/project-coordinator.js.map +1 -0
- package/dist/project-ui/project-goals.d.ts +48 -0
- package/dist/project-ui/project-goals.d.ts.map +1 -0
- package/dist/project-ui/project-goals.js +169 -0
- package/dist/project-ui/project-goals.js.map +1 -0
- package/dist/project-ui/projects-query.d.ts +19 -0
- package/dist/project-ui/projects-query.d.ts.map +1 -0
- package/dist/project-ui/projects-query.js +132 -0
- package/dist/project-ui/projects-query.js.map +1 -0
- package/dist/project-ui/styles.css +847 -0
- package/dist/protocol/acp/index.d.ts +52 -0
- package/dist/protocol/acp/index.d.ts.map +1 -0
- package/dist/protocol/acp/index.js +1056 -0
- package/dist/protocol/acp/index.js.map +1 -0
- package/dist/protocol/cursor-cloud/index.d.ts +74 -0
- package/dist/protocol/cursor-cloud/index.d.ts.map +1 -0
- package/dist/protocol/cursor-cloud/index.js +249 -0
- package/dist/protocol/cursor-cloud/index.js.map +1 -0
- package/dist/protocol/managed/index.d.ts +32 -0
- package/dist/protocol/managed/index.d.ts.map +1 -0
- package/dist/protocol/managed/index.js +646 -0
- package/dist/protocol/managed/index.js.map +1 -0
- package/dist/protocol/managed/input-identity.d.ts +3 -0
- package/dist/protocol/managed/input-identity.d.ts.map +1 -0
- package/dist/protocol/managed/input-identity.js +6 -0
- package/dist/protocol/managed/input-identity.js.map +1 -0
- package/dist/protocol/openai-agents/index.d.ts +102 -0
- package/dist/protocol/openai-agents/index.d.ts.map +1 -0
- package/dist/protocol/openai-agents/index.js +142 -0
- package/dist/protocol/openai-agents/index.js.map +1 -0
- package/dist/session-events/acp-system-notices.d.ts +10 -0
- package/dist/session-events/acp-system-notices.d.ts.map +1 -0
- package/dist/session-events/acp-system-notices.js +46 -0
- package/dist/session-events/acp-system-notices.js.map +1 -0
- package/dist/session-events/acp.d.ts +214 -0
- package/dist/session-events/acp.d.ts.map +1 -0
- package/dist/session-events/acp.js +956 -0
- package/dist/session-events/acp.js.map +1 -0
- package/dist/session-events/managed.d.ts +141 -0
- package/dist/session-events/managed.d.ts.map +1 -0
- package/dist/session-events/managed.js +324 -0
- package/dist/session-events/managed.js.map +1 -0
- package/dist/session-events/openma.d.ts +304 -0
- package/dist/session-events/openma.d.ts.map +1 -0
- package/dist/session-events/openma.js +438 -0
- package/dist/session-events/openma.js.map +1 -0
- package/dist/session-kernel/index.d.ts +118 -0
- package/dist/session-kernel/index.d.ts.map +1 -0
- package/dist/session-kernel/index.js +215 -0
- package/dist/session-kernel/index.js.map +1 -0
- package/dist/session-orchestrator/index.d.ts +71 -0
- package/dist/session-orchestrator/index.d.ts.map +1 -0
- package/dist/session-orchestrator/index.js +177 -0
- package/dist/session-orchestrator/index.js.map +1 -0
- package/dist/session-ui/index.d.ts +96 -0
- package/dist/session-ui/index.d.ts.map +1 -0
- package/dist/session-ui/index.js +277 -0
- package/dist/session-ui/index.js.map +1 -0
- package/package.json +222 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-identity.d.ts","sourceRoot":"","sources":["../../../src/protocol/managed/input-identity.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Scoped event identity used for retry-safe Session input and history reconciliation. */
|
|
2
|
+
export async function sessionInputIdentityPrefix(workspaceId, sessionId, key) {
|
|
3
|
+
const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(JSON.stringify([workspaceId, sessionId, key])));
|
|
4
|
+
return `sevt_req_${Array.from(new Uint8Array(bytes), byte => byte.toString(16).padStart(2, "0")).join("")}_`;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=input-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-identity.js","sourceRoot":"","sources":["../../../src/protocol/managed/input-identity.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,WAAmB,EAAE,SAAiB,EAAE,GAAW;IAClG,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7H,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;AAC/G,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Agents → OpenMA event decoder.
|
|
3
|
+
*
|
|
4
|
+
* Direct port of backchat `DirectAgentRuntime` at `64fd74d`
|
|
5
|
+
* (`src/main/direct-agent-runtime.ts`): `#item`, `#turn`, `#openaiEvent`,
|
|
6
|
+
* `#pending`, `#vendor`, and `#event`. `#wrap` stays in backchat; it only
|
|
7
|
+
* builds the desktop task envelope around the canonical event.
|
|
8
|
+
* `pendingActions` / `custom_result` stay there too.
|
|
9
|
+
* `decodeOpenAIAgentsPendingActions` returns the `required_actions` vendor
|
|
10
|
+
* event plus the `function_call` entries themselves.
|
|
11
|
+
*
|
|
12
|
+
* Input types are structural on purpose. That commit duck-types items
|
|
13
|
+
* (`"status" in item`, `type.endsWith("_call")`) instead of switching on the
|
|
14
|
+
* SDK union, and the contract is byte-for-byte output against that commit.
|
|
15
|
+
* An optional `openai` peer would not make the mapping exhaustive the way
|
|
16
|
+
* `@anthropic-ai/sdk` does for Managed Agents.
|
|
17
|
+
*/
|
|
18
|
+
import { type OpenMAEvent } from "../../session-events/openma.js";
|
|
19
|
+
export interface OpenAIAgentsDecodeContext {
|
|
20
|
+
sessionId: string;
|
|
21
|
+
/**
|
|
22
|
+
* Replaces `new Date()` in the backchat mapper. Turn events ignore this
|
|
23
|
+
* and use `completed_at ?? created_at` (Unix seconds → ISO).
|
|
24
|
+
*/
|
|
25
|
+
now: () => string;
|
|
26
|
+
}
|
|
27
|
+
export interface OpenAIAgentsPendingContext extends OpenAIAgentsDecodeContext {
|
|
28
|
+
/**
|
|
29
|
+
* History supplies `required:${uuid}`. Stream session events derive
|
|
30
|
+
* `${event_id}:required` themselves.
|
|
31
|
+
*/
|
|
32
|
+
eventId: string;
|
|
33
|
+
}
|
|
34
|
+
export interface OpenAIAgentsItem {
|
|
35
|
+
type: string;
|
|
36
|
+
id?: string | null;
|
|
37
|
+
turn_id?: string;
|
|
38
|
+
status?: string;
|
|
39
|
+
role?: string;
|
|
40
|
+
content?: unknown;
|
|
41
|
+
summary?: unknown;
|
|
42
|
+
call_id?: string;
|
|
43
|
+
output?: unknown;
|
|
44
|
+
error?: unknown;
|
|
45
|
+
name?: unknown;
|
|
46
|
+
arguments?: unknown;
|
|
47
|
+
command?: unknown;
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
export interface OpenAIAgentsTurn {
|
|
51
|
+
id: string;
|
|
52
|
+
status: string;
|
|
53
|
+
created_at: number;
|
|
54
|
+
completed_at?: number | null;
|
|
55
|
+
error?: {
|
|
56
|
+
message?: string;
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
} | null;
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
}
|
|
61
|
+
export interface OpenAIAgentsRequiredAction {
|
|
62
|
+
type: string;
|
|
63
|
+
call_id?: string;
|
|
64
|
+
name?: string;
|
|
65
|
+
arguments?: unknown;
|
|
66
|
+
turn_id?: string;
|
|
67
|
+
[key: string]: unknown;
|
|
68
|
+
}
|
|
69
|
+
export interface OpenAIAgentsSessionSnapshot {
|
|
70
|
+
status?: string;
|
|
71
|
+
error?: unknown;
|
|
72
|
+
required_actions?: readonly OpenAIAgentsRequiredAction[];
|
|
73
|
+
[key: string]: unknown;
|
|
74
|
+
}
|
|
75
|
+
export interface OpenAIAgentsStreamEvent {
|
|
76
|
+
type: string;
|
|
77
|
+
event_id: string;
|
|
78
|
+
item_id?: string;
|
|
79
|
+
delta?: string;
|
|
80
|
+
turn_id?: string | null;
|
|
81
|
+
item?: OpenAIAgentsItem;
|
|
82
|
+
turn?: OpenAIAgentsTurn;
|
|
83
|
+
session?: OpenAIAgentsSessionSnapshot;
|
|
84
|
+
[key: string]: unknown;
|
|
85
|
+
}
|
|
86
|
+
/** Fields backchat reads off a pending `function_call`. Not `custom_result`. */
|
|
87
|
+
export interface OpenAIAgentsPendingFunctionCall {
|
|
88
|
+
type: "function_call";
|
|
89
|
+
call_id: string;
|
|
90
|
+
name: string;
|
|
91
|
+
arguments: unknown;
|
|
92
|
+
turn_id: string;
|
|
93
|
+
}
|
|
94
|
+
export interface OpenAIAgentsPendingResult {
|
|
95
|
+
event: OpenMAEvent;
|
|
96
|
+
functionCalls: OpenAIAgentsPendingFunctionCall[];
|
|
97
|
+
}
|
|
98
|
+
export declare function decodeOpenAIAgentsItem(item: OpenAIAgentsItem, context: OpenAIAgentsDecodeContext): OpenMAEvent;
|
|
99
|
+
export declare function decodeOpenAIAgentsTurn(turn: OpenAIAgentsTurn, context: OpenAIAgentsDecodeContext): OpenMAEvent;
|
|
100
|
+
export declare function decodeOpenAIAgentsPendingActions(session: OpenAIAgentsSessionSnapshot, context: OpenAIAgentsPendingContext): OpenAIAgentsPendingResult;
|
|
101
|
+
export declare function decodeOpenAIAgentsStreamEvent(event: OpenAIAgentsStreamEvent, context: OpenAIAgentsDecodeContext): OpenMAEvent[];
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/openai-agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Agents → OpenMA event decoder.
|
|
3
|
+
*
|
|
4
|
+
* Direct port of backchat `DirectAgentRuntime` at `64fd74d`
|
|
5
|
+
* (`src/main/direct-agent-runtime.ts`): `#item`, `#turn`, `#openaiEvent`,
|
|
6
|
+
* `#pending`, `#vendor`, and `#event`. `#wrap` stays in backchat; it only
|
|
7
|
+
* builds the desktop task envelope around the canonical event.
|
|
8
|
+
* `pendingActions` / `custom_result` stay there too.
|
|
9
|
+
* `decodeOpenAIAgentsPendingActions` returns the `required_actions` vendor
|
|
10
|
+
* event plus the `function_call` entries themselves.
|
|
11
|
+
*
|
|
12
|
+
* Input types are structural on purpose. That commit duck-types items
|
|
13
|
+
* (`"status" in item`, `type.endsWith("_call")`) instead of switching on the
|
|
14
|
+
* SDK union, and the contract is byte-for-byte output against that commit.
|
|
15
|
+
* An optional `openai` peer would not make the mapping exhaustive the way
|
|
16
|
+
* `@anthropic-ai/sdk` does for Managed Agents.
|
|
17
|
+
*/
|
|
18
|
+
import { createOpenMAEvent, createVendorEvent, } from "../../session-events/openma.js";
|
|
19
|
+
const SOURCE = { kind: "harness", harness: "openai-agents" };
|
|
20
|
+
const TURN_EVENT_TYPES = {
|
|
21
|
+
completed: "turn.completed",
|
|
22
|
+
failed: "turn.failed",
|
|
23
|
+
cancelled: "turn.cancelled",
|
|
24
|
+
queued: "turn.queued",
|
|
25
|
+
in_progress: "session.running",
|
|
26
|
+
waiting: "session.running",
|
|
27
|
+
};
|
|
28
|
+
/** Same expression as backchat `64fd74d`: `b.text ?? ""`, joined with `""`. */
|
|
29
|
+
function contentText(content) {
|
|
30
|
+
return typeof content === "string"
|
|
31
|
+
? content
|
|
32
|
+
: Array.isArray(content)
|
|
33
|
+
? content.map((block) => block.text ?? "").join("")
|
|
34
|
+
: "";
|
|
35
|
+
}
|
|
36
|
+
function isoFromSeconds(seconds) {
|
|
37
|
+
return new Date(seconds * 1000).toISOString();
|
|
38
|
+
}
|
|
39
|
+
function canonical(context, id, type, data, turnId, occurredAt = context.now()) {
|
|
40
|
+
return createOpenMAEvent({
|
|
41
|
+
event_id: id,
|
|
42
|
+
session_id: context.sessionId,
|
|
43
|
+
...(turnId ? { turn_id: turnId } : {}),
|
|
44
|
+
source: SOURCE,
|
|
45
|
+
occurred_at: occurredAt,
|
|
46
|
+
type,
|
|
47
|
+
data,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function vendor(context, id, name, data, turnId) {
|
|
51
|
+
return createVendorEvent({
|
|
52
|
+
event_id: id,
|
|
53
|
+
session_id: context.sessionId,
|
|
54
|
+
...(turnId ? { turn_id: turnId } : {}),
|
|
55
|
+
source: SOURCE,
|
|
56
|
+
occurred_at: context.now(),
|
|
57
|
+
harness: "openai-agents",
|
|
58
|
+
namespace: "agents",
|
|
59
|
+
name,
|
|
60
|
+
data,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function decodeOpenAIAgentsItem(item, context) {
|
|
64
|
+
const id = item.id ?? `${item.turn_id}:user`;
|
|
65
|
+
if (item.type === "message") {
|
|
66
|
+
return canonical(context, `item:${id}:${item.status}`, item.role === "user" ? "user.message" : "agent.message", { message_id: id, text: contentText(item.content), content: item.content }, item.turn_id);
|
|
67
|
+
}
|
|
68
|
+
if (item.type === "reasoning") {
|
|
69
|
+
return canonical(context, `item:${id}`, "agent.thinking", { message_id: id, text: contentText(item.summary) }, item.turn_id);
|
|
70
|
+
}
|
|
71
|
+
if (item.type === "function_call_output") {
|
|
72
|
+
return canonical(context, `item:${id}`, item.status === "failed" ? "tool.failed" : "tool.completed", { tool_call_id: item.call_id, raw_output: item.output, error: item.error }, item.turn_id);
|
|
73
|
+
}
|
|
74
|
+
if ("status" in item && (item.type.endsWith("_call") || item.type === "command_execution")) {
|
|
75
|
+
const value = item;
|
|
76
|
+
return canonical(context, `item:${id}:${value.status}`, value.status === "failed"
|
|
77
|
+
? "tool.failed"
|
|
78
|
+
: value.status === "completed"
|
|
79
|
+
? "tool.completed"
|
|
80
|
+
: "tool.started", {
|
|
81
|
+
tool_call_id: value.call_id ?? id,
|
|
82
|
+
tool_name: value.name ?? item.type,
|
|
83
|
+
title: value.name ?? item.type,
|
|
84
|
+
raw_input: value.arguments ?? value.command ?? item,
|
|
85
|
+
raw_output: value.output,
|
|
86
|
+
error: value.error,
|
|
87
|
+
}, item.turn_id);
|
|
88
|
+
}
|
|
89
|
+
return vendor(context, `item:${id}`, item.type, item, item.turn_id);
|
|
90
|
+
}
|
|
91
|
+
export function decodeOpenAIAgentsTurn(turn, context) {
|
|
92
|
+
const type = TURN_EVENT_TYPES[turn.status];
|
|
93
|
+
return canonical(context, `turn:${turn.id}:${turn.status}`, type, { error: turn.error, message: turn.error?.message }, turn.id, isoFromSeconds((turn.completed_at ?? turn.created_at)));
|
|
94
|
+
}
|
|
95
|
+
export function decodeOpenAIAgentsPendingActions(session, context) {
|
|
96
|
+
const actions = session.required_actions ?? [];
|
|
97
|
+
const functionCalls = actions.flatMap((action) => {
|
|
98
|
+
if (action.type !== "function_call")
|
|
99
|
+
return [];
|
|
100
|
+
return [{
|
|
101
|
+
type: "function_call",
|
|
102
|
+
call_id: action.call_id,
|
|
103
|
+
name: action.name,
|
|
104
|
+
arguments: action.arguments,
|
|
105
|
+
turn_id: action.turn_id,
|
|
106
|
+
}];
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
event: vendor(context, context.eventId, "required_actions", actions),
|
|
110
|
+
functionCalls,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function decodeOpenAIAgentsStreamEvent(event, context) {
|
|
114
|
+
if (event.type === "agent.session.turn.item.added"
|
|
115
|
+
|| event.type === "agent.session.turn.item.done") {
|
|
116
|
+
return [decodeOpenAIAgentsItem(event.item, context)];
|
|
117
|
+
}
|
|
118
|
+
if (event.type === "agent.session.turn.output_text.delta") {
|
|
119
|
+
return [canonical(context, event.event_id, "agent.message_chunk", { message_id: event.item_id, text: event.delta }, event.turn_id ?? undefined)];
|
|
120
|
+
}
|
|
121
|
+
if ("turn" in event) {
|
|
122
|
+
return [decodeOpenAIAgentsTurn(event.turn, context)];
|
|
123
|
+
}
|
|
124
|
+
if ("session" in event) {
|
|
125
|
+
const session = event.session;
|
|
126
|
+
const type = session.status === "idle"
|
|
127
|
+
? "session.idle"
|
|
128
|
+
: session.status === "failed"
|
|
129
|
+
? "session.error"
|
|
130
|
+
: "session.running";
|
|
131
|
+
return [
|
|
132
|
+
canonical(context, event.event_id, type, { message: session.error }),
|
|
133
|
+
decodeOpenAIAgentsPendingActions(session, {
|
|
134
|
+
...context,
|
|
135
|
+
eventId: `${event.event_id}:required`,
|
|
136
|
+
}).event,
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
const turnId = "turn_id" in event ? event.turn_id ?? undefined : undefined;
|
|
140
|
+
return [vendor(context, event.event_id, event.type, event, turnId)];
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocol/openai-agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type AcpSystemNotice = {
|
|
2
|
+
message: string;
|
|
3
|
+
tone: "warning";
|
|
4
|
+
};
|
|
5
|
+
export declare function splitAcpSystemNoticeText(text: string): {
|
|
6
|
+
notice?: string;
|
|
7
|
+
transcript: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function extractAcpSystemNotice(event: unknown): AcpSystemNotice | null;
|
|
10
|
+
//# sourceMappingURL=acp-system-notices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acp-system-notices.d.ts","sourceRoot":"","sources":["../../src/session-events/acp-system-notices.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAWF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAgBA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAsB7E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const CODEX_SKILL_CONTEXT_WARNING = /^Warning:\s*Skill descriptions were shortened to fit the (?:\d+%\s+)?skills context budget\./;
|
|
2
|
+
function asRecord(value) {
|
|
3
|
+
return value !== null && typeof value === "object"
|
|
4
|
+
? value
|
|
5
|
+
: null;
|
|
6
|
+
}
|
|
7
|
+
export function splitAcpSystemNoticeText(text) {
|
|
8
|
+
const candidate = text.trimStart();
|
|
9
|
+
if (!CODEX_SKILL_CONTEXT_WARNING.test(candidate)) {
|
|
10
|
+
return { transcript: text };
|
|
11
|
+
}
|
|
12
|
+
const paragraphBreak = candidate.search(/\r?\n[\t ]*\r?\n/);
|
|
13
|
+
if (paragraphBreak < 0) {
|
|
14
|
+
return { notice: candidate.trim(), transcript: "" };
|
|
15
|
+
}
|
|
16
|
+
const separator = candidate
|
|
17
|
+
.slice(paragraphBreak)
|
|
18
|
+
.match(/^\r?\n[\t ]*\r?\n/)?.[0] ?? "";
|
|
19
|
+
return {
|
|
20
|
+
notice: candidate.slice(0, paragraphBreak).trim(),
|
|
21
|
+
transcript: candidate.slice(paragraphBreak + separator.length).trimStart(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function extractAcpSystemNotice(event) {
|
|
25
|
+
const outer = asRecord(event);
|
|
26
|
+
const wrapped = asRecord(outer?.update);
|
|
27
|
+
const inner = wrapped ?? outer;
|
|
28
|
+
if (!inner || inner.sessionUpdate !== "agent_message_chunk")
|
|
29
|
+
return null;
|
|
30
|
+
const meta = asRecord(inner._meta);
|
|
31
|
+
const codex = asRecord(meta?.codex);
|
|
32
|
+
if (codex?.phase === "final_answer")
|
|
33
|
+
return null;
|
|
34
|
+
const piAcp = asRecord(meta?.piAcp);
|
|
35
|
+
const piNotify = asRecord(piAcp?.notify);
|
|
36
|
+
const piLevel = piNotify?.level;
|
|
37
|
+
const content = asRecord(inner.content);
|
|
38
|
+
const text = typeof content?.text === "string" ? content.text.trim() : "";
|
|
39
|
+
if (codex?.phase !== "final_answer" && splitAcpSystemNoticeText(text).notice) {
|
|
40
|
+
return { message: splitAcpSystemNoticeText(text).notice, tone: "warning" };
|
|
41
|
+
}
|
|
42
|
+
if (piLevel !== "warning" && piLevel !== "error")
|
|
43
|
+
return null;
|
|
44
|
+
return { message: text, tone: "warning" };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=acp-system-notices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acp-system-notices.js","sourceRoot":"","sources":["../../src/session-events/acp-system-notices.ts"],"names":[],"mappings":"AAKA,MAAM,2BAA2B,GAC/B,8FAA8F,CAAC;AAEjG,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAChD,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IAInD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,SAAS,GAAG,SAAS;SACxB,KAAK,CAAC,cAAc,CAAC;SACrB,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE;QACjD,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAEzE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,KAAK,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,CAAC;IAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,KAAK,EAAE,KAAK,KAAK,cAAc,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAE9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reduce an array of ACP `session.event` payloads into the bubble structure
|
|
3
|
+
* the chat view renders.
|
|
4
|
+
*
|
|
5
|
+
* - `agent_message_chunk` (type=text) → concatenated into a single
|
|
6
|
+
* assistant bubble (one per turn).
|
|
7
|
+
* - `agent_thought_chunk` (type=text) → concatenated into an optional
|
|
8
|
+
* "Thinking" reasoning block above the assistant bubble.
|
|
9
|
+
* - `tool_call` → a new `ToolEntry` with status/title/etc, content[]
|
|
10
|
+
* blocks (diff / terminal / image / content), and locations[].
|
|
11
|
+
* - `tool_call_update` → PATCH onto an existing tool by toolCallId.
|
|
12
|
+
* - `plan` → REPLACE the current plan (no merging).
|
|
13
|
+
* - `available_commands_update` → REPLACE the per-session slash command
|
|
14
|
+
* list. The session store, not reduceTurn, owns this — it's
|
|
15
|
+
* session-scoped, not turn-scoped — but we surface it here so the
|
|
16
|
+
* reducer test can verify the dispatch path.
|
|
17
|
+
* - `current_mode_update` → REPLACE the agent's current mode id.
|
|
18
|
+
* - session-level metadata is handled by SessionStore before this reducer.
|
|
19
|
+
*
|
|
20
|
+
* Designed to be pure: pass an immutable event list, get a snapshot.
|
|
21
|
+
* Re-running on each render is cheap because events list grows linearly
|
|
22
|
+
* with the turn length (a few hundred at most).
|
|
23
|
+
*/
|
|
24
|
+
export { extractAcpSystemNotice, type AcpSystemNotice } from "./acp-system-notices.js";
|
|
25
|
+
/** Internal transport context added when the ACP SDK gives OpenMA a
|
|
26
|
+
* notification-scoped `_meta` alongside `params.update`. The explicit key
|
|
27
|
+
* keeps wire-layer metadata separate from update/harness `_meta` while the
|
|
28
|
+
* existing flat update shape remains compatible with consumers. */
|
|
29
|
+
export declare const ACP_NOTIFICATION_CONTEXT_KEY: "_openma.acp.notification";
|
|
30
|
+
export declare function preserveAcpNotificationContext(params: unknown): unknown;
|
|
31
|
+
export interface ChunkText {
|
|
32
|
+
text: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ToolEntry {
|
|
35
|
+
toolCallId: string;
|
|
36
|
+
title?: string;
|
|
37
|
+
kind?: string;
|
|
38
|
+
status?: "pending" | "in_progress" | "completed" | "failed" | string;
|
|
39
|
+
rawInput?: unknown;
|
|
40
|
+
rawOutput?: unknown;
|
|
41
|
+
toolName?: string;
|
|
42
|
+
/** Vendor/implementation extension data carried by ACP `_meta`. ACP
|
|
43
|
+
* explicitly reserves this shape for custom protocol details. */
|
|
44
|
+
meta?: Record<string, unknown>;
|
|
45
|
+
/** Known vendor extension used by claude-agent-acp to associate subagent
|
|
46
|
+
* child tool calls with the parent Task/Agent tool use. */
|
|
47
|
+
parentToolUseId?: string;
|
|
48
|
+
/** ACP tool content blocks. Each block is one of:
|
|
49
|
+
* { type: "content", content: { type: "text" | "image" | ..., ... } }
|
|
50
|
+
* { type: "diff", path, oldText, newText }
|
|
51
|
+
* { type: "terminal", terminalId }
|
|
52
|
+
* Patch semantics on tool_call_update: when content arrives in an
|
|
53
|
+
* update, REPLACE the array (matches Zed's reference client). */
|
|
54
|
+
content?: ToolContentBlock[];
|
|
55
|
+
/** Files / URLs the tool touched. Renderer turns these into clickable
|
|
56
|
+
* links above the disclosure. */
|
|
57
|
+
locations?: Array<{
|
|
58
|
+
path?: string;
|
|
59
|
+
line?: number;
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
interface ToolOutputDelta {
|
|
63
|
+
data: string;
|
|
64
|
+
/** Terminal output is byte-stream-like; MCP progress is line-oriented. */
|
|
65
|
+
separator: string;
|
|
66
|
+
}
|
|
67
|
+
interface NormalizedToolPatch extends Partial<ToolEntry> {
|
|
68
|
+
toolCallId: string;
|
|
69
|
+
/** Incoming-only adapter extension data consumed by reduceTurn. */
|
|
70
|
+
outputDelta?: ToolOutputDelta;
|
|
71
|
+
}
|
|
72
|
+
export type ToolContentBlock = {
|
|
73
|
+
type: "content";
|
|
74
|
+
content?: {
|
|
75
|
+
type?: string;
|
|
76
|
+
text?: string;
|
|
77
|
+
uri?: string;
|
|
78
|
+
name?: string;
|
|
79
|
+
mimeType?: string;
|
|
80
|
+
data?: string;
|
|
81
|
+
};
|
|
82
|
+
} | {
|
|
83
|
+
type: "diff";
|
|
84
|
+
path?: string;
|
|
85
|
+
oldText?: string;
|
|
86
|
+
newText?: string;
|
|
87
|
+
} | {
|
|
88
|
+
type: "terminal";
|
|
89
|
+
terminalId?: string;
|
|
90
|
+
};
|
|
91
|
+
export interface PlanEntry {
|
|
92
|
+
id?: string;
|
|
93
|
+
content: string;
|
|
94
|
+
status?: "pending" | "in_progress" | "completed" | "cancelled";
|
|
95
|
+
priority?: "high" | "medium" | "low";
|
|
96
|
+
}
|
|
97
|
+
export interface PlanDocument {
|
|
98
|
+
id?: string;
|
|
99
|
+
title?: string;
|
|
100
|
+
type?: "markdown" | "file";
|
|
101
|
+
markdown?: string;
|
|
102
|
+
uri?: string;
|
|
103
|
+
}
|
|
104
|
+
export type TimelineItem = {
|
|
105
|
+
/** Continuous block of assistant text — concatenated agent_message_chunk
|
|
106
|
+
* events that arrived without being interrupted by a tool_call. The
|
|
107
|
+
* next tool_call starts a new segment. */
|
|
108
|
+
kind: "assistant_text";
|
|
109
|
+
text: string;
|
|
110
|
+
phase?: "commentary" | "final_answer";
|
|
111
|
+
} | {
|
|
112
|
+
/** One logical thought message. Chunks sharing a messageId patch this
|
|
113
|
+
* item; a new messageId appends a new item to the activity timeline. */
|
|
114
|
+
kind: "thought";
|
|
115
|
+
messageId?: string;
|
|
116
|
+
text: string;
|
|
117
|
+
} | {
|
|
118
|
+
/** Pointer to a ToolEntry; the renderer looks the entry up in `tools`
|
|
119
|
+
* by id rather than embedding it inline so tool_call_update events
|
|
120
|
+
* that PATCH the tool still flow through. */
|
|
121
|
+
kind: "tool";
|
|
122
|
+
toolCallId: string;
|
|
123
|
+
};
|
|
124
|
+
export interface TurnRender {
|
|
125
|
+
thoughtText: string;
|
|
126
|
+
/** The current, replaceable thought status at the tail of a running
|
|
127
|
+
* activity stream. Cleared as soon as commentary or a tool follows it. */
|
|
128
|
+
currentThoughtText: string;
|
|
129
|
+
assistantText: string;
|
|
130
|
+
tools: ToolEntry[];
|
|
131
|
+
plan: PlanEntry[];
|
|
132
|
+
planDocument?: PlanDocument;
|
|
133
|
+
/** Synthetic runtime notes that belong in the activity transcript. */
|
|
134
|
+
notes: string[];
|
|
135
|
+
/** Time-ordered list of "what to render between thought and assistant
|
|
136
|
+
* tail". Assistant message chunks and tool_calls interleave in the
|
|
137
|
+
* ACP stream — agents say "I'll look at X", call read_text_file,
|
|
138
|
+
* then say "now I'll edit Y" and call write_text_file. Lumping all
|
|
139
|
+
* text after all tools (the old behavior) reads as "did a bunch of
|
|
140
|
+
* things, then explained". This list preserves the order. */
|
|
141
|
+
timeline: TimelineItem[];
|
|
142
|
+
}
|
|
143
|
+
export interface AvailableCommand {
|
|
144
|
+
name: string;
|
|
145
|
+
description?: string;
|
|
146
|
+
input?: {
|
|
147
|
+
hint?: string;
|
|
148
|
+
} | null;
|
|
149
|
+
}
|
|
150
|
+
export type ParsedAcpEvent = {
|
|
151
|
+
kind: "text";
|
|
152
|
+
text: string;
|
|
153
|
+
phase?: "commentary" | "final_answer";
|
|
154
|
+
messageId?: string;
|
|
155
|
+
/** Claude Agent ACP's nested transcript correlation. */
|
|
156
|
+
parentToolUseId?: string;
|
|
157
|
+
event: unknown;
|
|
158
|
+
} | {
|
|
159
|
+
kind: "thought";
|
|
160
|
+
text: string;
|
|
161
|
+
messageId?: string;
|
|
162
|
+
/** Claude Agent ACP's nested transcript correlation. */
|
|
163
|
+
parentToolUseId?: string;
|
|
164
|
+
event: unknown;
|
|
165
|
+
} | {
|
|
166
|
+
kind: "notice";
|
|
167
|
+
notice: string;
|
|
168
|
+
event: unknown;
|
|
169
|
+
} | {
|
|
170
|
+
kind: "tool_call";
|
|
171
|
+
tool: NormalizedToolPatch;
|
|
172
|
+
event: unknown;
|
|
173
|
+
} | {
|
|
174
|
+
kind: "commands";
|
|
175
|
+
commands: AvailableCommand[];
|
|
176
|
+
event: unknown;
|
|
177
|
+
} | {
|
|
178
|
+
kind: "plan";
|
|
179
|
+
planId?: string;
|
|
180
|
+
updateMode?: "replace" | "merge";
|
|
181
|
+
plan: PlanEntry[];
|
|
182
|
+
document?: PlanDocument;
|
|
183
|
+
event: unknown;
|
|
184
|
+
} | {
|
|
185
|
+
kind: "plan_document";
|
|
186
|
+
document?: PlanDocument;
|
|
187
|
+
event: unknown;
|
|
188
|
+
} | {
|
|
189
|
+
kind: "plan_removed";
|
|
190
|
+
planId?: string;
|
|
191
|
+
event: unknown;
|
|
192
|
+
} | {
|
|
193
|
+
kind: "note";
|
|
194
|
+
note: string;
|
|
195
|
+
event: unknown;
|
|
196
|
+
} | {
|
|
197
|
+
kind: "silent";
|
|
198
|
+
event: unknown;
|
|
199
|
+
} | {
|
|
200
|
+
kind: "raw";
|
|
201
|
+
event: unknown;
|
|
202
|
+
};
|
|
203
|
+
export declare function sessionUpdateInner(event: unknown): Record<string, unknown>;
|
|
204
|
+
export declare function sessionUpdateType(event: unknown): string | undefined;
|
|
205
|
+
export declare function sanitizeThoughtText(text: string): string;
|
|
206
|
+
export declare function parseAcpEvent(event: unknown): ParsedAcpEvent;
|
|
207
|
+
export declare function mergeStreamingText(accumulated: string, incoming: string): string;
|
|
208
|
+
export declare function reduceTurn(events: readonly {
|
|
209
|
+
payload: unknown;
|
|
210
|
+
}[]): TurnRender;
|
|
211
|
+
export declare function latestThoughtSegment(text: string): string;
|
|
212
|
+
/** @deprecated Use @openma/common/protocol/acp for the SDK codec. */
|
|
213
|
+
export * from "../protocol/acp/index.js";
|
|
214
|
+
//# sourceMappingURL=acp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/session-events/acp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;mEAGmE;AACnE,eAAO,MAAM,4BAA4B,EAAG,0BAAmC,CAAC;AAEhF,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAiBvE;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;sEACkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;gEAC4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;sEAKkE;IAClE,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B;sCACkC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAoB,SAAQ,OAAO,CAAC,SAAS,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB;IACE;;+CAE2C;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;CACvC,GACD;IACE;4EACwE;IACxE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE;;kDAE8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB;8EAC0E;IAC1E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;kEAK8D;IAC9D,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA6BD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClE;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAsBpC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAapE;AAkMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAmCD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAyX5D;AAWD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmBhF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,UAAU,CAqO9E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,qEAAqE;AACrE,cAAc,0BAA0B,CAAC"}
|