@openma/common 0.0.0-stage → 0.9.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 +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 +872 -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,273 @@
|
|
|
1
|
+
import { parseAcpEvent, sessionUpdateInner, sessionUpdateType, } from "../session-events/acp.js";
|
|
2
|
+
import { OPENMA_EVENT_SCHEMA_VERSION, createRawEvent, immutableJson, } from "../session-events/openma.js";
|
|
3
|
+
import { agentEventEnvelope, callbackFingerprint, createOpenMAEvent, } from "./index.js";
|
|
4
|
+
const ACP_SOURCE = {
|
|
5
|
+
kind: "harness",
|
|
6
|
+
harness: "acp",
|
|
7
|
+
adapter: "acp",
|
|
8
|
+
};
|
|
9
|
+
function isCanonicalOpenMAEvent(event) {
|
|
10
|
+
return Boolean(event
|
|
11
|
+
&& typeof event === "object"
|
|
12
|
+
&& event.schema_version === OPENMA_EVENT_SCHEMA_VERSION);
|
|
13
|
+
}
|
|
14
|
+
function snapshotCanonicalOpenMAEvent(event, context) {
|
|
15
|
+
agentEventEnvelope(context, ACP_SOURCE);
|
|
16
|
+
const record = event;
|
|
17
|
+
const requiredStrings = ["event_id", "type", "session_id", "turn_id", "occurred_at"];
|
|
18
|
+
for (const field of requiredStrings) {
|
|
19
|
+
if (typeof record[field] !== "string" || record[field].length === 0) {
|
|
20
|
+
throw new TypeError(`Canonical OpenMA event requires ${field}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const expected = {
|
|
24
|
+
event_id: context.eventId,
|
|
25
|
+
session_id: context.sessionId,
|
|
26
|
+
turn_id: context.turnId,
|
|
27
|
+
occurred_at: context.occurredAt,
|
|
28
|
+
seq: context.seq,
|
|
29
|
+
};
|
|
30
|
+
for (const [field, value] of Object.entries(expected)) {
|
|
31
|
+
if (record[field] !== value) {
|
|
32
|
+
throw new Error(`Canonical OpenMA event ${field} does not match mapper context`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!Object.prototype.hasOwnProperty.call(record, "data")) {
|
|
36
|
+
throw new TypeError("Canonical OpenMA event requires data");
|
|
37
|
+
}
|
|
38
|
+
const source = objectRecord(record.source);
|
|
39
|
+
if (typeof source.kind !== "string" || source.kind.length === 0) {
|
|
40
|
+
throw new TypeError("Canonical OpenMA event requires source.kind");
|
|
41
|
+
}
|
|
42
|
+
return immutableJson(event);
|
|
43
|
+
}
|
|
44
|
+
function toolEventType(status) {
|
|
45
|
+
if (status === "completed")
|
|
46
|
+
return "tool.completed";
|
|
47
|
+
if (status === "failed")
|
|
48
|
+
return "tool.failed";
|
|
49
|
+
if (status === "cancelled")
|
|
50
|
+
return "tool.cancelled";
|
|
51
|
+
if (status === "in_progress")
|
|
52
|
+
return "tool.progress";
|
|
53
|
+
return "tool.started";
|
|
54
|
+
}
|
|
55
|
+
function canonicalToolStatus(status) {
|
|
56
|
+
switch (status) {
|
|
57
|
+
case "pending":
|
|
58
|
+
case "in_progress":
|
|
59
|
+
case "completed":
|
|
60
|
+
case "failed":
|
|
61
|
+
case "cancelled":
|
|
62
|
+
return status;
|
|
63
|
+
default:
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function objectRecord(value) {
|
|
68
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
69
|
+
? value
|
|
70
|
+
: {};
|
|
71
|
+
}
|
|
72
|
+
function nonEmptyString(value) {
|
|
73
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
74
|
+
}
|
|
75
|
+
function callbackCategory(method) {
|
|
76
|
+
if (method === "session/request_permission")
|
|
77
|
+
return "permission";
|
|
78
|
+
if (method.startsWith("elicitation/"))
|
|
79
|
+
return "elicitation";
|
|
80
|
+
if (method.startsWith("fs/"))
|
|
81
|
+
return "filesystem";
|
|
82
|
+
if (method.startsWith("terminal/"))
|
|
83
|
+
return "terminal";
|
|
84
|
+
if (method.startsWith("mcp/"))
|
|
85
|
+
return "mcp";
|
|
86
|
+
return "extension";
|
|
87
|
+
}
|
|
88
|
+
function acpRuntimeEventToOpenMA(event, context) {
|
|
89
|
+
const envelope = agentEventEnvelope(context, ACP_SOURCE);
|
|
90
|
+
if (event.type === "promptComplete") {
|
|
91
|
+
const response = objectRecord(event.response);
|
|
92
|
+
const stopReason = nonEmptyString(response.stopReason) ?? "unknown";
|
|
93
|
+
return createOpenMAEvent({
|
|
94
|
+
...envelope,
|
|
95
|
+
type: stopReason === "cancelled" ? "turn.cancelled" : "turn.completed",
|
|
96
|
+
data: {
|
|
97
|
+
stop_reason: stopReason,
|
|
98
|
+
...(response.usage !== undefined ? { usage: response.usage } : {}),
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (event.type === "promptError") {
|
|
103
|
+
return createOpenMAEvent({
|
|
104
|
+
...envelope,
|
|
105
|
+
type: "turn.failed",
|
|
106
|
+
data: { error: String(event.error ?? "ACP prompt failed") },
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (event.type === "acp.client_request"
|
|
110
|
+
|| event.type === "acp.client_response"
|
|
111
|
+
|| event.type === "acp.client_error"
|
|
112
|
+
|| event.type === "acp.client_notification") {
|
|
113
|
+
const method = nonEmptyString(event.method) ?? "acp/unknown";
|
|
114
|
+
const category = callbackCategory(method);
|
|
115
|
+
const callbackId = nonEmptyString(event.requestId);
|
|
116
|
+
const type = event.type === "acp.client_request"
|
|
117
|
+
? "callback.requested"
|
|
118
|
+
: event.type === "acp.client_response"
|
|
119
|
+
? "callback.completed"
|
|
120
|
+
: event.type === "acp.client_error"
|
|
121
|
+
? "callback.failed"
|
|
122
|
+
: "callback.notification";
|
|
123
|
+
const data = {
|
|
124
|
+
method,
|
|
125
|
+
category,
|
|
126
|
+
...(callbackId
|
|
127
|
+
? {
|
|
128
|
+
callback_id: callbackId,
|
|
129
|
+
fingerprint: callbackFingerprint(context, category, method, callbackId, event.params),
|
|
130
|
+
}
|
|
131
|
+
: {}),
|
|
132
|
+
...(event.params !== undefined ? { params: event.params } : {}),
|
|
133
|
+
...(event.result !== undefined ? { result: event.result } : {}),
|
|
134
|
+
...(event.error !== undefined ? { error: event.error } : {}),
|
|
135
|
+
};
|
|
136
|
+
return createOpenMAEvent({ ...envelope, type, data });
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
function acpSessionMetadataEventToOpenMA(event, context) {
|
|
141
|
+
const update = sessionUpdateType(event);
|
|
142
|
+
if (update !== "current_mode_update"
|
|
143
|
+
&& update !== "config_option_update"
|
|
144
|
+
&& update !== "session_info_update"
|
|
145
|
+
&& update !== "usage_update")
|
|
146
|
+
return undefined;
|
|
147
|
+
const envelope = agentEventEnvelope(context, ACP_SOURCE);
|
|
148
|
+
const data = sessionUpdateInner(event);
|
|
149
|
+
return createOpenMAEvent({
|
|
150
|
+
...envelope,
|
|
151
|
+
type: update === "usage_update" ? "usage.updated" : "capability.updated",
|
|
152
|
+
data: { update, value: data },
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
export function acpEventToOpenMA(event, context) {
|
|
156
|
+
if (isCanonicalOpenMAEvent(event)) {
|
|
157
|
+
return snapshotCanonicalOpenMAEvent(event, context);
|
|
158
|
+
}
|
|
159
|
+
const runtimeEvent = acpRuntimeEventToOpenMA(objectRecord(event), context);
|
|
160
|
+
if (runtimeEvent)
|
|
161
|
+
return runtimeEvent;
|
|
162
|
+
const sessionMetadataEvent = acpSessionMetadataEventToOpenMA(event, context);
|
|
163
|
+
if (sessionMetadataEvent)
|
|
164
|
+
return sessionMetadataEvent;
|
|
165
|
+
const envelope = agentEventEnvelope(context, ACP_SOURCE);
|
|
166
|
+
const parsed = parseAcpEvent(event);
|
|
167
|
+
switch (parsed.kind) {
|
|
168
|
+
case "text":
|
|
169
|
+
return createOpenMAEvent({
|
|
170
|
+
...envelope,
|
|
171
|
+
...(parsed.parentToolUseId ? { parent_id: parsed.parentToolUseId } : {}),
|
|
172
|
+
type: "agent.message_chunk",
|
|
173
|
+
data: {
|
|
174
|
+
text: parsed.text,
|
|
175
|
+
...(parsed.messageId ? { message_id: parsed.messageId } : {}),
|
|
176
|
+
...(parsed.phase ? { phase: parsed.phase } : {}),
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
case "thought":
|
|
180
|
+
return createOpenMAEvent({
|
|
181
|
+
...envelope,
|
|
182
|
+
...(parsed.parentToolUseId ? { parent_id: parsed.parentToolUseId } : {}),
|
|
183
|
+
type: "agent.thinking",
|
|
184
|
+
data: {
|
|
185
|
+
text: parsed.text,
|
|
186
|
+
...(parsed.messageId ? { message_id: parsed.messageId } : {}),
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
case "notice":
|
|
190
|
+
return createOpenMAEvent({
|
|
191
|
+
...envelope,
|
|
192
|
+
type: "system.notice",
|
|
193
|
+
data: { message: parsed.notice },
|
|
194
|
+
});
|
|
195
|
+
case "tool_call": {
|
|
196
|
+
const type = toolEventType(parsed.tool.status);
|
|
197
|
+
const status = canonicalToolStatus(parsed.tool.status);
|
|
198
|
+
return createOpenMAEvent({
|
|
199
|
+
...envelope,
|
|
200
|
+
...(parsed.tool.parentToolUseId ? { parent_id: parsed.tool.parentToolUseId } : {}),
|
|
201
|
+
type,
|
|
202
|
+
data: {
|
|
203
|
+
tool_call_id: parsed.tool.toolCallId,
|
|
204
|
+
...(parsed.tool.title !== undefined ? { title: parsed.tool.title } : {}),
|
|
205
|
+
...(parsed.tool.kind !== undefined ? { kind: parsed.tool.kind } : {}),
|
|
206
|
+
...(status !== undefined ? { status } : {}),
|
|
207
|
+
...(parsed.tool.toolName !== undefined
|
|
208
|
+
? { tool_name: parsed.tool.toolName }
|
|
209
|
+
: {}),
|
|
210
|
+
...(parsed.tool.rawInput !== undefined
|
|
211
|
+
? { raw_input: parsed.tool.rawInput }
|
|
212
|
+
: {}),
|
|
213
|
+
...(parsed.tool.rawOutput !== undefined
|
|
214
|
+
? { raw_output: parsed.tool.rawOutput }
|
|
215
|
+
: {}),
|
|
216
|
+
...(parsed.tool.content !== undefined ? { content: parsed.tool.content } : {}),
|
|
217
|
+
...(parsed.tool.locations !== undefined
|
|
218
|
+
? { locations: parsed.tool.locations }
|
|
219
|
+
: {}),
|
|
220
|
+
...(parsed.tool.meta !== undefined
|
|
221
|
+
? { adapter_meta: parsed.tool.meta }
|
|
222
|
+
: {}),
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
case "commands":
|
|
227
|
+
return createOpenMAEvent({
|
|
228
|
+
...envelope,
|
|
229
|
+
type: "command_catalog.updated",
|
|
230
|
+
data: { commands: parsed.commands },
|
|
231
|
+
});
|
|
232
|
+
case "plan":
|
|
233
|
+
return createOpenMAEvent({
|
|
234
|
+
...envelope,
|
|
235
|
+
type: "plan.updated",
|
|
236
|
+
data: {
|
|
237
|
+
representation: "items",
|
|
238
|
+
...(parsed.planId ? { plan_id: parsed.planId } : {}),
|
|
239
|
+
...(parsed.updateMode ? { update_mode: parsed.updateMode } : {}),
|
|
240
|
+
entries: parsed.plan,
|
|
241
|
+
...(parsed.document ? { document: parsed.document } : {}),
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
case "plan_document":
|
|
245
|
+
return createOpenMAEvent({
|
|
246
|
+
...envelope,
|
|
247
|
+
type: "plan.updated",
|
|
248
|
+
data: { representation: "markdown", document: parsed.document },
|
|
249
|
+
});
|
|
250
|
+
case "plan_removed":
|
|
251
|
+
return createOpenMAEvent({
|
|
252
|
+
...envelope,
|
|
253
|
+
type: "plan.removed",
|
|
254
|
+
data: parsed.planId ? { plan_id: parsed.planId } : {},
|
|
255
|
+
});
|
|
256
|
+
case "note":
|
|
257
|
+
return createOpenMAEvent({
|
|
258
|
+
...envelope,
|
|
259
|
+
type: "system.notice",
|
|
260
|
+
data: { message: parsed.note },
|
|
261
|
+
});
|
|
262
|
+
case "silent":
|
|
263
|
+
case "raw":
|
|
264
|
+
return createRawEvent({
|
|
265
|
+
...envelope,
|
|
266
|
+
source_kind: "acp",
|
|
267
|
+
method: "session/update",
|
|
268
|
+
payload: event,
|
|
269
|
+
reason: parsed.kind === "raw" ? "unknown" : "unsupported",
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=acp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/agent-contract/acp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { createOpenMAEvent as createLegacyOpenMAEvent, type DeepReadonly, type CallbackCategory, type CallbackRequestedData, type CallbackRequestedEvent, type JsonObject, type JsonValue, type OpenMAEvent, type OpenMAEventSource, type TurnTerminalEvent } from "../session-events/openma.js";
|
|
2
|
+
export * from "../session-events/openma.js";
|
|
3
|
+
/** Agent Contract facts cross a strict, immutable JSON boundary. Legacy
|
|
4
|
+
* session-events callers retain their existing event constructor behavior. */
|
|
5
|
+
export declare function createOpenMAEvent<TType extends string, TData>(input: Parameters<typeof createLegacyOpenMAEvent<TType, TData>>[0]): DeepReadonly<ReturnType<typeof createLegacyOpenMAEvent<TType, TData>>>;
|
|
6
|
+
export type AgentPlacement = "local" | "remote" | "managed";
|
|
7
|
+
export interface AgentSessionHandle {
|
|
8
|
+
readonly connectorId: string;
|
|
9
|
+
readonly externalSessionId: string;
|
|
10
|
+
readonly placement: AgentPlacement;
|
|
11
|
+
readonly resumeToken?: string;
|
|
12
|
+
readonly metadata?: JsonObject;
|
|
13
|
+
}
|
|
14
|
+
export declare function createAgentSessionHandle(input: AgentSessionHandle): Readonly<AgentSessionHandle>;
|
|
15
|
+
export type AgentSessionPersistence = "ephemeral" | "resumable" | "persistent";
|
|
16
|
+
export interface AgentCapabilities {
|
|
17
|
+
readonly sessionPersistence: AgentSessionPersistence;
|
|
18
|
+
readonly streaming: boolean;
|
|
19
|
+
readonly cancellation: boolean;
|
|
20
|
+
readonly permissions: boolean;
|
|
21
|
+
readonly elicitation: boolean;
|
|
22
|
+
readonly steering?: boolean;
|
|
23
|
+
readonly customTools?: boolean;
|
|
24
|
+
readonly mcp?: boolean;
|
|
25
|
+
readonly extensions?: JsonObject;
|
|
26
|
+
}
|
|
27
|
+
export interface AgentSessionInput {
|
|
28
|
+
/** Canonical durable Session id chosen by the host before remote creation. */
|
|
29
|
+
readonly sessionId: string;
|
|
30
|
+
/** Stable key for replaying remote Session creation without duplication. */
|
|
31
|
+
readonly idempotencyKey: string;
|
|
32
|
+
readonly generation: number;
|
|
33
|
+
readonly agentId: string;
|
|
34
|
+
readonly cwd?: string;
|
|
35
|
+
readonly additionalDirectories?: readonly string[];
|
|
36
|
+
readonly resume?: AgentSessionHandle;
|
|
37
|
+
readonly metadata?: JsonObject;
|
|
38
|
+
}
|
|
39
|
+
export interface AgentContentBlock {
|
|
40
|
+
readonly type: string;
|
|
41
|
+
readonly [key: string]: JsonValue;
|
|
42
|
+
}
|
|
43
|
+
export type AgentContent = string | readonly AgentContentBlock[];
|
|
44
|
+
export interface AgentTurnInput {
|
|
45
|
+
/** Canonical durable Session id used by every emitted OpenMA event. */
|
|
46
|
+
readonly sessionId: string;
|
|
47
|
+
readonly turnId: string;
|
|
48
|
+
/** Last sequence already committed by the host during crash recovery. */
|
|
49
|
+
readonly afterSequence: number;
|
|
50
|
+
readonly contextDigest?: string;
|
|
51
|
+
readonly content: AgentContent;
|
|
52
|
+
readonly grants?: readonly string[];
|
|
53
|
+
readonly workspace?: {
|
|
54
|
+
readonly cwd?: string;
|
|
55
|
+
readonly additionalDirectories?: readonly string[];
|
|
56
|
+
};
|
|
57
|
+
readonly metadata?: JsonObject;
|
|
58
|
+
}
|
|
59
|
+
export type AgentCommand = {
|
|
60
|
+
type: "turn.steer";
|
|
61
|
+
content: AgentContent;
|
|
62
|
+
} | {
|
|
63
|
+
type: "turn.cancel";
|
|
64
|
+
turnId: string;
|
|
65
|
+
} | {
|
|
66
|
+
type: "callback.respond";
|
|
67
|
+
callbackId: string;
|
|
68
|
+
result?: JsonValue;
|
|
69
|
+
error?: JsonValue;
|
|
70
|
+
};
|
|
71
|
+
export interface OpenMAAgentConnector {
|
|
72
|
+
readonly id: string;
|
|
73
|
+
capabilities(): Promise<AgentCapabilities>;
|
|
74
|
+
/** MUST be idempotent by input.idempotencyKey. A replay returns the same
|
|
75
|
+
* remote Session identity instead of creating an orphan Session. */
|
|
76
|
+
open(input: AgentSessionInput): Promise<AgentSessionHandle>;
|
|
77
|
+
/** A repeated logical turnId MUST resume/replay that Turn without repeating
|
|
78
|
+
* already-applied Agent/tool side effects. Events at or below afterSequence
|
|
79
|
+
* may be omitted; emitted facts keep the supplied sessionId and turnId. */
|
|
80
|
+
execute(session: AgentSessionHandle, input: AgentTurnInput): AsyncIterable<OpenMAEvent>;
|
|
81
|
+
/** Repeating callback.respond for one callbackId or turn.cancel for one
|
|
82
|
+
* turnId MUST be safe and equivalent to one application. */
|
|
83
|
+
send(session: AgentSessionHandle, command: AgentCommand): Promise<void>;
|
|
84
|
+
/** MUST be idempotent. An already-closed or provider-missing Session is a
|
|
85
|
+
* successful close, not a permanent replay failure. */
|
|
86
|
+
close(session: AgentSessionHandle): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
export interface AgentEventContext {
|
|
89
|
+
readonly eventId: string;
|
|
90
|
+
readonly sessionId: string;
|
|
91
|
+
readonly occurredAt: string;
|
|
92
|
+
readonly source?: OpenMAEventSource;
|
|
93
|
+
readonly sessionThreadId?: string;
|
|
94
|
+
readonly turnId: string;
|
|
95
|
+
readonly workItemId?: string;
|
|
96
|
+
readonly parentEventId?: string;
|
|
97
|
+
readonly parentId?: string;
|
|
98
|
+
readonly seq: number;
|
|
99
|
+
}
|
|
100
|
+
export declare function agentEventEnvelope(context: AgentEventContext, defaultSource: OpenMAEventSource): {
|
|
101
|
+
event_id: string;
|
|
102
|
+
session_id: string;
|
|
103
|
+
source: OpenMAEventSource;
|
|
104
|
+
occurred_at: string;
|
|
105
|
+
session_thread_id?: string;
|
|
106
|
+
turn_id: string;
|
|
107
|
+
work_item_id?: string;
|
|
108
|
+
parent_event_id?: string;
|
|
109
|
+
parent_id?: string;
|
|
110
|
+
seq: number;
|
|
111
|
+
};
|
|
112
|
+
export type AgentTurnTerminalStatus = "completed" | "failed" | "cancelled" | "interrupted";
|
|
113
|
+
export declare function turnTerminalStatus(event: OpenMAEvent): AgentTurnTerminalStatus | undefined;
|
|
114
|
+
export declare function isTurnTerminalEvent(event: OpenMAEvent): event is TurnTerminalEvent;
|
|
115
|
+
export type CallbackRequestEventFor<TCategory extends CallbackCategory> = Omit<CallbackRequestedEvent, "data"> & {
|
|
116
|
+
data: CallbackRequestedData & {
|
|
117
|
+
category: TCategory;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
export declare function isCallbackRequestEvent<TCategory extends CallbackCategory>(event: OpenMAEvent, category: TCategory): event is CallbackRequestEventFor<TCategory>;
|
|
121
|
+
export declare function isCallbackRequestEvent(event: OpenMAEvent): event is CallbackRequestedEvent;
|
|
122
|
+
export declare function isPermissionRequestEvent(event: OpenMAEvent): event is CallbackRequestEventFor<"permission">;
|
|
123
|
+
export declare function isElicitationRequestEvent(event: OpenMAEvent): event is CallbackRequestEventFor<"elicitation">;
|
|
124
|
+
export declare function callbackFingerprint(context: Pick<AgentEventContext, "sessionId" | "turnId">, category: CallbackCategory, method: string, callbackId: string, params: unknown): string;
|
|
125
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-contract/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { createOpenMAEvent as createLegacyOpenMAEvent, immutableJson, } from "../session-events/openma.js";
|
|
2
|
+
export * from "../session-events/openma.js";
|
|
3
|
+
/** Agent Contract facts cross a strict, immutable JSON boundary. Legacy
|
|
4
|
+
* session-events callers retain their existing event constructor behavior. */
|
|
5
|
+
export function createOpenMAEvent(input) {
|
|
6
|
+
return immutableJson(createLegacyOpenMAEvent(input));
|
|
7
|
+
}
|
|
8
|
+
export function createAgentSessionHandle(input) {
|
|
9
|
+
if (!input.connectorId.trim())
|
|
10
|
+
throw new Error("connectorId must not be empty");
|
|
11
|
+
if (!input.externalSessionId.trim()) {
|
|
12
|
+
throw new Error("externalSessionId must not be empty");
|
|
13
|
+
}
|
|
14
|
+
return immutableJson(input);
|
|
15
|
+
}
|
|
16
|
+
export function agentEventEnvelope(context, defaultSource) {
|
|
17
|
+
if (!context.eventId.trim())
|
|
18
|
+
throw new Error("eventId must not be empty");
|
|
19
|
+
if (!context.sessionId.trim())
|
|
20
|
+
throw new Error("sessionId must not be empty");
|
|
21
|
+
if (!context.turnId.trim())
|
|
22
|
+
throw new Error("turnId must not be empty");
|
|
23
|
+
if (!context.occurredAt.trim())
|
|
24
|
+
throw new Error("occurredAt must not be empty");
|
|
25
|
+
if (!Number.isSafeInteger(context.seq) || context.seq < 0) {
|
|
26
|
+
throw new Error("seq must be a non-negative safe integer");
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
event_id: context.eventId,
|
|
30
|
+
session_id: context.sessionId,
|
|
31
|
+
source: context.source ?? defaultSource,
|
|
32
|
+
occurred_at: context.occurredAt,
|
|
33
|
+
...(context.sessionThreadId ? { session_thread_id: context.sessionThreadId } : {}),
|
|
34
|
+
turn_id: context.turnId,
|
|
35
|
+
...(context.workItemId ? { work_item_id: context.workItemId } : {}),
|
|
36
|
+
...(context.parentEventId ? { parent_event_id: context.parentEventId } : {}),
|
|
37
|
+
...(context.parentId ? { parent_id: context.parentId } : {}),
|
|
38
|
+
seq: context.seq,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const TURN_TERMINAL_TYPES = {
|
|
42
|
+
"turn.completed": "completed",
|
|
43
|
+
"turn.failed": "failed",
|
|
44
|
+
"turn.cancelled": "cancelled",
|
|
45
|
+
"turn.interrupted": "interrupted",
|
|
46
|
+
};
|
|
47
|
+
export function turnTerminalStatus(event) {
|
|
48
|
+
const status = TURN_TERMINAL_TYPES[event.type];
|
|
49
|
+
if (status === undefined
|
|
50
|
+
|| typeof event.turn_id !== "string"
|
|
51
|
+
|| event.turn_id.length === 0
|
|
52
|
+
|| !Number.isSafeInteger(event.seq)
|
|
53
|
+
|| (event.seq ?? -1) < 0)
|
|
54
|
+
return undefined;
|
|
55
|
+
return status;
|
|
56
|
+
}
|
|
57
|
+
export function isTurnTerminalEvent(event) {
|
|
58
|
+
return turnTerminalStatus(event) !== undefined;
|
|
59
|
+
}
|
|
60
|
+
export function isCallbackRequestEvent(event, category) {
|
|
61
|
+
if (event.type !== "callback.requested")
|
|
62
|
+
return false;
|
|
63
|
+
if (!event.data || typeof event.data !== "object")
|
|
64
|
+
return false;
|
|
65
|
+
const data = event.data;
|
|
66
|
+
if (typeof data.callback_id !== "string"
|
|
67
|
+
|| data.callback_id.length === 0
|
|
68
|
+
|| typeof data.fingerprint !== "string"
|
|
69
|
+
|| data.fingerprint.length === 0
|
|
70
|
+
|| typeof data.method !== "string"
|
|
71
|
+
|| data.method.length === 0)
|
|
72
|
+
return false;
|
|
73
|
+
return category === undefined
|
|
74
|
+
|| data.category === category;
|
|
75
|
+
}
|
|
76
|
+
export function isPermissionRequestEvent(event) {
|
|
77
|
+
return isCallbackRequestEvent(event, "permission");
|
|
78
|
+
}
|
|
79
|
+
export function isElicitationRequestEvent(event) {
|
|
80
|
+
return isCallbackRequestEvent(event, "elicitation");
|
|
81
|
+
}
|
|
82
|
+
export function callbackFingerprint(context, category, method, callbackId, params) {
|
|
83
|
+
const segments = [
|
|
84
|
+
context.sessionId,
|
|
85
|
+
context.turnId,
|
|
86
|
+
category,
|
|
87
|
+
method,
|
|
88
|
+
callbackId,
|
|
89
|
+
].map(encodeURIComponent);
|
|
90
|
+
const normalizedParams = immutableJson(params ?? null);
|
|
91
|
+
return `oma.callback.v1/${segments.join("/")}/${encodeURIComponent(canonicalJsonStringify(normalizedParams))}`;
|
|
92
|
+
}
|
|
93
|
+
function canonicalJsonStringify(value) {
|
|
94
|
+
if (value === null || typeof value !== "object")
|
|
95
|
+
return JSON.stringify(value);
|
|
96
|
+
if (Array.isArray(value)) {
|
|
97
|
+
return `[${value.map(canonicalJsonStringify).join(",")}]`;
|
|
98
|
+
}
|
|
99
|
+
const object = value;
|
|
100
|
+
return `{${Object.keys(object).sort().map((key) => `${JSON.stringify(key)}:${canonicalJsonStringify(object[key])}`).join(",")}}`;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-contract/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type WireSessionEvent } from "../session-events/managed.js";
|
|
2
|
+
import { type OpenMAEvent } from "../session-events/openma.js";
|
|
3
|
+
import { type AgentEventContext } from "./index.js";
|
|
4
|
+
export declare function managedEventToOpenMA(event: WireSessionEvent, context: AgentEventContext): OpenMAEvent;
|
|
5
|
+
//# sourceMappingURL=managed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../../src/agent-contract/managed.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAgCpB,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,iBAAiB,GACzB,WAAW,CAiPb"}
|