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.
- package/README.md +127 -0
- package/dist/adapter-support.d.ts +26 -0
- package/dist/adapter-support.d.ts.map +1 -0
- package/dist/adapter-support.js +79 -0
- package/dist/adapter-support.js.map +1 -0
- package/dist/approvals.d.ts +39 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +69 -0
- package/dist/approvals.js.map +1 -0
- package/dist/config-option-wiring.d.ts +71 -0
- package/dist/config-option-wiring.d.ts.map +1 -0
- package/dist/config-option-wiring.js +71 -0
- package/dist/config-option-wiring.js.map +1 -0
- package/dist/config-options.d.ts +75 -0
- package/dist/config-options.d.ts.map +1 -0
- package/dist/config-options.js +171 -0
- package/dist/config-options.js.map +1 -0
- package/dist/connection.d.ts +34 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +374 -0
- package/dist/connection.js.map +1 -0
- package/dist/errors.d.ts +21 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-stream.d.ts +15 -0
- package/dist/event-stream.d.ts.map +1 -0
- package/dist/event-stream.js +81 -0
- package/dist/event-stream.js.map +1 -0
- package/dist/events.d.ts +69 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +205 -0
- package/dist/events.js.map +1 -0
- package/dist/executor.d.ts +84 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +1179 -0
- package/dist/executor.js.map +1 -0
- package/dist/handshake.d.ts +24 -0
- package/dist/handshake.d.ts.map +1 -0
- package/dist/handshake.js +26 -0
- package/dist/handshake.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonrpc.d.ts +12 -0
- package/dist/jsonrpc.d.ts.map +1 -0
- package/dist/jsonrpc.js +42 -0
- package/dist/jsonrpc.js.map +1 -0
- package/dist/line-buffer.d.ts +14 -0
- package/dist/line-buffer.d.ts.map +1 -0
- package/dist/line-buffer.js +51 -0
- package/dist/line-buffer.js.map +1 -0
- package/dist/mutex.d.ts +13 -0
- package/dist/mutex.d.ts.map +1 -0
- package/dist/mutex.js +44 -0
- package/dist/mutex.js.map +1 -0
- package/dist/probe.d.ts +74 -0
- package/dist/probe.d.ts.map +1 -0
- package/dist/probe.js +121 -0
- package/dist/probe.js.map +1 -0
- package/dist/protocol.d.ts +8 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +6 -0
- package/dist/protocol.js.map +1 -0
- package/dist/runtime-mode.d.ts +49 -0
- package/dist/runtime-mode.d.ts.map +1 -0
- package/dist/runtime-mode.js +123 -0
- package/dist/runtime-mode.js.map +1 -0
- package/dist/runtime-model.d.ts +157 -0
- package/dist/runtime-model.d.ts.map +1 -0
- package/dist/runtime-model.js +601 -0
- package/dist/runtime-model.js.map +1 -0
- package/dist/session-update.d.ts +42 -0
- package/dist/session-update.d.ts.map +1 -0
- package/dist/session-update.js +63 -0
- package/dist/session-update.js.map +1 -0
- package/dist/tool-presentation.d.ts +17 -0
- package/dist/tool-presentation.d.ts.map +1 -0
- package/dist/tool-presentation.js +209 -0
- package/dist/tool-presentation.js.map +1 -0
- package/dist/turn-usage.d.ts +18 -0
- package/dist/turn-usage.d.ts.map +1 -0
- package/dist/turn-usage.js +59 -0
- package/dist/turn-usage.js.map +1 -0
- package/dist/types.d.ts +116 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/util.d.ts +3 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +11 -0
- package/dist/util.js.map +1 -0
- package/dist/vendor-hooks.d.ts +112 -0
- package/dist/vendor-hooks.d.ts.map +1 -0
- package/dist/vendor-hooks.js +4 -0
- package/dist/vendor-hooks.js.map +1 -0
- 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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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":"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"}
|
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"}
|
package/dist/jsonrpc.js
ADDED
|
@@ -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"}
|
package/dist/mutex.d.ts
ADDED
|
@@ -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"}
|
package/dist/probe.d.ts
ADDED
|
@@ -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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"}
|