ycodium-acp-executor 0.2.2488

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.
Files changed (98) hide show
  1. package/README.md +127 -0
  2. package/dist/adapter-support.d.ts +26 -0
  3. package/dist/adapter-support.d.ts.map +1 -0
  4. package/dist/adapter-support.js +79 -0
  5. package/dist/adapter-support.js.map +1 -0
  6. package/dist/approvals.d.ts +39 -0
  7. package/dist/approvals.d.ts.map +1 -0
  8. package/dist/approvals.js +69 -0
  9. package/dist/approvals.js.map +1 -0
  10. package/dist/config-option-wiring.d.ts +71 -0
  11. package/dist/config-option-wiring.d.ts.map +1 -0
  12. package/dist/config-option-wiring.js +71 -0
  13. package/dist/config-option-wiring.js.map +1 -0
  14. package/dist/config-options.d.ts +75 -0
  15. package/dist/config-options.d.ts.map +1 -0
  16. package/dist/config-options.js +171 -0
  17. package/dist/config-options.js.map +1 -0
  18. package/dist/connection.d.ts +34 -0
  19. package/dist/connection.d.ts.map +1 -0
  20. package/dist/connection.js +374 -0
  21. package/dist/connection.js.map +1 -0
  22. package/dist/errors.d.ts +21 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +41 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/event-stream.d.ts +15 -0
  27. package/dist/event-stream.d.ts.map +1 -0
  28. package/dist/event-stream.js +81 -0
  29. package/dist/event-stream.js.map +1 -0
  30. package/dist/events.d.ts +69 -0
  31. package/dist/events.d.ts.map +1 -0
  32. package/dist/events.js +205 -0
  33. package/dist/events.js.map +1 -0
  34. package/dist/executor.d.ts +84 -0
  35. package/dist/executor.d.ts.map +1 -0
  36. package/dist/executor.js +1179 -0
  37. package/dist/executor.js.map +1 -0
  38. package/dist/handshake.d.ts +24 -0
  39. package/dist/handshake.d.ts.map +1 -0
  40. package/dist/handshake.js +26 -0
  41. package/dist/handshake.js.map +1 -0
  42. package/dist/index.d.ts +23 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +15 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/jsonrpc.d.ts +12 -0
  47. package/dist/jsonrpc.d.ts.map +1 -0
  48. package/dist/jsonrpc.js +42 -0
  49. package/dist/jsonrpc.js.map +1 -0
  50. package/dist/line-buffer.d.ts +14 -0
  51. package/dist/line-buffer.d.ts.map +1 -0
  52. package/dist/line-buffer.js +51 -0
  53. package/dist/line-buffer.js.map +1 -0
  54. package/dist/mutex.d.ts +13 -0
  55. package/dist/mutex.d.ts.map +1 -0
  56. package/dist/mutex.js +44 -0
  57. package/dist/mutex.js.map +1 -0
  58. package/dist/probe.d.ts +74 -0
  59. package/dist/probe.d.ts.map +1 -0
  60. package/dist/probe.js +121 -0
  61. package/dist/probe.js.map +1 -0
  62. package/dist/protocol.d.ts +8 -0
  63. package/dist/protocol.d.ts.map +1 -0
  64. package/dist/protocol.js +6 -0
  65. package/dist/protocol.js.map +1 -0
  66. package/dist/runtime-mode.d.ts +49 -0
  67. package/dist/runtime-mode.d.ts.map +1 -0
  68. package/dist/runtime-mode.js +123 -0
  69. package/dist/runtime-mode.js.map +1 -0
  70. package/dist/runtime-model.d.ts +157 -0
  71. package/dist/runtime-model.d.ts.map +1 -0
  72. package/dist/runtime-model.js +601 -0
  73. package/dist/runtime-model.js.map +1 -0
  74. package/dist/session-update.d.ts +42 -0
  75. package/dist/session-update.d.ts.map +1 -0
  76. package/dist/session-update.js +63 -0
  77. package/dist/session-update.js.map +1 -0
  78. package/dist/tool-presentation.d.ts +17 -0
  79. package/dist/tool-presentation.d.ts.map +1 -0
  80. package/dist/tool-presentation.js +209 -0
  81. package/dist/tool-presentation.js.map +1 -0
  82. package/dist/turn-usage.d.ts +18 -0
  83. package/dist/turn-usage.d.ts.map +1 -0
  84. package/dist/turn-usage.js +59 -0
  85. package/dist/turn-usage.js.map +1 -0
  86. package/dist/types.d.ts +116 -0
  87. package/dist/types.d.ts.map +1 -0
  88. package/dist/types.js +6 -0
  89. package/dist/types.js.map +1 -0
  90. package/dist/util.d.ts +3 -0
  91. package/dist/util.d.ts.map +1 -0
  92. package/dist/util.js +11 -0
  93. package/dist/util.js.map +1 -0
  94. package/dist/vendor-hooks.d.ts +112 -0
  95. package/dist/vendor-hooks.d.ts.map +1 -0
  96. package/dist/vendor-hooks.js +4 -0
  97. package/dist/vendor-hooks.js.map +1 -0
  98. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type AcpClientInfo = {
2
+ readonly name: string;
3
+ readonly version: string;
4
+ };
5
+ export type AcpClientCapabilityOverrides = {
6
+ readonly fs?: {
7
+ readonly readTextFile?: boolean;
8
+ readonly writeTextFile?: boolean;
9
+ };
10
+ readonly terminal?: boolean;
11
+ };
12
+ export type AcpInitializePayload = {
13
+ readonly protocolVersion: number;
14
+ readonly clientCapabilities: {
15
+ readonly fs: {
16
+ readonly readTextFile: boolean;
17
+ readonly writeTextFile: boolean;
18
+ };
19
+ readonly terminal: boolean;
20
+ };
21
+ readonly clientInfo: AcpClientInfo;
22
+ };
23
+ export declare function acpInitializePayload(clientInfo: AcpClientInfo, overrides?: AcpClientCapabilityOverrides): AcpInitializePayload;
24
+ //# sourceMappingURL=handshake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../src/handshake.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,QAAQ,CAAC,EAAE,EAAE;YAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;YAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;SAAE,CAAC;QACjF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,SAAS,CAAC,EAAE,4BAA4B,GACvC,oBAAoB,CAatB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 客户端在 `initialize` 里怎么自报身份。
3
+ *
4
+ * 会话路径与探测路径必须是同一份:agent 会按客户端能力决定播报什么(cursor 的
5
+ * parameterized model picker 就是要客户端先声明才给),两边各写一份就等于探测问的
6
+ * 与真会话拿的不是同一个问题。
7
+ *
8
+ * `overrides` 只认 `fs` 与 `terminal` 两栏,与 `AcpExecutorOptions.clientCapabilities`
9
+ * 现有的用法逐字一致——其余键今天也没被发出去,这里不静默放宽。
10
+ */
11
+ import { PROTOCOL_VERSION } from "./protocol.js";
12
+ export function acpInitializePayload(clientInfo, overrides) {
13
+ return {
14
+ protocolVersion: PROTOCOL_VERSION,
15
+ clientCapabilities: {
16
+ fs: {
17
+ readTextFile: false,
18
+ writeTextFile: false,
19
+ ...overrides?.fs,
20
+ },
21
+ terminal: overrides?.terminal ?? false,
22
+ },
23
+ clientInfo,
24
+ };
25
+ }
26
+ //# sourceMappingURL=handshake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../src/handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAqBjD,MAAM,UAAU,oBAAoB,CAClC,UAAyB,EACzB,SAAwC;IAExC,OAAO;QACL,eAAe,EAAE,gBAAgB;QACjC,kBAAkB,EAAE;YAClB,EAAE,EAAE;gBACF,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,KAAK;gBACpB,GAAG,SAAS,EAAE,EAAE;aACjB;YACD,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,KAAK;SACvC;QACD,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ export { createAcpExecutor } from "./executor.ts";
2
+ export type { AcpExecutor, AcpExecutorOptions } from "./executor.ts";
3
+ export { acpInitializePayload } from "./handshake.ts";
4
+ export type { AcpClientCapabilityOverrides, AcpClientInfo, AcpInitializePayload, } from "./handshake.ts";
5
+ export { acpModelChoicesFromConfigOptions, acpModelChoicesFromSessionModels, findAcpEffortConfig, } from "./config-options.ts";
6
+ export type { AcpConfigChoice, AcpEffortConfig } from "./config-options.ts";
7
+ export { acpAvailableModes, acpCurrentModeId, acpModeConfigId } from "./runtime-mode.ts";
8
+ export type { AcpAvailableMode, AcpRuntimeMode } from "./runtime-mode.ts";
9
+ export { acpAgentVersion, collectProbeProcess, openAcpProbeHandshake, parseCliVersion, probeCliVersion, } from "./probe.ts";
10
+ export type { AcpProbeHandshake, ProbeProcess, ProbeProcessRun } from "./probe.ts";
11
+ export { AcpConnectionClosedError, AcpExecutorCancelTimeoutError, AcpExecutorDisposedError, AcpExecutorError, AcpExecutorNotStartedError, AcpExecutorRequestError, } from "./errors.ts";
12
+ export { acpApprovalOptions, acpPermissionOutcome, acpPromptSettlementBelongsToContext, parseAcpResumeCursor, selectAcpPermissionOptionId, selectAutoApprovedAcpPermissionOption, } from "./adapter-support.ts";
13
+ export { fileChangesFromAcpPermission, makeAcpAssistantItemEvent, makeAcpContentDeltaEvent, makeAcpPlanUpdatedEvent, makeAcpRequestOpenedEvent, makeAcpRequestResolvedEvent, makeAcpToolCallEvent, } from "./events.ts";
14
+ export { decideToolCallUpdateEmission, extractModelConfigId, filterMcpServersByAgentCapabilities, matchAdvertisedModelValue, mergeToolCallState, parseAvailableCommandsUpdate, parsePermissionRequest, parseSessionModeState, parseSessionUpdateEvent, sessionUpdateIsReplay, syntheticLoadSessionResponseFromInitialize, } from "./runtime-model.ts";
15
+ export type { AcpAvailableCommand, AcpParsedSessionEvent, AcpPermissionRequest, AcpPlanUpdate, AcpSessionModeState, AcpSessionSetupResponse, AcpToolCallState, } from "./runtime-model.ts";
16
+ export { ACP_USAGE_BASELINE_NEW_SESSION, acpUsageProviderKind, advanceAcpUsage, hasAnyTokens, readAcpUsageSnapshot, } from "./turn-usage.ts";
17
+ export type { AcpExtensionContext, AcpVendorHooks, AcpUserInputQuestion, AcpUserInputQuestionOption, AcpUserInputResolution, AcpContextWindowReading, } from "./vendor-hooks.ts";
18
+ export type { AcpApprovalDecision, AcpRequestPermissionParams, AcpPromptInput, AcpSessionStartResult, AcpSessionStatus, AcpTurnResult, ExecutorEvent, ExecutorEventType, } from "./types.ts";
19
+ export { UnboundedEventStream } from "./event-stream.ts";
20
+ export { createApprovalGate } from "./approvals.ts";
21
+ export { AGENT_METHODS, CLIENT_METHODS, PROTOCOL_VERSION, RequestError, createAcpConnection, decodeSessionUpdate, isSessionUpdateEnvelope, methods, ndJsonStream, } from "./protocol.ts";
22
+ export type { AcpConnection, AcpConnectionOptions, AcpIncomingNotification, AcpProtocolLogEvent, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, CancelNotification, InitializeRequest, InitializeResponse, LoadSessionRequest, LoadSessionResponse, NewSessionRequest, NewSessionResponse, PromptRequest, PromptResponse, SessionNotification, SessionUpdate, SessionUpdateDecode, SessionUpdateEnvelope, } from "./protocol.ts";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EACV,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mCAAmC,EACnC,oBAAoB,EACpB,2BAA2B,EAC3B,qCAAqC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,mCAAmC,EACnC,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,0CAA0C,GAC3C,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,EAC7B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export { createAcpExecutor } from "./executor.js";
2
+ export { acpInitializePayload } from "./handshake.js";
3
+ export { acpModelChoicesFromConfigOptions, acpModelChoicesFromSessionModels, findAcpEffortConfig, } from "./config-options.js";
4
+ export { acpAvailableModes, acpCurrentModeId, acpModeConfigId } from "./runtime-mode.js";
5
+ export { acpAgentVersion, collectProbeProcess, openAcpProbeHandshake, parseCliVersion, probeCliVersion, } from "./probe.js";
6
+ export { AcpConnectionClosedError, AcpExecutorCancelTimeoutError, AcpExecutorDisposedError, AcpExecutorError, AcpExecutorNotStartedError, AcpExecutorRequestError, } from "./errors.js";
7
+ export { acpApprovalOptions, acpPermissionOutcome, acpPromptSettlementBelongsToContext, parseAcpResumeCursor, selectAcpPermissionOptionId, selectAutoApprovedAcpPermissionOption, } from "./adapter-support.js";
8
+ export { fileChangesFromAcpPermission, makeAcpAssistantItemEvent, makeAcpContentDeltaEvent, makeAcpPlanUpdatedEvent, makeAcpRequestOpenedEvent, makeAcpRequestResolvedEvent, makeAcpToolCallEvent, } from "./events.js";
9
+ export { decideToolCallUpdateEmission, extractModelConfigId, filterMcpServersByAgentCapabilities, matchAdvertisedModelValue, mergeToolCallState, parseAvailableCommandsUpdate, parsePermissionRequest, parseSessionModeState, parseSessionUpdateEvent, sessionUpdateIsReplay, syntheticLoadSessionResponseFromInitialize, } from "./runtime-model.js";
10
+ export { ACP_USAGE_BASELINE_NEW_SESSION, acpUsageProviderKind, advanceAcpUsage, hasAnyTokens, readAcpUsageSnapshot, } from "./turn-usage.js";
11
+ export { UnboundedEventStream } from "./event-stream.js";
12
+ export { createApprovalGate } from "./approvals.js";
13
+ // 线上分帧与 SDK 类型:外部插件与仓库内插件共用同一出口。
14
+ export { AGENT_METHODS, CLIENT_METHODS, PROTOCOL_VERSION, RequestError, createAcpConnection, decodeSessionUpdate, isSessionUpdateEnvelope, methods, ndJsonStream, } from "./protocol.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAMtD,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mCAAmC,EACnC,oBAAoB,EACpB,2BAA2B,EAC3B,qCAAqC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,mCAAmC,EACnC,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,0CAA0C,GAC3C,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,iCAAiC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AnyNotification, AnyRequest, AnyResponse } from "@agentclientprotocol/sdk";
2
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
3
+ export declare function isRequestMessage(value: unknown): value is AnyRequest;
4
+ export declare function isResponseMessage(value: unknown): value is AnyResponse;
5
+ export declare function isNotificationMessage(value: unknown): value is AnyNotification;
6
+ export type JsonRpcErrorShape = {
7
+ readonly code: number;
8
+ readonly message: string;
9
+ readonly data?: unknown;
10
+ };
11
+ export declare function readJsonRpcError(value: unknown): JsonRpcErrorShape | undefined;
12
+ //# sourceMappingURL=jsonrpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc.d.ts","sourceRoot":"","sources":["../src/jsonrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAOpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAUtE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE9E;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAa9E"}
@@ -0,0 +1,42 @@
1
+ export function isRecord(value) {
2
+ return typeof value === "object" && value !== null;
3
+ }
4
+ function isJsonRpcId(value) {
5
+ return typeof value === "string" || (typeof value === "number" && Number.isFinite(value));
6
+ }
7
+ function isJsonRpcEnvelope(value) {
8
+ return isRecord(value) && value["jsonrpc"] === "2.0";
9
+ }
10
+ export function isRequestMessage(value) {
11
+ return (isJsonRpcEnvelope(value) &&
12
+ "id" in value &&
13
+ typeof value["method"] === "string" &&
14
+ isJsonRpcId(value["id"]));
15
+ }
16
+ export function isResponseMessage(value) {
17
+ if (!isJsonRpcEnvelope(value) || "method" in value) {
18
+ return false;
19
+ }
20
+ if (!("id" in value) || !isJsonRpcId(value["id"])) {
21
+ return false;
22
+ }
23
+ const hasResult = Object.hasOwn(value, "result");
24
+ const hasError = Object.hasOwn(value, "error");
25
+ return hasResult !== hasError;
26
+ }
27
+ export function isNotificationMessage(value) {
28
+ return isJsonRpcEnvelope(value) && !("id" in value) && typeof value["method"] === "string";
29
+ }
30
+ export function readJsonRpcError(value) {
31
+ if (!isRecord(value) ||
32
+ typeof value["code"] !== "number" ||
33
+ typeof value["message"] !== "string") {
34
+ return undefined;
35
+ }
36
+ return {
37
+ code: value["code"],
38
+ message: value["message"],
39
+ ...(Object.hasOwn(value, "data") ? { data: value["data"] } : {}),
40
+ };
41
+ }
42
+ //# sourceMappingURL=jsonrpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc.js","sourceRoot":"","sources":["../src/jsonrpc.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,iBAAiB,CAAC,KAAK,CAAC;QACxB,IAAI,IAAI,KAAK;QACb,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACnC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,QAAQ,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;AAC7F,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,EACpC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Incrementally splits a byte stream into newline-terminated lines.
3
+ *
4
+ * Matches the algorithm in `@agentclientprotocol/sdk` `ndJsonStream` so a
5
+ * single stdio `data` chunk still groups every complete line that arrived
6
+ * together. That grouping is what inbound idle needs; the SDK's readable
7
+ * yields one message per line and awaits between them.
8
+ */
9
+ export declare class LineBuffer {
10
+ #private;
11
+ push(chunk: Uint8Array): Uint8Array[];
12
+ flush(): Uint8Array | undefined;
13
+ }
14
+ //# sourceMappingURL=line-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-buffer.d.ts","sourceRoot":"","sources":["../src/line-buffer.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,UAAU;;IAGrB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAerC,KAAK,IAAI,UAAU,GAAG,SAAS;CAyBhC"}
@@ -0,0 +1,51 @@
1
+ const newline = 0x0a;
2
+ /**
3
+ * Incrementally splits a byte stream into newline-terminated lines.
4
+ *
5
+ * Matches the algorithm in `@agentclientprotocol/sdk` `ndJsonStream` so a
6
+ * single stdio `data` chunk still groups every complete line that arrived
7
+ * together. That grouping is what inbound idle needs; the SDK's readable
8
+ * yields one message per line and awaits between them.
9
+ */
10
+ export class LineBuffer {
11
+ #pending = [];
12
+ push(chunk) {
13
+ const lines = [];
14
+ let start = 0;
15
+ let newlineIndex = chunk.indexOf(newline, start);
16
+ while (newlineIndex !== -1) {
17
+ lines.push(this.#takeLine(chunk.subarray(start, newlineIndex)));
18
+ start = newlineIndex + 1;
19
+ newlineIndex = chunk.indexOf(newline, start);
20
+ }
21
+ if (start < chunk.byteLength) {
22
+ this.#pending.push(start === 0 ? chunk : new Uint8Array(chunk.subarray(start)));
23
+ }
24
+ return lines;
25
+ }
26
+ flush() {
27
+ if (this.#pending.length === 0) {
28
+ return undefined;
29
+ }
30
+ return this.#takeLine(new Uint8Array(0));
31
+ }
32
+ #takeLine(tail) {
33
+ if (this.#pending.length === 0) {
34
+ return tail;
35
+ }
36
+ let total = tail.byteLength;
37
+ for (const part of this.#pending) {
38
+ total += part.byteLength;
39
+ }
40
+ const line = new Uint8Array(total);
41
+ let offset = 0;
42
+ for (const part of this.#pending) {
43
+ line.set(part, offset);
44
+ offset += part.byteLength;
45
+ }
46
+ line.set(tail, offset);
47
+ this.#pending = [];
48
+ return line;
49
+ }
50
+ }
51
+ //# sourceMappingURL=line-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-buffer.js","sourceRoot":"","sources":["../src/line-buffer.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACrB,QAAQ,GAAiB,EAAE,CAAC;IAE5B,IAAI,CAAC,KAAiB;QACpB,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAChE,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;YACzB,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CAAC,IAAgB;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvB,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 单槽互斥。不是 Scope:调用方自己 acquire/release,dispose 时 drain 等待者。
3
+ */
4
+ export declare class Mutex {
5
+ private locked;
6
+ private readonly waiters;
7
+ get isLocked(): boolean;
8
+ acquire(): Promise<void>;
9
+ tryAcquire(): boolean;
10
+ release(): void;
11
+ runExclusive<T>(fn: () => Promise<T> | T): Promise<T>;
12
+ }
13
+ //# sourceMappingURL=mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../src/mutex.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,UAAU,IAAI,OAAO;IAQrB,OAAO,IAAI,IAAI;IAST,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ5D"}
package/dist/mutex.js ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 单槽互斥。不是 Scope:调用方自己 acquire/release,dispose 时 drain 等待者。
3
+ */
4
+ export class Mutex {
5
+ locked = false;
6
+ waiters = [];
7
+ get isLocked() {
8
+ return this.locked;
9
+ }
10
+ acquire() {
11
+ if (!this.locked) {
12
+ this.locked = true;
13
+ return Promise.resolve();
14
+ }
15
+ return new Promise((resolve) => {
16
+ this.waiters.push(resolve);
17
+ });
18
+ }
19
+ tryAcquire() {
20
+ if (this.locked) {
21
+ return false;
22
+ }
23
+ this.locked = true;
24
+ return true;
25
+ }
26
+ release() {
27
+ const next = this.waiters.shift();
28
+ if (next) {
29
+ next();
30
+ return;
31
+ }
32
+ this.locked = false;
33
+ }
34
+ async runExclusive(fn) {
35
+ await this.acquire();
36
+ try {
37
+ return await fn();
38
+ }
39
+ finally {
40
+ this.release();
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../src/mutex.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,KAAK;IACR,MAAM,GAAG,KAAK,CAAC;IACN,OAAO,GAAsB,EAAE,CAAC;IAEjD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,EAAwB;QAC5C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 探测用的一次性 ACP 握手:连上、`initialize`、把连接交给调用方问一句,然后收工。
3
+ *
4
+ * **为什么不用 `createAcpExecutor`**:那把状态机是为「一条真会话」造的——要 threadId、
5
+ * 发事件、管审批与轮次收口。探测只要目录,多出来的生命周期全是负担。这里只共享
6
+ * 分帧(`createAcpConnection`)与 `initialize` 载荷(`acpInitializePayload`),
7
+ * 两处都不许各写一份。
8
+ *
9
+ * **调用方管进程**:spawn 与 kill 留在各插件手里(宿主的 `host.process.spawn` 只有
10
+ * 它们够得着)。这里只保证一件事——任何一步失败或超时都抛出去,让调用方的 `finally`
11
+ * 有机会杀进程;绝不把挂住的 promise 留给状态刷新。例外是 `--version`、`kimi provider
12
+ * list` 那种一次性命令({@link collectProbeProcess}):spawn 仍由调用方做,跑完就地杀掉。
13
+ *
14
+ * agent 反过来问客户端的事(权限、读文件)一律按 `method not found` 回:不挂
15
+ * `onRequest`,协议库就是这个默认。探测替用户批准任何东西都是错的。
16
+ */
17
+ import type * as NodeStream from "node:stream";
18
+ import { type AcpClientInfo } from "./handshake.ts";
19
+ export type AcpProbeHandshake = {
20
+ /** `initialize` 的原样回包。厂商把目录挂在哪一位各家不同,由调用方自己认。 */
21
+ readonly initializeResult: unknown;
22
+ /** 再问一句(`session/list`、`session/new`…)。同一个超时口径。 */
23
+ readonly request: (method: string, params?: unknown) => Promise<unknown>;
24
+ readonly close: () => Promise<void>;
25
+ };
26
+ export declare function openAcpProbeHandshake(input: {
27
+ readonly readable: NodeStream.Readable;
28
+ readonly writable: NodeStream.Writable;
29
+ readonly clientInfo: AcpClientInfo;
30
+ readonly requestTimeoutMs: number;
31
+ }): Promise<AcpProbeHandshake>;
32
+ /**
33
+ * agent 在 `initialize` 里自报的版本(`agentInfo.version`)。没报或空串就是 null,不猜。
34
+ *
35
+ * 只有报的就是 CLI 自己版本的 agent 才能用它:dsh 的 ACP 层把这一位写死成 `0.0.1`,
36
+ * 那一家改跑 `--version`({@link probeCliVersion})。
37
+ */
38
+ export declare function acpAgentVersion(initializeResult: unknown): string | null;
39
+ export declare function parseCliVersion(output: string): string | null;
40
+ /** 一次性探测命令用得着的那几样;宿主 `host.process.spawn` 回来的那只手在结构上就满足它。 */
41
+ export type ProbeProcess = {
42
+ readonly stdout: AsyncIterable<Uint8Array>;
43
+ readonly stderr: AsyncIterable<Uint8Array>;
44
+ readonly exited: Promise<number | null>;
45
+ readonly closeStdin: () => Promise<void>;
46
+ readonly kill: (signal?: "SIGTERM" | "SIGKILL") => Promise<void>;
47
+ };
48
+ /** 一次性命令跑完的样子。`stdout` 超出封顶就是 undefined:半截输出不能当答案。 */
49
+ export type ProbeProcessRun = {
50
+ readonly stdout: string | undefined;
51
+ readonly stderr: string;
52
+ readonly exitCode: number | null;
53
+ };
54
+ /**
55
+ * 跑完一个已经起来的一次性命令:先关 stdin,收 stdout/stderr(各自封顶)、等退出,整段
56
+ * 一个超时,收尾一律杀掉。超时抛 `<what> timed out after <ms>ms`,由调用方按失败报;
57
+ * 「起不来」在 spawn 那一步,由调用方自己分。
58
+ */
59
+ export declare function collectProbeProcess(child: ProbeProcess, input: {
60
+ readonly timeoutMs: number;
61
+ readonly maxOutputBytes: number;
62
+ readonly what: string;
63
+ }): Promise<ProbeProcessRun>;
64
+ /**
65
+ * 跑一次 `<cli> --version` 读版本号。起不来、超时、非零退出、认不出一律 null:版本读不到
66
+ * 不牵连就绪,调用方照报 null。宿主因进程满额拒绝起这个辅助进程同样只是 null,不往上抛——
67
+ * 就绪那条主进程被拒才由调用方抛出。先认 stdout,没有才认 stderr——stderr 常混着运行时
68
+ * 告警,那里的版本号未必是这只 CLI 的。
69
+ */
70
+ export declare function probeCliVersion(input: {
71
+ readonly spawn: () => Promise<ProbeProcess>;
72
+ readonly timeoutMs: number;
73
+ }): Promise<string | null>;
74
+ //# sourceMappingURL=probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAC;AAI/C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAsBF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0B7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIxE;AAQD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;AAED,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAiBF;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5F,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAKD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBzB"}
package/dist/probe.js ADDED
@@ -0,0 +1,121 @@
1
+ import { createAcpConnection } from "./protocol.js";
2
+ import { acpInitializePayload } from "./handshake.js";
3
+ import { asTrimmedString, isRecord } from "./util.js";
4
+ /** 超时后 promise 就地作废;挂着的请求由调用方杀进程时一起收掉。 */
5
+ function withProbeTimeout(promise, timeoutMs, what) {
6
+ return new Promise((resolve, reject) => {
7
+ const timer = setTimeout(() => {
8
+ reject(new Error(`${what} timed out after ${timeoutMs}ms`));
9
+ }, timeoutMs);
10
+ timer.unref?.();
11
+ promise.then((value) => {
12
+ clearTimeout(timer);
13
+ resolve(value);
14
+ }, (error) => {
15
+ clearTimeout(timer);
16
+ reject(error instanceof Error ? error : new Error(String(error)));
17
+ });
18
+ });
19
+ }
20
+ export async function openAcpProbeHandshake(input) {
21
+ const connection = createAcpConnection({
22
+ readable: input.readable,
23
+ writable: input.writable,
24
+ onNotification: () => undefined,
25
+ });
26
+ try {
27
+ const initializeResult = await withProbeTimeout(connection.request("initialize", acpInitializePayload(input.clientInfo)), input.requestTimeoutMs, "ACP probe request 'initialize'");
28
+ return {
29
+ initializeResult,
30
+ request: (method, params) => withProbeTimeout(connection.request(method, params), input.requestTimeoutMs, `ACP probe request '${method}'`),
31
+ close: () => connection.close(),
32
+ };
33
+ }
34
+ catch (error) {
35
+ await connection.close().catch(() => undefined);
36
+ throw error;
37
+ }
38
+ }
39
+ /**
40
+ * agent 在 `initialize` 里自报的版本(`agentInfo.version`)。没报或空串就是 null,不猜。
41
+ *
42
+ * 只有报的就是 CLI 自己版本的 agent 才能用它:dsh 的 ACP 层把这一位写死成 `0.0.1`,
43
+ * 那一家改跑 `--version`({@link probeCliVersion})。
44
+ */
45
+ export function acpAgentVersion(initializeResult) {
46
+ if (!isRecord(initializeResult))
47
+ return null;
48
+ const agentInfo = initializeResult["agentInfo"];
49
+ return isRecord(agentInfo) ? (asTrimmedString(agentInfo["version"]) ?? null) : null;
50
+ }
51
+ /**
52
+ * `--version` 输出里的版本号:三段数字连同预发布段。dsh 报 `0.1.5-rc.2`,截成 `0.1.5`
53
+ * 会让「有更新」拿正式版去比。前面紧挨数字或点的不认,免得从更长的数串中间截一段。
54
+ */
55
+ const CLI_VERSION_PATTERN = /(?<![\d.])(\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)/;
56
+ export function parseCliVersion(output) {
57
+ return CLI_VERSION_PATTERN.exec(output)?.[1] ?? null;
58
+ }
59
+ async function collectCappedText(stream, maxBytes) {
60
+ const decoder = new TextDecoder();
61
+ let text = "";
62
+ let total = 0;
63
+ for await (const chunk of stream) {
64
+ // 超出封顶也要读到底:不读的话子进程写满管道就卡住,等不到它退出。
65
+ total += chunk.byteLength;
66
+ if (total <= maxBytes)
67
+ text += decoder.decode(chunk, { stream: true });
68
+ }
69
+ return { text: text + decoder.decode(), overflowed: total > maxBytes };
70
+ }
71
+ /**
72
+ * 跑完一个已经起来的一次性命令:先关 stdin,收 stdout/stderr(各自封顶)、等退出,整段
73
+ * 一个超时,收尾一律杀掉。超时抛 `<what> timed out after <ms>ms`,由调用方按失败报;
74
+ * 「起不来」在 spawn 那一步,由调用方自己分。
75
+ */
76
+ export async function collectProbeProcess(child, input) {
77
+ try {
78
+ // 这类命令不读输入。不认参数、照常起来等 stdin 的 CLI 收到 EOF 就退,不必拖到超时。
79
+ await child.closeStdin().catch(() => undefined);
80
+ const [stdout, stderr, exitCode] = await withProbeTimeout(Promise.all([
81
+ collectCappedText(child.stdout, input.maxOutputBytes),
82
+ collectCappedText(child.stderr, input.maxOutputBytes),
83
+ child.exited,
84
+ ]), input.timeoutMs, input.what);
85
+ return { stdout: stdout.overflowed ? undefined : stdout.text, stderr: stderr.text, exitCode };
86
+ }
87
+ finally {
88
+ await child.kill("SIGTERM").catch(() => undefined);
89
+ }
90
+ }
91
+ /** 版本输出正常就一行;封顶只防 CLI 抽风刷屏把内存吃掉。 */
92
+ const MAX_VERSION_OUTPUT_BYTES = 64 * 1024;
93
+ /**
94
+ * 跑一次 `<cli> --version` 读版本号。起不来、超时、非零退出、认不出一律 null:版本读不到
95
+ * 不牵连就绪,调用方照报 null。宿主因进程满额拒绝起这个辅助进程同样只是 null,不往上抛——
96
+ * 就绪那条主进程被拒才由调用方抛出。先认 stdout,没有才认 stderr——stderr 常混着运行时
97
+ * 告警,那里的版本号未必是这只 CLI 的。
98
+ */
99
+ export async function probeCliVersion(input) {
100
+ let child;
101
+ try {
102
+ child = await input.spawn();
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ try {
108
+ const run = await collectProbeProcess(child, {
109
+ timeoutMs: input.timeoutMs,
110
+ maxOutputBytes: MAX_VERSION_OUTPUT_BYTES,
111
+ what: "--version",
112
+ });
113
+ if (run.exitCode !== 0)
114
+ return null;
115
+ return parseCliVersion(run.stdout ?? "") ?? parseCliVersion(run.stderr);
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ }
121
+ //# sourceMappingURL=probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}