@geminilight/mindos 1.1.52 → 1.1.54
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/README.md +1 -0
- package/README_zh.md +1 -0
- package/dist/agent/bridges/runtime-permission-bridge.d.ts +9 -6
- package/dist/agent/bridges/runtime-permission-bridge.d.ts.map +1 -1
- package/dist/agent/bridges/runtime-permission-bridge.js +48 -37
- package/dist/agent/bridges/runtime-permission-bridge.js.map +1 -1
- package/dist/agent/ledger/run-timeline-events.d.ts +1 -1
- package/dist/agent/ledger/run-timeline-events.d.ts.map +1 -1
- package/dist/agent/ledger/run-timeline-events.js +3 -0
- package/dist/agent/ledger/run-timeline-events.js.map +1 -1
- package/dist/agent/mindos-pi/permission/policy.d.ts +2 -1
- package/dist/agent/mindos-pi/permission/policy.d.ts.map +1 -1
- package/dist/agent/mindos-pi/permission/policy.js +3 -3
- package/dist/agent/mindos-pi/permission/policy.js.map +1 -1
- package/dist/agent/runtime/adapter-contracts.d.ts.map +1 -1
- package/dist/agent/runtime/adapter-contracts.js +38 -0
- package/dist/agent/runtime/adapter-contracts.js.map +1 -1
- package/dist/agent/runtime/adapter-output.d.ts +6 -0
- package/dist/agent/runtime/adapter-output.d.ts.map +1 -0
- package/dist/agent/runtime/adapter-output.js +48 -0
- package/dist/agent/runtime/adapter-output.js.map +1 -0
- package/dist/agent/runtime/capabilities.d.ts +2 -1
- package/dist/agent/runtime/capabilities.d.ts.map +1 -1
- package/dist/agent/runtime/capabilities.js +7 -0
- package/dist/agent/runtime/capabilities.js.map +1 -1
- package/dist/agent/runtime/descriptors.d.ts.map +1 -1
- package/dist/agent/runtime/descriptors.js +4 -3
- package/dist/agent/runtime/descriptors.js.map +1 -1
- package/dist/agent/runtime/detection.d.ts.map +1 -1
- package/dist/agent/runtime/detection.js +57 -0
- package/dist/agent/runtime/detection.js.map +1 -1
- package/dist/agent/runtime/registry.d.ts +14 -1
- package/dist/agent/runtime/registry.d.ts.map +1 -1
- package/dist/agent/runtime/registry.js.map +1 -1
- package/dist/agent/runtime/run.d.ts +1 -1
- package/dist/agent/runtime/run.d.ts.map +1 -1
- package/dist/agent/turn/index.d.ts +29 -7
- package/dist/agent/turn/index.d.ts.map +1 -1
- package/dist/agent/turn/index.js +86 -2
- package/dist/agent/turn/index.js.map +1 -1
- package/dist/knowledge/audit/index.d.ts +4 -0
- package/dist/knowledge/audit/index.d.ts.map +1 -1
- package/dist/knowledge/audit/index.js +38 -1
- package/dist/knowledge/audit/index.js.map +1 -1
- package/dist/protocols/acp/agent-descriptors.d.ts +2 -1
- package/dist/protocols/acp/agent-descriptors.d.ts.map +1 -1
- package/dist/protocols/acp/agent-descriptors.js +89 -11
- package/dist/protocols/acp/agent-descriptors.js.map +1 -1
- package/dist/protocols/acp/detect-local.d.ts.map +1 -1
- package/dist/protocols/acp/detect-local.js +6 -4
- package/dist/protocols/acp/detect-local.js.map +1 -1
- package/dist/protocols/acp/handshake-health.d.ts +63 -0
- package/dist/protocols/acp/handshake-health.d.ts.map +1 -0
- package/dist/protocols/acp/handshake-health.js +113 -0
- package/dist/protocols/acp/handshake-health.js.map +1 -0
- package/dist/protocols/acp/index.d.ts +4 -2
- package/dist/protocols/acp/index.d.ts.map +1 -1
- package/dist/protocols/acp/index.js +28 -28
- package/dist/protocols/acp/index.js.map +1 -1
- package/dist/protocols/acp/mcp-session-inheritance.d.ts +1 -0
- package/dist/protocols/acp/mcp-session-inheritance.d.ts.map +1 -1
- package/dist/protocols/acp/mcp-session-inheritance.js +14 -3
- package/dist/protocols/acp/mcp-session-inheritance.js.map +1 -1
- package/dist/protocols/acp/session.d.ts +10 -1
- package/dist/protocols/acp/session.d.ts.map +1 -1
- package/dist/protocols/acp/session.js +253 -54
- package/dist/protocols/acp/session.js.map +1 -1
- package/dist/protocols/acp/subprocess.d.ts +9 -2
- package/dist/protocols/acp/subprocess.d.ts.map +1 -1
- package/dist/protocols/acp/subprocess.js +149 -31
- package/dist/protocols/acp/subprocess.js.map +1 -1
- package/dist/protocols/acp/types.d.ts +30 -1
- package/dist/protocols/acp/types.d.ts.map +1 -1
- package/dist/protocols/acp/types.js +3 -0
- package/dist/protocols/acp/types.js.map +1 -1
- package/dist/server/contract.d.ts.map +1 -1
- package/dist/server/contract.js +5 -0
- package/dist/server/contract.js.map +1 -1
- package/dist/server/handlers/acp.d.ts +3 -0
- package/dist/server/handlers/acp.d.ts.map +1 -1
- package/dist/server/handlers/acp.js +14 -4
- package/dist/server/handlers/acp.js.map +1 -1
- package/dist/server/handlers/agent-turn.js +18 -3
- package/dist/server/handlers/agent-turn.js.map +1 -1
- package/dist/server/handlers/change-log-store.d.ts +13 -0
- package/dist/server/handlers/change-log-store.d.ts.map +1 -1
- package/dist/server/handlers/change-log-store.js +62 -1
- package/dist/server/handlers/change-log-store.js.map +1 -1
- package/dist/server/handlers/changes.d.ts +2 -1
- package/dist/server/handlers/changes.d.ts.map +1 -1
- package/dist/server/handlers/changes.js +11 -1
- package/dist/server/handlers/changes.js.map +1 -1
- package/dist/server/handlers/file.d.ts +11 -0
- package/dist/server/handlers/file.d.ts.map +1 -1
- package/dist/server/handlers/file.js +59 -0
- package/dist/server/handlers/file.js.map +1 -1
- package/dist/server/handlers/runtime-adapter-projections.d.ts +33 -2
- package/dist/server/handlers/runtime-adapter-projections.d.ts.map +1 -1
- package/dist/server/handlers/runtime-adapter-projections.js +117 -15
- package/dist/server/handlers/runtime-adapter-projections.js.map +1 -1
- package/dist/server/handlers/runtime-artifact-projections.d.ts +7 -0
- package/dist/server/handlers/runtime-artifact-projections.d.ts.map +1 -1
- package/dist/server/handlers/runtime-artifact-projections.js +7 -0
- package/dist/server/handlers/runtime-artifact-projections.js.map +1 -1
- package/dist/server/handlers/runtime-control-plane.d.ts +168 -0
- package/dist/server/handlers/runtime-control-plane.d.ts.map +1 -0
- package/dist/server/handlers/runtime-control-plane.js +520 -0
- package/dist/server/handlers/runtime-control-plane.js.map +1 -0
- package/dist/server/handlers/runtime-extensions.d.ts +92 -0
- package/dist/server/handlers/runtime-extensions.d.ts.map +1 -0
- package/dist/server/handlers/runtime-extensions.js +405 -0
- package/dist/server/handlers/runtime-extensions.js.map +1 -0
- package/dist/server/handlers/runtime-readiness.d.ts +9 -1
- package/dist/server/handlers/runtime-readiness.d.ts.map +1 -1
- package/dist/server/handlers/runtime-readiness.js +11 -1
- package/dist/server/handlers/runtime-readiness.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +41 -3
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +3 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/route-ownership.d.ts.map +1 -1
- package/dist/server/route-ownership.js +7 -0
- package/dist/server/route-ownership.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/acp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,MAAM,EACN,YAAY,EACZ,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/acp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,MAAM,EACN,YAAY,EACZ,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-session-inheritance.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/mcp-session-inheritance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,MAAM,EAAE,GACR;IACA,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,GAAG,4BAA4B,CA2B/B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,GAAG,SAAS,EAAE,CAEd"}
|
|
1
|
+
{"version":3,"file":"mcp-session-inheritance.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/mcp-session-inheritance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,MAAM,EAAE,GACR;IACA,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,GAAG,4BAA4B,CA2B/B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,GAAG,SAAS,EAAE,CAEd"}
|
|
@@ -80,15 +80,22 @@ function normalizeToolNames(value) {
|
|
|
80
80
|
return tools.length > 0 ? tools : null;
|
|
81
81
|
}
|
|
82
82
|
function toAcpMcpServer(name, entry, capabilities) {
|
|
83
|
+
const transport = normalizeTransport(entry.type) ?? normalizeTransport(entry.transport);
|
|
84
|
+
if (transport === 'acp') {
|
|
85
|
+
const id = typeof entry.id === 'string' ? entry.id.trim() : '';
|
|
86
|
+
if (capabilities?.acp !== true || !id)
|
|
87
|
+
return null;
|
|
88
|
+
return { type: 'acp', name, id };
|
|
89
|
+
}
|
|
83
90
|
const url = typeof entry.url === 'string' ? entry.url.trim() : '';
|
|
84
91
|
if (url) {
|
|
85
|
-
const
|
|
86
|
-
if (
|
|
92
|
+
const urlTransport = transport ?? 'http';
|
|
93
|
+
if (urlTransport === 'sse') {
|
|
87
94
|
if (capabilities?.sse !== true)
|
|
88
95
|
return null;
|
|
89
96
|
return { type: 'sse', name, url, headers: normalizeHeaders(entry.headers) };
|
|
90
97
|
}
|
|
91
|
-
if (
|
|
98
|
+
if (urlTransport === 'http') {
|
|
92
99
|
if (capabilities?.http !== true)
|
|
93
100
|
return null;
|
|
94
101
|
return { type: 'http', name, url, headers: normalizeHeaders(entry.headers) };
|
|
@@ -115,6 +122,8 @@ function normalizeTransport(value) {
|
|
|
115
122
|
return 'sse';
|
|
116
123
|
if (normalized === 'stdio')
|
|
117
124
|
return 'stdio';
|
|
125
|
+
if (normalized === 'acp')
|
|
126
|
+
return 'acp';
|
|
118
127
|
return null;
|
|
119
128
|
}
|
|
120
129
|
function normalizeHeaders(value) {
|
|
@@ -149,6 +158,8 @@ function mcpServerType(server) {
|
|
|
149
158
|
return 'http';
|
|
150
159
|
if ('type' in server && server.type === 'sse')
|
|
151
160
|
return 'sse';
|
|
161
|
+
if ('type' in server && server.type === 'acp')
|
|
162
|
+
return 'acp';
|
|
152
163
|
return 'stdio';
|
|
153
164
|
}
|
|
154
165
|
function readRecord(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-session-inheritance.js","sourceRoot":"","sources":["../../../src/protocols/acp/mcp-session-inheritance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-session-inheritance.js","sourceRoot":"","sources":["../../../src/protocols/acp/mcp-session-inheritance.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,13 @@ export declare function listSessions(sessionId: string, options?: {
|
|
|
35
35
|
sessions: AcpSessionInfo[];
|
|
36
36
|
nextCursor?: string;
|
|
37
37
|
}>;
|
|
38
|
+
export declare function listSessionsForAgent(agentId: string, options?: AcpSessionOptions & {
|
|
39
|
+
cursor?: string;
|
|
40
|
+
cwd?: string;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
sessions: AcpSessionInfo[];
|
|
43
|
+
nextCursor?: string;
|
|
44
|
+
}>;
|
|
38
45
|
/**
|
|
39
46
|
* Send a prompt and collect the full response.
|
|
40
47
|
* Text arrives via session/update notifications (handled by SDK → Client.sessionUpdate).
|
|
@@ -47,7 +54,9 @@ export declare function promptStream(sessionId: string, text: string, onUpdate:
|
|
|
47
54
|
export declare function cancelPrompt(sessionId: string): Promise<void>;
|
|
48
55
|
export declare function setMode(sessionId: string, modeId: string): Promise<void>;
|
|
49
56
|
export declare function setConfigOption(sessionId: string, configId: string, value: string): Promise<AcpConfigOption[]>;
|
|
50
|
-
export declare function closeSession(sessionId: string
|
|
57
|
+
export declare function closeSession(sessionId: string, options?: {
|
|
58
|
+
closeAgentSession?: boolean;
|
|
59
|
+
}): Promise<void>;
|
|
51
60
|
export declare function getSession(sessionId: string): AcpSession | undefined;
|
|
52
61
|
export declare function getActiveSessions(): AcpSession[];
|
|
53
62
|
export declare function getSessionSnapshot(sessionId: string): AcpSessionSnapshot | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAGhB,eAAe,EACf,cAAc,EAMd,kBAAkB,EAGnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAGhB,eAAe,EACf,cAAc,EAMd,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,KAAK,gBAAgB,EAGtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAKtC,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAiKD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAuErB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,CA4FrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB9D;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,OAAO,CAAC;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoD9D;AASD;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAkD5B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAC3C,OAAO,CAAC,iBAAiB,CAAC,CAyD5B;AAID,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9E;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB5B;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkBf;AAID,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEpE;AAED,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAGhD;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGpF;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,EAAE,CAGhE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGtD;AAsBD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAgC/E"}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
* Uses @agentclientprotocol/sdk for all protocol handling.
|
|
4
4
|
* Implements: initialize → session/new → session/prompt → session/cancel → close.
|
|
5
5
|
*/
|
|
6
|
+
import { isAcpCapabilitySupported } from './types.js';
|
|
6
7
|
import { spawnAndConnect, killAgent, } from './subprocess.js';
|
|
7
8
|
import { findAcpAgent } from './registry.js';
|
|
8
9
|
import { resolveConfiguredAcpAgentEntry } from './agent-descriptors.js';
|
|
9
10
|
import { buildAcpSessionMcpInheritancePlan, } from './mcp-session-inheritance.js';
|
|
11
|
+
import { rememberAcpHandshakeHealth } from './handshake-health.js';
|
|
10
12
|
import { recordArtifactsFromAcpToolCall } from '../../agent/ledger/artifact-ledger.js';
|
|
11
13
|
import { redactSensitiveText } from '../../agent/redaction.js';
|
|
12
14
|
function withTimeout(promise, timeoutMs, message) {
|
|
@@ -21,6 +23,9 @@ function withTimeout(promise, timeoutMs, message) {
|
|
|
21
23
|
});
|
|
22
24
|
});
|
|
23
25
|
}
|
|
26
|
+
function isRecord(value) {
|
|
27
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
28
|
+
}
|
|
24
29
|
/* ── Error diagnosis ───────────────────────────────────────────────────── */
|
|
25
30
|
function diagnoseInitFailure(proc, rawError) {
|
|
26
31
|
const raw = rawError.message ?? '';
|
|
@@ -66,7 +71,9 @@ function resolveSessionMcpInheritance(options, agentCapabilities) {
|
|
|
66
71
|
? 'http'
|
|
67
72
|
: 'type' in server && server.type === 'sse'
|
|
68
73
|
? 'sse'
|
|
69
|
-
: '
|
|
74
|
+
: 'type' in server && server.type === 'acp'
|
|
75
|
+
? 'acp'
|
|
76
|
+
: 'stdio',
|
|
70
77
|
})),
|
|
71
78
|
};
|
|
72
79
|
}
|
|
@@ -87,28 +94,10 @@ const sessions = new Map();
|
|
|
87
94
|
const sessionConnections = new Map();
|
|
88
95
|
const MAX_SESSIONS_PER_AGENT = 3;
|
|
89
96
|
const MAX_TOTAL_SESSIONS = 10;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Create a new ACP session by spawning an agent process.
|
|
93
|
-
*/
|
|
94
|
-
export async function createSession(agentId, options) {
|
|
95
|
-
const entry = resolveConfiguredAcpAgentEntry(agentId, options?.overrides)
|
|
96
|
-
?? await findAcpAgent(agentId);
|
|
97
|
-
if (!entry) {
|
|
98
|
-
throw new Error(`ACP agent not found in registry: ${agentId}`);
|
|
99
|
-
}
|
|
100
|
-
return createSessionFromEntry(entry, options);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Create a session from a known registry entry (skips registry lookup).
|
|
104
|
-
*/
|
|
105
|
-
export async function createSessionFromEntry(entry, options) {
|
|
106
|
-
checkSessionLimits(entry.id);
|
|
107
|
-
const sessionCwd = options?.cwd ?? process.cwd();
|
|
97
|
+
async function initializeAcpConnection(entry, options, startedAt) {
|
|
108
98
|
const conn = spawnAndConnect(entry, options);
|
|
109
99
|
let agentCapabilities;
|
|
110
100
|
let authMethods;
|
|
111
|
-
// Phase 1: Initialize
|
|
112
101
|
try {
|
|
113
102
|
const initResult = await conn.connection.initialize({
|
|
114
103
|
protocolVersion: 1,
|
|
@@ -119,22 +108,50 @@ export async function createSessionFromEntry(entry, options) {
|
|
|
119
108
|
authMethods = parseAuthMethods(initResult.authMethods);
|
|
120
109
|
}
|
|
121
110
|
catch (err) {
|
|
122
|
-
// Wait briefly for stderr/exit info before diagnosing
|
|
111
|
+
// Wait briefly for stderr/exit info before diagnosing.
|
|
123
112
|
await new Promise(r => setTimeout(r, 200));
|
|
124
113
|
const message = diagnoseInitFailure(conn.process, err);
|
|
114
|
+
rememberAcpHandshakeHealth({
|
|
115
|
+
agentId: entry.id,
|
|
116
|
+
status: 'failed',
|
|
117
|
+
stage: 'initialize',
|
|
118
|
+
startedAt,
|
|
119
|
+
message,
|
|
120
|
+
});
|
|
125
121
|
killAgent(conn.process);
|
|
126
122
|
throw new Error(message);
|
|
127
123
|
}
|
|
128
|
-
// Phase 2: Authenticate (if agent declares auth methods)
|
|
129
124
|
const firstAuthMethod = authMethods?.[0];
|
|
130
125
|
if (firstAuthMethod) {
|
|
131
126
|
try {
|
|
132
127
|
await conn.connection.authenticate({ methodId: firstAuthMethod.id });
|
|
133
128
|
}
|
|
134
129
|
catch {
|
|
135
|
-
// Best-effort auth
|
|
130
|
+
// Best-effort auth.
|
|
136
131
|
}
|
|
137
132
|
}
|
|
133
|
+
return { conn, agentCapabilities, authMethods };
|
|
134
|
+
}
|
|
135
|
+
/* ── Public API — Session Lifecycle ───────────────────────────────────── */
|
|
136
|
+
/**
|
|
137
|
+
* Create a new ACP session by spawning an agent process.
|
|
138
|
+
*/
|
|
139
|
+
export async function createSession(agentId, options) {
|
|
140
|
+
const entry = resolveConfiguredAcpAgentEntry(agentId, options?.overrides)
|
|
141
|
+
?? await findAcpAgent(agentId);
|
|
142
|
+
if (!entry) {
|
|
143
|
+
throw new Error(`ACP agent not found in registry: ${agentId}`);
|
|
144
|
+
}
|
|
145
|
+
return createSessionFromEntry(entry, options);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a session from a known registry entry (skips registry lookup).
|
|
149
|
+
*/
|
|
150
|
+
export async function createSessionFromEntry(entry, options) {
|
|
151
|
+
checkSessionLimits(entry.id);
|
|
152
|
+
const startedAt = Date.now();
|
|
153
|
+
const sessionCwd = options?.cwd ?? process.cwd();
|
|
154
|
+
const { conn, agentCapabilities, authMethods } = await initializeAcpConnection(entry, options, startedAt);
|
|
138
155
|
// Phase 3: session/new
|
|
139
156
|
let modes;
|
|
140
157
|
let configOptions;
|
|
@@ -156,6 +173,14 @@ export async function createSessionFromEntry(entry, options) {
|
|
|
156
173
|
}
|
|
157
174
|
catch (sessionErr) {
|
|
158
175
|
const msg = sessionErr.message ?? '';
|
|
176
|
+
rememberAcpHandshakeHealth({
|
|
177
|
+
agentId: entry.id,
|
|
178
|
+
status: 'failed',
|
|
179
|
+
stage: 'session-new',
|
|
180
|
+
startedAt,
|
|
181
|
+
message: msg,
|
|
182
|
+
capabilities: agentCapabilities,
|
|
183
|
+
});
|
|
159
184
|
killAgent(conn.process);
|
|
160
185
|
throw new Error(`${entry.id}: session/new failed: ${msg}`);
|
|
161
186
|
}
|
|
@@ -178,35 +203,37 @@ export async function createSessionFromEntry(entry, options) {
|
|
|
178
203
|
};
|
|
179
204
|
sessions.set(sessionId, session);
|
|
180
205
|
sessionConnections.set(sessionId, conn);
|
|
206
|
+
rememberAcpHandshakeHealth({
|
|
207
|
+
agentId: entry.id,
|
|
208
|
+
status: 'ready',
|
|
209
|
+
stage: 'session-new',
|
|
210
|
+
startedAt,
|
|
211
|
+
capabilities: agentCapabilities,
|
|
212
|
+
session,
|
|
213
|
+
});
|
|
181
214
|
return session;
|
|
182
215
|
}
|
|
183
216
|
/**
|
|
184
217
|
* Load/resume an existing session on an agent.
|
|
185
218
|
*/
|
|
186
219
|
export async function loadSession(agentId, existingSessionId, options) {
|
|
220
|
+
const startedAt = Date.now();
|
|
187
221
|
const entry = resolveConfiguredAcpAgentEntry(agentId, options?.overrides)
|
|
188
222
|
?? await findAcpAgent(agentId);
|
|
189
223
|
if (!entry) {
|
|
190
224
|
throw new Error(`ACP agent not found in registry: ${agentId}`);
|
|
191
225
|
}
|
|
192
226
|
const loadCwd = options?.cwd ?? process.cwd();
|
|
193
|
-
const conn =
|
|
194
|
-
let agentCapabilities;
|
|
195
|
-
try {
|
|
196
|
-
const initResult = await conn.connection.initialize({
|
|
197
|
-
protocolVersion: 1,
|
|
198
|
-
clientCapabilities: clientCapabilitiesForPermissionMode(options?.permissionMode),
|
|
199
|
-
clientInfo: { name: 'mindos', version: getMindosVersion(options) },
|
|
200
|
-
});
|
|
201
|
-
agentCapabilities = parseAgentCapabilities(initResult.agentCapabilities);
|
|
202
|
-
}
|
|
203
|
-
catch (err) {
|
|
204
|
-
await new Promise(r => setTimeout(r, 200));
|
|
205
|
-
const message = diagnoseInitFailure(conn.process, err);
|
|
206
|
-
killAgent(conn.process);
|
|
207
|
-
throw new Error(message);
|
|
208
|
-
}
|
|
227
|
+
const { conn, agentCapabilities } = await initializeAcpConnection(entry, options, startedAt);
|
|
209
228
|
if (!agentCapabilities?.loadSession) {
|
|
229
|
+
rememberAcpHandshakeHealth({
|
|
230
|
+
agentId: entry.id,
|
|
231
|
+
status: 'failed',
|
|
232
|
+
stage: 'session-load',
|
|
233
|
+
startedAt,
|
|
234
|
+
message: `Agent ${agentId} does not support session/load`,
|
|
235
|
+
capabilities: agentCapabilities,
|
|
236
|
+
});
|
|
210
237
|
killAgent(conn.process);
|
|
211
238
|
throw new Error(`Agent ${agentId} does not support session/load`);
|
|
212
239
|
}
|
|
@@ -214,6 +241,7 @@ export async function loadSession(agentId, existingSessionId, options) {
|
|
|
214
241
|
let configOptions;
|
|
215
242
|
let currentModeId;
|
|
216
243
|
const mcpInheritance = resolveSessionMcpInheritance(options, agentCapabilities);
|
|
244
|
+
let loadedInfo = { sessionId: existingSessionId };
|
|
217
245
|
try {
|
|
218
246
|
const loadResult = await conn.connection.loadSession({
|
|
219
247
|
sessionId: existingSessionId,
|
|
@@ -224,8 +252,17 @@ export async function loadSession(agentId, existingSessionId, options) {
|
|
|
224
252
|
currentModeId = parseCurrentModeId(loadResult.modes);
|
|
225
253
|
configOptions = parseConfigOptions(loadResult.configOptions);
|
|
226
254
|
currentModeId ??= currentModeFromConfig(configOptions);
|
|
255
|
+
loadedInfo = normalizeAcpSessionInfo(loadResult, existingSessionId);
|
|
227
256
|
}
|
|
228
257
|
catch (err) {
|
|
258
|
+
rememberAcpHandshakeHealth({
|
|
259
|
+
agentId: entry.id,
|
|
260
|
+
status: 'failed',
|
|
261
|
+
stage: 'session-load',
|
|
262
|
+
startedAt,
|
|
263
|
+
message: err.message,
|
|
264
|
+
capabilities: agentCapabilities,
|
|
265
|
+
});
|
|
229
266
|
killAgent(conn.process);
|
|
230
267
|
throw new Error(`session/load failed: ${err.message}`);
|
|
231
268
|
}
|
|
@@ -242,9 +279,29 @@ export async function loadSession(agentId, existingSessionId, options) {
|
|
|
242
279
|
configOptions,
|
|
243
280
|
currentModeId,
|
|
244
281
|
mcpServers: mcpInheritance.summaries,
|
|
282
|
+
...(loadedInfo.title ? { title: loadedInfo.title } : {}),
|
|
283
|
+
...(loadedInfo.preview ? { preview: loadedInfo.preview } : {}),
|
|
284
|
+
...(loadedInfo.messageCount !== undefined ? { messageCount: loadedInfo.messageCount } : {}),
|
|
285
|
+
...(loadedInfo.turnCount !== undefined ? { turnCount: loadedInfo.turnCount } : {}),
|
|
286
|
+
...(loadedInfo.messages ? { messages: loadedInfo.messages } : {}),
|
|
287
|
+
...(loadedInfo.turns ? { turns: loadedInfo.turns } : {}),
|
|
288
|
+
...(loadedInfo.title || loadedInfo.updatedAt ? {
|
|
289
|
+
sessionInfo: {
|
|
290
|
+
...(loadedInfo.title ? { title: loadedInfo.title } : {}),
|
|
291
|
+
...(loadedInfo.updatedAt ? { updatedAt: loadedInfo.updatedAt } : {}),
|
|
292
|
+
},
|
|
293
|
+
} : {}),
|
|
245
294
|
};
|
|
246
295
|
sessions.set(existingSessionId, session);
|
|
247
296
|
sessionConnections.set(existingSessionId, conn);
|
|
297
|
+
rememberAcpHandshakeHealth({
|
|
298
|
+
agentId: entry.id,
|
|
299
|
+
status: 'ready',
|
|
300
|
+
stage: 'session-load',
|
|
301
|
+
startedAt,
|
|
302
|
+
capabilities: agentCapabilities,
|
|
303
|
+
session,
|
|
304
|
+
});
|
|
248
305
|
return session;
|
|
249
306
|
}
|
|
250
307
|
/**
|
|
@@ -252,7 +309,7 @@ export async function loadSession(agentId, existingSessionId, options) {
|
|
|
252
309
|
*/
|
|
253
310
|
export async function listSessions(sessionId, options) {
|
|
254
311
|
const { session, conn } = getSessionAndConn(sessionId);
|
|
255
|
-
if (!session.agentCapabilities?.sessionCapabilities?.list) {
|
|
312
|
+
if (!isAcpCapabilitySupported(session.agentCapabilities?.sessionCapabilities?.list)) {
|
|
256
313
|
throw new Error('Agent does not support session/list');
|
|
257
314
|
}
|
|
258
315
|
const result = await conn.connection.listSessions({
|
|
@@ -260,15 +317,62 @@ export async function listSessions(sessionId, options) {
|
|
|
260
317
|
...(options?.cwd ? { cwd: options.cwd } : {}),
|
|
261
318
|
});
|
|
262
319
|
return {
|
|
263
|
-
sessions: (result.sessions ?? []).map(s => (
|
|
264
|
-
sessionId: s.sessionId ?? '',
|
|
265
|
-
title: s.title ?? undefined,
|
|
266
|
-
cwd: s.cwd ?? undefined,
|
|
267
|
-
updatedAt: s.updatedAt ?? undefined,
|
|
268
|
-
})),
|
|
320
|
+
sessions: (result.sessions ?? []).map(s => normalizeAcpSessionInfo(s)),
|
|
269
321
|
nextCursor: result.nextCursor ?? undefined,
|
|
270
322
|
};
|
|
271
323
|
}
|
|
324
|
+
export async function listSessionsForAgent(agentId, options) {
|
|
325
|
+
const startedAt = Date.now();
|
|
326
|
+
const entry = resolveConfiguredAcpAgentEntry(agentId, options?.overrides)
|
|
327
|
+
?? await findAcpAgent(agentId);
|
|
328
|
+
if (!entry) {
|
|
329
|
+
throw new Error(`ACP agent not found in registry: ${agentId}`);
|
|
330
|
+
}
|
|
331
|
+
const { conn, agentCapabilities } = await initializeAcpConnection(entry, options, startedAt);
|
|
332
|
+
if (!isAcpCapabilitySupported(agentCapabilities?.sessionCapabilities?.list)) {
|
|
333
|
+
rememberAcpHandshakeHealth({
|
|
334
|
+
agentId: entry.id,
|
|
335
|
+
status: 'failed',
|
|
336
|
+
stage: 'session-list',
|
|
337
|
+
startedAt,
|
|
338
|
+
message: 'Agent does not support session/list',
|
|
339
|
+
capabilities: agentCapabilities,
|
|
340
|
+
});
|
|
341
|
+
killAgent(conn.process);
|
|
342
|
+
throw new Error('Agent does not support session/list');
|
|
343
|
+
}
|
|
344
|
+
try {
|
|
345
|
+
const result = await conn.connection.listSessions({
|
|
346
|
+
...(options?.cursor ? { cursor: options.cursor } : {}),
|
|
347
|
+
...(options?.cwd ? { cwd: options.cwd } : {}),
|
|
348
|
+
});
|
|
349
|
+
rememberAcpHandshakeHealth({
|
|
350
|
+
agentId: entry.id,
|
|
351
|
+
status: 'ready',
|
|
352
|
+
stage: 'session-list',
|
|
353
|
+
startedAt,
|
|
354
|
+
capabilities: agentCapabilities,
|
|
355
|
+
});
|
|
356
|
+
return {
|
|
357
|
+
sessions: (result.sessions ?? []).map(s => normalizeAcpSessionInfo(s)),
|
|
358
|
+
nextCursor: result.nextCursor ?? undefined,
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
catch (err) {
|
|
362
|
+
rememberAcpHandshakeHealth({
|
|
363
|
+
agentId: entry.id,
|
|
364
|
+
status: 'failed',
|
|
365
|
+
stage: 'session-list',
|
|
366
|
+
startedAt,
|
|
367
|
+
message: err.message,
|
|
368
|
+
capabilities: agentCapabilities,
|
|
369
|
+
});
|
|
370
|
+
throw new Error(`session/list failed: ${err.message}`);
|
|
371
|
+
}
|
|
372
|
+
finally {
|
|
373
|
+
killAgent(conn.process);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
272
376
|
/* ── Public API — Prompt ──────────────────────────────────────────────── */
|
|
273
377
|
const PROMPT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
274
378
|
const TOOL_RAW_TEXT_LIMIT = 4000;
|
|
@@ -412,16 +516,18 @@ export async function setConfigOption(sessionId, configId, value) {
|
|
|
412
516
|
session.lastActivityAt = new Date().toISOString();
|
|
413
517
|
return session.configOptions ?? [];
|
|
414
518
|
}
|
|
415
|
-
export async function closeSession(sessionId) {
|
|
519
|
+
export async function closeSession(sessionId, options = {}) {
|
|
416
520
|
const session = sessions.get(sessionId);
|
|
417
521
|
const conn = sessionConnections.get(sessionId);
|
|
418
522
|
if (conn?.process.alive) {
|
|
419
523
|
const wireSessionId = session?.agentSessionId ?? sessionId;
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
524
|
+
if (options.closeAgentSession !== false) {
|
|
525
|
+
try {
|
|
526
|
+
await closeAgentSession(conn.connection, wireSessionId);
|
|
527
|
+
}
|
|
528
|
+
catch {
|
|
529
|
+
// Best-effort — many agents don't support session/close
|
|
530
|
+
}
|
|
425
531
|
}
|
|
426
532
|
killAgent(conn.process);
|
|
427
533
|
}
|
|
@@ -712,6 +818,58 @@ function readNestedString(value, key) {
|
|
|
712
818
|
? value[key]
|
|
713
819
|
: undefined;
|
|
714
820
|
}
|
|
821
|
+
function stringField(record, keys) {
|
|
822
|
+
for (const key of keys) {
|
|
823
|
+
const value = record[key];
|
|
824
|
+
if (typeof value === 'string' && value.trim())
|
|
825
|
+
return value;
|
|
826
|
+
}
|
|
827
|
+
return undefined;
|
|
828
|
+
}
|
|
829
|
+
function numberField(record, keys) {
|
|
830
|
+
for (const key of keys) {
|
|
831
|
+
const value = record[key];
|
|
832
|
+
if (typeof value === 'number' && Number.isFinite(value) && value >= 0)
|
|
833
|
+
return Math.floor(value);
|
|
834
|
+
}
|
|
835
|
+
return undefined;
|
|
836
|
+
}
|
|
837
|
+
function normalizeAcpSessionInfo(value, fallbackSessionId) {
|
|
838
|
+
const record = isRecord(value) ? value : {};
|
|
839
|
+
const sessionId = stringField(record, ['sessionId', 'session_id', 'id', 'externalSessionId'])
|
|
840
|
+
?? fallbackSessionId
|
|
841
|
+
?? '';
|
|
842
|
+
const info = { sessionId };
|
|
843
|
+
const title = stringField(record, ['title', 'name', 'summary']);
|
|
844
|
+
if (title)
|
|
845
|
+
info.title = title;
|
|
846
|
+
const preview = stringField(record, ['preview', 'description', 'subtitle']);
|
|
847
|
+
if (preview)
|
|
848
|
+
info.preview = preview;
|
|
849
|
+
const cwd = stringField(record, ['cwd', 'workDir', 'workingDirectory']);
|
|
850
|
+
if (cwd)
|
|
851
|
+
info.cwd = cwd;
|
|
852
|
+
const createdAt = stringField(record, ['createdAt', 'created_at']);
|
|
853
|
+
if (createdAt)
|
|
854
|
+
info.createdAt = createdAt;
|
|
855
|
+
const updatedAt = stringField(record, ['updatedAt', 'updated_at', 'lastActivityAt']);
|
|
856
|
+
if (updatedAt)
|
|
857
|
+
info.updatedAt = updatedAt;
|
|
858
|
+
const status = stringField(record, ['status', 'state']);
|
|
859
|
+
if (status)
|
|
860
|
+
info.status = status;
|
|
861
|
+
const messageCount = numberField(record, ['messageCount', 'messagesCount', 'message_count']);
|
|
862
|
+
if (messageCount !== undefined)
|
|
863
|
+
info.messageCount = messageCount;
|
|
864
|
+
const turnCount = numberField(record, ['turnCount', 'turnsCount', 'turn_count']);
|
|
865
|
+
if (turnCount !== undefined)
|
|
866
|
+
info.turnCount = turnCount;
|
|
867
|
+
if (Array.isArray(record.messages))
|
|
868
|
+
info.messages = record.messages;
|
|
869
|
+
if (Array.isArray(record.turns))
|
|
870
|
+
info.turns = record.turns;
|
|
871
|
+
return info;
|
|
872
|
+
}
|
|
715
873
|
/* ── Internal — Parsers ───────────────────────────────────────────────── */
|
|
716
874
|
function parseAgentCapabilities(raw) {
|
|
717
875
|
if (!raw || typeof raw !== 'object')
|
|
@@ -719,11 +877,52 @@ function parseAgentCapabilities(raw) {
|
|
|
719
877
|
const obj = raw;
|
|
720
878
|
return {
|
|
721
879
|
loadSession: obj.loadSession === true,
|
|
722
|
-
mcpCapabilities:
|
|
880
|
+
mcpCapabilities: parseMcpCapabilities(obj.mcpCapabilities),
|
|
723
881
|
promptCapabilities: typeof obj.promptCapabilities === 'object' ? obj.promptCapabilities : undefined,
|
|
724
|
-
sessionCapabilities:
|
|
882
|
+
sessionCapabilities: parseSessionCapabilities(obj.sessionCapabilities),
|
|
725
883
|
};
|
|
726
884
|
}
|
|
885
|
+
function closeAgentSession(connection, sessionId) {
|
|
886
|
+
const closable = connection;
|
|
887
|
+
const close = typeof closable.closeSession === 'function'
|
|
888
|
+
? closable.closeSession
|
|
889
|
+
: closable.unstable_closeSession;
|
|
890
|
+
return close ? close.call(closable, { sessionId }) : Promise.resolve();
|
|
891
|
+
}
|
|
892
|
+
function parseMcpCapabilities(raw) {
|
|
893
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
894
|
+
return undefined;
|
|
895
|
+
const obj = raw;
|
|
896
|
+
return compactBooleans({
|
|
897
|
+
stdio: capabilityFlag(obj.stdio),
|
|
898
|
+
http: capabilityFlag(obj.http),
|
|
899
|
+
sse: capabilityFlag(obj.sse),
|
|
900
|
+
acp: capabilityFlag(obj.acp),
|
|
901
|
+
});
|
|
902
|
+
}
|
|
903
|
+
function parseSessionCapabilities(raw) {
|
|
904
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
905
|
+
return undefined;
|
|
906
|
+
const obj = raw;
|
|
907
|
+
return compactBooleans({
|
|
908
|
+
list: capabilityFlag(obj.list),
|
|
909
|
+
delete: capabilityFlag(obj.delete),
|
|
910
|
+
resume: capabilityFlag(obj.resume),
|
|
911
|
+
fork: capabilityFlag(obj.fork),
|
|
912
|
+
close: capabilityFlag(obj.close),
|
|
913
|
+
});
|
|
914
|
+
}
|
|
915
|
+
function capabilityFlag(value) {
|
|
916
|
+
if (value === true || isAcpCapabilitySupported(value))
|
|
917
|
+
return true;
|
|
918
|
+
if (value === false)
|
|
919
|
+
return false;
|
|
920
|
+
return undefined;
|
|
921
|
+
}
|
|
922
|
+
function compactBooleans(value) {
|
|
923
|
+
const entries = Object.entries(value).filter((entry) => typeof entry[1] === 'boolean');
|
|
924
|
+
return entries.length > 0 ? Object.fromEntries(entries) : undefined;
|
|
925
|
+
}
|
|
727
926
|
function parseAuthMethods(raw) {
|
|
728
927
|
if (!Array.isArray(raw) || raw.length === 0)
|
|
729
928
|
return undefined;
|