@zhushanwen/subagent-engine-sdk 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/best-effort.d.cts +1 -1
- package/dist/best-effort.d.ts +1 -1
- package/dist/{chunk-W3BKI2BP.js → chunk-3WC36CHI.js} +1 -1
- package/dist/{chunk-CNQTJJF5.js → chunk-HERD6RIR.js} +12 -1
- package/dist/{chunk-QOEXD2FT.js → chunk-RCT7L777.js} +36 -1
- package/dist/{chunk-WMDMXP2F.js → chunk-SFNTX7Q3.js} +0 -4
- package/dist/{chunk-AIG5LSGK.js → chunk-SGAIDL63.js} +5 -0
- package/dist/{chunk-63ZNJHM5.js → chunk-W23PAAGX.js} +3 -1
- package/dist/{contract-types-DaULkdpG.d.cts → contract-types-DiWyGRXr.d.cts} +78 -13
- package/dist/{contract-types-DaULkdpG.d.ts → contract-types-DiWyGRXr.d.ts} +78 -13
- package/dist/index.cjs +89 -8
- package/dist/index.d.cts +39 -5
- package/dist/index.d.ts +39 -5
- package/dist/index.js +45 -10
- package/dist/journal-io.d.cts +1 -1
- package/dist/journal-io.d.ts +1 -1
- package/dist/journal-replay.cjs +5 -0
- package/dist/journal-replay.d.cts +1 -1
- package/dist/journal-replay.d.ts +1 -1
- package/dist/journal-replay.js +1 -1
- package/dist/kill-chain.cjs +38 -2
- package/dist/kill-chain.d.cts +38 -3
- package/dist/kill-chain.d.ts +38 -3
- package/dist/kill-chain.js +8 -5
- package/dist/node-executor.js +2 -2
- package/dist/port-contract.d.cts +9 -4
- package/dist/port-contract.d.ts +9 -4
- package/dist/protocol/index.cjs +3 -7
- package/dist/protocol/index.d.cts +132 -12
- package/dist/protocol/index.d.ts +132 -12
- package/dist/protocol/index.js +2 -6
- package/dist/spawn.cjs +81 -5
- package/dist/spawn.d.cts +13 -2
- package/dist/spawn.d.ts +13 -2
- package/dist/spawn.js +6 -1
- package/package.json +1 -1
- package/dist/error-codes-C9BOUI5H.d.ts +0 -118
- package/dist/error-codes-CFTOAxva.d.cts +0 -118
package/dist/index.cjs
CHANGED
|
@@ -6581,12 +6581,11 @@ __export(src_exports, {
|
|
|
6581
6581
|
DEFAULT_NATIVE_INTERRUPT_GRACE_MS: () => DEFAULT_NATIVE_INTERRUPT_GRACE_MS,
|
|
6582
6582
|
DEFAULT_STDERR_KEEP_DAYS: () => DEFAULT_STDERR_KEEP_DAYS,
|
|
6583
6583
|
DEFAULT_STDERR_MAX_BYTES: () => DEFAULT_STDERR_MAX_BYTES,
|
|
6584
|
+
ENGINE_ABORT_KILL_GRACE_MS: () => ENGINE_ABORT_KILL_GRACE_MS,
|
|
6584
6585
|
ENGINE_ENV_DENY_LIST: () => ENGINE_ENV_DENY_LIST,
|
|
6585
6586
|
ENGINE_ENV_L0_INFRA_KEYS: () => ENGINE_ENV_L0_INFRA_KEYS,
|
|
6586
6587
|
ENGINE_ENV_PREFIXES: () => ENGINE_ENV_PREFIXES,
|
|
6587
6588
|
ENGINE_ERROR_CODE_PREFIX: () => ENGINE_ERROR_CODE_PREFIX,
|
|
6588
|
-
ENGINE_EVENT_COALESCE_DEFAULT: () => ENGINE_EVENT_COALESCE_DEFAULT,
|
|
6589
|
-
ENGINE_EVENT_COALESCE_ENV: () => ENGINE_EVENT_COALESCE_ENV,
|
|
6590
6589
|
ENGINE_HOST_REQUEST_TIMEOUT_ENV: () => ENGINE_HOST_REQUEST_TIMEOUT_ENV,
|
|
6591
6590
|
ENGINE_NODE_ENV: () => ENGINE_NODE_ENV,
|
|
6592
6591
|
ENGINE_PROTOCOL_ERROR_CODES: () => ENGINE_PROTOCOL_ERROR_CODES,
|
|
@@ -6607,7 +6606,10 @@ __export(src_exports, {
|
|
|
6607
6606
|
RELAY_ENV_SESSION_ID: () => RELAY_ENV_SESSION_ID,
|
|
6608
6607
|
RELAY_ENV_SOCKET: () => RELAY_ENV_SOCKET,
|
|
6609
6608
|
RELAY_EXIT_CODES: () => RELAY_EXIT_CODES,
|
|
6609
|
+
RELAY_FRAME_DIRS: () => RELAY_FRAME_DIRS,
|
|
6610
|
+
RELAY_FRAME_KINDS: () => RELAY_FRAME_KINDS,
|
|
6610
6611
|
RELAY_PROTOCOL_VERSION: () => RELAY_PROTOCOL_VERSION,
|
|
6612
|
+
RELAY_REJECT_REASONS: () => RELAY_REJECT_REASONS,
|
|
6611
6613
|
REVERSE_CHANNELS: () => REVERSE_CHANNELS,
|
|
6612
6614
|
REVERSE_CHANNEL_TIMEOUT_CLASS: () => REVERSE_CHANNEL_TIMEOUT_CLASS,
|
|
6613
6615
|
REVERSE_REQUEST_TIMEOUT_MS: () => REVERSE_REQUEST_TIMEOUT_MS,
|
|
@@ -6653,10 +6655,12 @@ __export(src_exports, {
|
|
|
6653
6655
|
isReverseRequestFrame: () => isReverseRequestFrame,
|
|
6654
6656
|
isUiResponse: () => isUiResponse,
|
|
6655
6657
|
killChain: () => killChain,
|
|
6658
|
+
killPidChain: () => killPidChain,
|
|
6656
6659
|
notificationFrameSchema: () => notificationFrameSchema,
|
|
6657
6660
|
parseChannel: () => parseChannel,
|
|
6658
6661
|
parseCtxModel: () => parseCtxModel,
|
|
6659
6662
|
probeNodeExecutor: () => probeNodeExecutor,
|
|
6663
|
+
probePidAlive: () => probePidAlive,
|
|
6660
6664
|
protocolErrorSchema: () => protocolErrorSchema,
|
|
6661
6665
|
pumpNdjsonLines: () => pumpNdjsonLines,
|
|
6662
6666
|
readRelayForwardEnv: () => readRelayForwardEnv,
|
|
@@ -6675,6 +6679,7 @@ __export(src_exports, {
|
|
|
6675
6679
|
rotateStderrLogIfNeeded: () => rotateStderrLogIfNeeded,
|
|
6676
6680
|
runEngineCliEntry: () => runEngineCliEntry,
|
|
6677
6681
|
runSessionParamsSchema: () => runSessionParamsSchema,
|
|
6682
|
+
safeKill: () => safeKill,
|
|
6678
6683
|
sanitizeSeg: () => sanitizeSeg,
|
|
6679
6684
|
schemaEmulationFailedDetail: () => schemaEmulationFailedDetail,
|
|
6680
6685
|
sessionIdFromHandle: () => sessionIdFromHandle,
|
|
@@ -6709,8 +6714,6 @@ var CRASH_REBUILD_BACKOFF_MS = [
|
|
|
6709
6714
|
CRASH_REBUILD_BACKOFF_STEP_3_MS
|
|
6710
6715
|
];
|
|
6711
6716
|
var STDERR_TAIL_CHARS = 400;
|
|
6712
|
-
var ENGINE_EVENT_COALESCE_ENV = "TAIJI_ENGINE_EVENT_COALESCE";
|
|
6713
|
-
var ENGINE_EVENT_COALESCE_DEFAULT = "0";
|
|
6714
6717
|
|
|
6715
6718
|
// src/protocol/frames.ts
|
|
6716
6719
|
function isRecord(v) {
|
|
@@ -6856,8 +6859,10 @@ var AGENT_EVENT_TYPE_NAMES = [
|
|
|
6856
6859
|
// noop-safe: 事件无载荷且现行 reducer 即直接 return——丢弃与处理零差异
|
|
6857
6860
|
"activity",
|
|
6858
6861
|
// noop-safe: 纯活性信号,双侧 reducer 恒 no-op(协议语义见 AgentEvent 头注),丢弃零差异
|
|
6859
|
-
"error"
|
|
6862
|
+
"error",
|
|
6860
6863
|
// noop-safe: 旧宿主 default 分支零写入——丢弃仅缺 lastError 诊断留痕,已写状态不回滚
|
|
6864
|
+
"armed"
|
|
6865
|
+
// noop-safe: 旧宿主无武装等待窗消费点(fail-fast 属宿主新增逻辑),丢弃仅缺武装留痕,schema 强制第一道防线(引擎自查断言)不受损
|
|
6861
6866
|
];
|
|
6862
6867
|
|
|
6863
6868
|
// src/protocol/schema.ts
|
|
@@ -7243,6 +7248,38 @@ function safeKill(child, signal) {
|
|
|
7243
7248
|
);
|
|
7244
7249
|
}
|
|
7245
7250
|
}
|
|
7251
|
+
function probePidAlive(pid) {
|
|
7252
|
+
try {
|
|
7253
|
+
process.kill(pid, 0);
|
|
7254
|
+
return true;
|
|
7255
|
+
} catch (err) {
|
|
7256
|
+
if (err.code === "ESRCH") return false;
|
|
7257
|
+
return void 0;
|
|
7258
|
+
}
|
|
7259
|
+
}
|
|
7260
|
+
function killPidChain(pid, opts = {}) {
|
|
7261
|
+
const graceMs = opts.graceMs ?? DEFAULT_KILL_GRACE_MS;
|
|
7262
|
+
signalPid(pid, "SIGTERM");
|
|
7263
|
+
const escalation = setTimeout(() => {
|
|
7264
|
+
if (probePidAlive(pid) === false) return;
|
|
7265
|
+
if (opts.note !== void 0) {
|
|
7266
|
+
logger.warn(
|
|
7267
|
+
`[kill-chain] ${opts.note} still alive ${graceMs / MS_PER_SECOND}s after SIGTERM, escalating to SIGKILL (pid ${pid})`
|
|
7268
|
+
);
|
|
7269
|
+
}
|
|
7270
|
+
signalPid(pid, "SIGKILL");
|
|
7271
|
+
}, graceMs);
|
|
7272
|
+
if (typeof escalation.unref === "function") escalation.unref();
|
|
7273
|
+
}
|
|
7274
|
+
function signalPid(pid, signal) {
|
|
7275
|
+
try {
|
|
7276
|
+
process.kill(pid, signal);
|
|
7277
|
+
} catch (err) {
|
|
7278
|
+
logger.debug(
|
|
7279
|
+
`[kill-chain] ${signal} to pid ${pid} failed (already dead = expected): ${toErrorMessage(err)}`
|
|
7280
|
+
);
|
|
7281
|
+
}
|
|
7282
|
+
}
|
|
7246
7283
|
function synthesizeTimeoutOutcome(task, stdoutTail, engineId) {
|
|
7247
7284
|
return {
|
|
7248
7285
|
content: "",
|
|
@@ -7491,6 +7528,11 @@ function updateFromEvent(record, event) {
|
|
|
7491
7528
|
// ── activity:纯活性信号,reducer no-op(协议语义见 contract-types)──
|
|
7492
7529
|
case "activity":
|
|
7493
7530
|
return;
|
|
7531
|
+
// ── armed:武装确认回执([D3 协议版 P6],协议语义见 contract-types)——监控
|
|
7532
|
+
// 信号不进 record 投影,消费方 = 宿主等待门 + run 事件 journal(C3 第④步
|
|
7533
|
+
// 双侧 reducer no-op 义务的 SDK 侧)
|
|
7534
|
+
case "armed":
|
|
7535
|
+
return;
|
|
7494
7536
|
default: {
|
|
7495
7537
|
const _exhaustive = event;
|
|
7496
7538
|
return _exhaustive;
|
|
@@ -7824,6 +7866,7 @@ function buildOutboundChildEnv(opts) {
|
|
|
7824
7866
|
// src/spawn.ts
|
|
7825
7867
|
var import_node_child_process = require("child_process");
|
|
7826
7868
|
var logger4 = getLogger("engine-sdk/spawn");
|
|
7869
|
+
var ENGINE_ABORT_KILL_GRACE_MS = 3e4;
|
|
7827
7870
|
var FORBIDDEN_OPTION_KEYS = ["detached", "stdio", "stdin", "windowsHide"];
|
|
7828
7871
|
function spawnEngineChild(opts) {
|
|
7829
7872
|
for (const key of FORBIDDEN_OPTION_KEYS) {
|
|
@@ -7844,7 +7887,12 @@ function spawnEngineChild(opts) {
|
|
|
7844
7887
|
opts.signal.addEventListener(
|
|
7845
7888
|
"abort",
|
|
7846
7889
|
() => {
|
|
7847
|
-
child
|
|
7890
|
+
safeKill(child, "SIGCONT");
|
|
7891
|
+
void killChain(child, {
|
|
7892
|
+
graceMs: ENGINE_ABORT_KILL_GRACE_MS,
|
|
7893
|
+
unrefTimers: true,
|
|
7894
|
+
escalationNote: `engine child (pid ${child.pid ?? "unknown"}) abort`
|
|
7895
|
+
});
|
|
7848
7896
|
},
|
|
7849
7897
|
{ once: true }
|
|
7850
7898
|
);
|
|
@@ -8192,6 +8240,34 @@ function readRelayForwardEnv(env) {
|
|
|
8192
8240
|
return { socket, node, script };
|
|
8193
8241
|
}
|
|
8194
8242
|
|
|
8243
|
+
// src/relay-frames.ts
|
|
8244
|
+
var RELAY_FRAME_KINDS = {
|
|
8245
|
+
handshake: "handshake",
|
|
8246
|
+
accept: "accept",
|
|
8247
|
+
reject: "reject",
|
|
8248
|
+
data: "data",
|
|
8249
|
+
exit: "exit",
|
|
8250
|
+
/**
|
|
8251
|
+
* goodbye(代理 → runtime,v1):代理被宿主终止(SIGTERM/SIGINT)前的预告帧——
|
|
8252
|
+
* 宿主侧的正常收割(agent_settled 后杀代理)与异常断连(宿主崩溃/主 pi 死)在
|
|
8253
|
+
* runtime 侧都表现为 socket close,无法区分;goodbye 让正常收割显式自报,runtime
|
|
8254
|
+
* 据此把后续 close 的日志从 warn(kill-on-disconnect)降级为 info(reaped,正常
|
|
8255
|
+
* teardown)。kill 行为本身不变(预告后 child 仍由 runtime 收割)。
|
|
8256
|
+
*/
|
|
8257
|
+
goodbye: "goodbye"
|
|
8258
|
+
};
|
|
8259
|
+
var RELAY_FRAME_DIRS = {
|
|
8260
|
+
down: "down",
|
|
8261
|
+
up: "up",
|
|
8262
|
+
upStderr: "up-stderr"
|
|
8263
|
+
};
|
|
8264
|
+
var RELAY_REJECT_REASONS = {
|
|
8265
|
+
version: "version",
|
|
8266
|
+
identity: "identity",
|
|
8267
|
+
duplicate: "duplicate",
|
|
8268
|
+
malformed: "malformed"
|
|
8269
|
+
};
|
|
8270
|
+
|
|
8195
8271
|
// src/best-effort.ts
|
|
8196
8272
|
var logger5 = getLogger("subagents");
|
|
8197
8273
|
function bestEffort(err, context, level = "debug") {
|
|
@@ -8298,12 +8374,11 @@ function runEngineCliEntry(opts) {
|
|
|
8298
8374
|
DEFAULT_NATIVE_INTERRUPT_GRACE_MS,
|
|
8299
8375
|
DEFAULT_STDERR_KEEP_DAYS,
|
|
8300
8376
|
DEFAULT_STDERR_MAX_BYTES,
|
|
8377
|
+
ENGINE_ABORT_KILL_GRACE_MS,
|
|
8301
8378
|
ENGINE_ENV_DENY_LIST,
|
|
8302
8379
|
ENGINE_ENV_L0_INFRA_KEYS,
|
|
8303
8380
|
ENGINE_ENV_PREFIXES,
|
|
8304
8381
|
ENGINE_ERROR_CODE_PREFIX,
|
|
8305
|
-
ENGINE_EVENT_COALESCE_DEFAULT,
|
|
8306
|
-
ENGINE_EVENT_COALESCE_ENV,
|
|
8307
8382
|
ENGINE_HOST_REQUEST_TIMEOUT_ENV,
|
|
8308
8383
|
ENGINE_NODE_ENV,
|
|
8309
8384
|
ENGINE_PROTOCOL_ERROR_CODES,
|
|
@@ -8324,7 +8399,10 @@ function runEngineCliEntry(opts) {
|
|
|
8324
8399
|
RELAY_ENV_SESSION_ID,
|
|
8325
8400
|
RELAY_ENV_SOCKET,
|
|
8326
8401
|
RELAY_EXIT_CODES,
|
|
8402
|
+
RELAY_FRAME_DIRS,
|
|
8403
|
+
RELAY_FRAME_KINDS,
|
|
8327
8404
|
RELAY_PROTOCOL_VERSION,
|
|
8405
|
+
RELAY_REJECT_REASONS,
|
|
8328
8406
|
REVERSE_CHANNELS,
|
|
8329
8407
|
REVERSE_CHANNEL_TIMEOUT_CLASS,
|
|
8330
8408
|
REVERSE_REQUEST_TIMEOUT_MS,
|
|
@@ -8370,10 +8448,12 @@ function runEngineCliEntry(opts) {
|
|
|
8370
8448
|
isReverseRequestFrame,
|
|
8371
8449
|
isUiResponse,
|
|
8372
8450
|
killChain,
|
|
8451
|
+
killPidChain,
|
|
8373
8452
|
notificationFrameSchema,
|
|
8374
8453
|
parseChannel,
|
|
8375
8454
|
parseCtxModel,
|
|
8376
8455
|
probeNodeExecutor,
|
|
8456
|
+
probePidAlive,
|
|
8377
8457
|
protocolErrorSchema,
|
|
8378
8458
|
pumpNdjsonLines,
|
|
8379
8459
|
readRelayForwardEnv,
|
|
@@ -8392,6 +8472,7 @@ function runEngineCliEntry(opts) {
|
|
|
8392
8472
|
rotateStderrLogIfNeeded,
|
|
8393
8473
|
runEngineCliEntry,
|
|
8394
8474
|
runSessionParamsSchema,
|
|
8475
|
+
safeKill,
|
|
8395
8476
|
sanitizeSeg,
|
|
8396
8477
|
schemaEmulationFailedDetail,
|
|
8397
8478
|
sessionIdFromHandle,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
export { CANCEL_SETTLE_GRACE_MS, CRASH_REBUILD_BACKOFF_MS, CRASH_REBUILD_MAX_ATTEMPTS, CancelParams, CancelResult, DisposeParams, DisposeResult,
|
|
2
|
-
export {
|
|
3
|
-
export { A as AGENT_EVENT_TYPE_NAMES, a as AgentCallOpts, b as AgentEvent, c as AgentEventTypeName, d as AgentFailureKind, e as AgentOutcome, f as AgentOutcomeUsage, g as AgentUsage, h as AgentUsageTotal, i as AssertMutuallyAssignable, E as EngineCapabilities, j as EngineHandleData, I as InternalToolCall, M as ModelCatalogEntry, P as ProbeReport, R as ReplayedTurn, k as ResumeAnchor, S as SessionView, T as ToolCall, l as ToolCallEntry, m as ToolCallResult, n as Turn, W as WorktreeHandle } from './contract-types-DaULkdpG.cjs';
|
|
1
|
+
export { CANCEL_SETTLE_GRACE_MS, CRASH_REBUILD_BACKOFF_MS, CRASH_REBUILD_MAX_ATTEMPTS, CancelParams, CancelResult, DisposeParams, DisposeResult, ENGINE_ERROR_CODE_PREFIX, ENGINE_PROTOCOL_ERROR_CODES, ENGINE_PROTOCOL_SCHEMAS, ENGINE_PROTOCOL_VERSION, ENGINE_TIMEOUT_RECOVERY, EngineProtocolErrorCode, EngineSdkError, ErrorResponseFrame, EventNotificationParams, FORBIDDEN_CREDENTIAL_KEY_FRAGMENTS, HANDSHAKE_TIMEOUT_MS, HostAskUserParams, HostAskUserResult, HostChildSpawnedParams, HostChildStateChangedParams, HostHandleReadyParams, HostLogParams, HostStreamDeltaParams, InitializeParams, InitializeResult, ListModelsParams, ListModelsResult, NotificationFrame, PROTOCOL_METHODS, PingParams, PingResult, ProbeParams, ProtocolError, ProtocolMethod, ProtocolParamsMap, ProtocolResultMap, REVERSE_CHANNELS, REVERSE_CHANNEL_TIMEOUT_CLASS, REVERSE_REQUEST_TIMEOUT_MS, ReadParams, RequestFrame, ResponseFrame, ReverseChannel, ReverseRequestFrame, ReverseRequestTimeoutClass, ReverseResponseResult, RunContextParams, RunParams, RunResult, RunResumeParams, STDERR_TAIL_CHARS, STDOUT_TAIL_ECHO_CHARS, SUPPORTED_PROTOCOL_RANGE, SuccessResponseFrame, ValidateModelParams, ValidateModelResult, assertChatConversationSupported, engineConversationUnsupportedError, engineProtocolMismatchError, engineTimeoutDetail, errorResponseFrameSchema, isEngineErrorPassthroughCode, isEngineProtocolErrorCode, isNotificationFrame, isProtocolVersionCompatible, isRequestFrame, isResponseFrame, isReverseRequestFrame, notificationFrameSchema, protocolErrorSchema, requestFrameSchema, reverseRequestFrameSchema, runSessionParamsSchema, schemaEmulationFailedDetail, successResponseFrameSchema } from './protocol/index.cjs';
|
|
2
|
+
export { A as AGENT_EVENT_TYPE_NAMES, a as AgentCallOpts, b as AgentEvent, c as AgentEventTypeName, d as AgentFailureKind, e as AgentOutcome, f as AgentOutcomeUsage, g as AgentUsage, h as AgentUsageTotal, i as AssertMutuallyAssignable, E as EngineCapabilities, j as EngineHandleData, k as EngineProcessModel, I as InternalToolCall, M as ModelCatalogEntry, P as ProbeReport, R as ReplayedTurn, l as ResumeAnchor, S as SessionView, T as ToolCall, m as ToolCallEntry, n as ToolCallResult, o as Turn, W as WorktreeHandle } from './contract-types-DiWyGRXr.cjs';
|
|
4
3
|
export { SCHEMA_EMULATION_TAIL_CHARS, StructuredOutputResult, buildSchemaEmulationSegment, extractAndValidateStructuredOutput } from './schema-emulation.cjs';
|
|
5
4
|
export { ExecutionNestingContext, ExecutionNestingState, NESTED_SPAWN_ENV, NestedSpawnRejectedError, SpawnEnv, assertNotNestedSpawn, buildNestedSpawnEnv } from './nesting-guard.cjs';
|
|
6
5
|
export { CoreLogger, LogLevel, LoggerSink, configureLoggerSink, getLogger, resetLoggerSinkForTests } from './logger.cjs';
|
|
7
|
-
export { DEFAULT_KILL_GRACE_MS, DEFAULT_NATIVE_INTERRUPT_GRACE_MS, HOST_TIMEOUT_ABORT_REASON, KillChainOptions, KillableChild, abortWithFallback, killChain, synthesizeTimeoutOutcome } from './kill-chain.cjs';
|
|
6
|
+
export { DEFAULT_KILL_GRACE_MS, DEFAULT_NATIVE_INTERRUPT_GRACE_MS, HOST_TIMEOUT_ABORT_REASON, KillChainOptions, KillableChild, PidChainOptions, abortWithFallback, killChain, killPidChain, probePidAlive, safeKill, synthesizeTimeoutOutcome } from './kill-chain.cjs';
|
|
8
7
|
export { ReplayRecordView, aggregateUsage, createReplayRecord, eventsToSessionView, sessionIdFromHandle, toReplayedTurn, updateFromEvent } from './journal-replay.cjs';
|
|
9
8
|
export { TAIJI_DATA_DIR_ENV, resetDataDirWarnForTests, resolveEngineDataDir } from './data-dir.cjs';
|
|
10
9
|
export { resolveEngineDir, resolveEnginesRoot, resolveJournalPath, resolvePoolDir, sanitizeSeg } from './paths.cjs';
|
|
11
10
|
export { UiMethod, UiRequest, UiRequestHandler, UiResponse, isUiResponse } from './ui-types.cjs';
|
|
12
11
|
export { ChannelHandler, ExtensionUiRequestLike, ParsedChannel, UiChannelRegistry, createUiChannelRegistry, parseChannel } from './ui-channels.cjs';
|
|
13
12
|
export { BuildOutboundChildEnvOptions, ENGINE_ENV_DENY_LIST, ENGINE_ENV_L0_INFRA_KEYS, ENGINE_ENV_PREFIXES, EngineChildEnvOptions, EngineRelayEnv, buildEngineChildEnv, buildOutboundChildEnv } from './env.cjs';
|
|
14
|
-
export { DEFAULT_ENGINE_HOST_REQUEST_TIMEOUT_MS, ENGINE_HOST_REQUEST_TIMEOUT_ENV, EngineChildEnv, EngineSelfDestructOptions, ReverseRequestClock, SpawnEngineChildOptions, armEngineSelfDestruct, pumpNdjsonLines, spawnEngineChild } from './spawn.cjs';
|
|
13
|
+
export { DEFAULT_ENGINE_HOST_REQUEST_TIMEOUT_MS, ENGINE_ABORT_KILL_GRACE_MS, ENGINE_HOST_REQUEST_TIMEOUT_ENV, EngineChildEnv, EngineSelfDestructOptions, ReverseRequestClock, SpawnEngineChildOptions, armEngineSelfDestruct, pumpNdjsonLines, spawnEngineChild } from './spawn.cjs';
|
|
15
14
|
export { ENGINE_NODE_ENV, EngineNodeHostKind, EngineNodeLaunch, EngineNodeLaunchOptions, hostKindOf, probeNodeExecutor, resetEngineNodeProbeCache, resolveEngineNodeLaunch } from './node-executor.cjs';
|
|
16
15
|
export { CleanupResult, DEFAULT_STDERR_KEEP_DAYS, DEFAULT_STDERR_MAX_BYTES, StderrRotationParams, cleanupSiblingStderrLogs, cleanupStaleStderrLogs, isPidAlive, rotateStderrLogIfNeeded, stderrLogPathFor, stderrLogPidOf, stderrRotationParams } from './logs/stderr-rotation.cjs';
|
|
17
16
|
export { ZCODE_HOST_DB_SUFFIX, ZCODE_ISOLATED_DB_SEGMENTS } from './zcode-db-paths.cjs';
|
|
@@ -22,3 +21,38 @@ export { replayJournal } from './journal-io.cjs';
|
|
|
22
21
|
export { EngineAgentCallOpts, EngineCtxModel, EngineHandle, EnginePort, EngineRunResult, EngineStream, RunContext, SHARED_POOL_KEY, parseCtxModel } from './port-contract.cjs';
|
|
23
22
|
export { CliProtocolServerSink, RunEngineCliEntryOptions, runEngineCliEntry } from './cli-entry.cjs';
|
|
24
23
|
import 'node:child_process';
|
|
24
|
+
|
|
25
|
+
/** 帧类型判别值(kind 字段词表)。as const 值即字面量类型——类型位置同样可用。 */
|
|
26
|
+
declare const RELAY_FRAME_KINDS: {
|
|
27
|
+
readonly handshake: "handshake";
|
|
28
|
+
readonly accept: "accept";
|
|
29
|
+
readonly reject: "reject";
|
|
30
|
+
readonly data: "data";
|
|
31
|
+
readonly exit: "exit";
|
|
32
|
+
/**
|
|
33
|
+
* goodbye(代理 → runtime,v1):代理被宿主终止(SIGTERM/SIGINT)前的预告帧——
|
|
34
|
+
* 宿主侧的正常收割(agent_settled 后杀代理)与异常断连(宿主崩溃/主 pi 死)在
|
|
35
|
+
* runtime 侧都表现为 socket close,无法区分;goodbye 让正常收割显式自报,runtime
|
|
36
|
+
* 据此把后续 close 的日志从 warn(kill-on-disconnect)降级为 info(reaped,正常
|
|
37
|
+
* teardown)。kill 行为本身不变(预告后 child 仍由 runtime 收割)。
|
|
38
|
+
*/
|
|
39
|
+
readonly goodbye: "goodbye";
|
|
40
|
+
};
|
|
41
|
+
/** 数据泵方向(data 帧 dir 字段词表)。 */
|
|
42
|
+
declare const RELAY_FRAME_DIRS: {
|
|
43
|
+
readonly down: "down";
|
|
44
|
+
readonly up: "up";
|
|
45
|
+
readonly upStderr: "up-stderr";
|
|
46
|
+
};
|
|
47
|
+
/** reject 帧 reason 词表(runtime→代理的拒绝理由;代理对 version 以退出码 10 应答)。 */
|
|
48
|
+
declare const RELAY_REJECT_REASONS: {
|
|
49
|
+
readonly version: "version";
|
|
50
|
+
readonly identity: "identity";
|
|
51
|
+
readonly duplicate: "duplicate";
|
|
52
|
+
readonly malformed: "malformed";
|
|
53
|
+
};
|
|
54
|
+
type RelayFrameKind = (typeof RELAY_FRAME_KINDS)[keyof typeof RELAY_FRAME_KINDS];
|
|
55
|
+
type RelayFrameDir = (typeof RELAY_FRAME_DIRS)[keyof typeof RELAY_FRAME_DIRS];
|
|
56
|
+
type RelayRejectReason = (typeof RELAY_REJECT_REASONS)[keyof typeof RELAY_REJECT_REASONS];
|
|
57
|
+
|
|
58
|
+
export { RELAY_FRAME_DIRS, RELAY_FRAME_KINDS, RELAY_REJECT_REASONS, type RelayFrameDir, type RelayFrameKind, type RelayRejectReason };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
export { CANCEL_SETTLE_GRACE_MS, CRASH_REBUILD_BACKOFF_MS, CRASH_REBUILD_MAX_ATTEMPTS, CancelParams, CancelResult, DisposeParams, DisposeResult,
|
|
2
|
-
export {
|
|
3
|
-
export { A as AGENT_EVENT_TYPE_NAMES, a as AgentCallOpts, b as AgentEvent, c as AgentEventTypeName, d as AgentFailureKind, e as AgentOutcome, f as AgentOutcomeUsage, g as AgentUsage, h as AgentUsageTotal, i as AssertMutuallyAssignable, E as EngineCapabilities, j as EngineHandleData, I as InternalToolCall, M as ModelCatalogEntry, P as ProbeReport, R as ReplayedTurn, k as ResumeAnchor, S as SessionView, T as ToolCall, l as ToolCallEntry, m as ToolCallResult, n as Turn, W as WorktreeHandle } from './contract-types-DaULkdpG.js';
|
|
1
|
+
export { CANCEL_SETTLE_GRACE_MS, CRASH_REBUILD_BACKOFF_MS, CRASH_REBUILD_MAX_ATTEMPTS, CancelParams, CancelResult, DisposeParams, DisposeResult, ENGINE_ERROR_CODE_PREFIX, ENGINE_PROTOCOL_ERROR_CODES, ENGINE_PROTOCOL_SCHEMAS, ENGINE_PROTOCOL_VERSION, ENGINE_TIMEOUT_RECOVERY, EngineProtocolErrorCode, EngineSdkError, ErrorResponseFrame, EventNotificationParams, FORBIDDEN_CREDENTIAL_KEY_FRAGMENTS, HANDSHAKE_TIMEOUT_MS, HostAskUserParams, HostAskUserResult, HostChildSpawnedParams, HostChildStateChangedParams, HostHandleReadyParams, HostLogParams, HostStreamDeltaParams, InitializeParams, InitializeResult, ListModelsParams, ListModelsResult, NotificationFrame, PROTOCOL_METHODS, PingParams, PingResult, ProbeParams, ProtocolError, ProtocolMethod, ProtocolParamsMap, ProtocolResultMap, REVERSE_CHANNELS, REVERSE_CHANNEL_TIMEOUT_CLASS, REVERSE_REQUEST_TIMEOUT_MS, ReadParams, RequestFrame, ResponseFrame, ReverseChannel, ReverseRequestFrame, ReverseRequestTimeoutClass, ReverseResponseResult, RunContextParams, RunParams, RunResult, RunResumeParams, STDERR_TAIL_CHARS, STDOUT_TAIL_ECHO_CHARS, SUPPORTED_PROTOCOL_RANGE, SuccessResponseFrame, ValidateModelParams, ValidateModelResult, assertChatConversationSupported, engineConversationUnsupportedError, engineProtocolMismatchError, engineTimeoutDetail, errorResponseFrameSchema, isEngineErrorPassthroughCode, isEngineProtocolErrorCode, isNotificationFrame, isProtocolVersionCompatible, isRequestFrame, isResponseFrame, isReverseRequestFrame, notificationFrameSchema, protocolErrorSchema, requestFrameSchema, reverseRequestFrameSchema, runSessionParamsSchema, schemaEmulationFailedDetail, successResponseFrameSchema } from './protocol/index.js';
|
|
2
|
+
export { A as AGENT_EVENT_TYPE_NAMES, a as AgentCallOpts, b as AgentEvent, c as AgentEventTypeName, d as AgentFailureKind, e as AgentOutcome, f as AgentOutcomeUsage, g as AgentUsage, h as AgentUsageTotal, i as AssertMutuallyAssignable, E as EngineCapabilities, j as EngineHandleData, k as EngineProcessModel, I as InternalToolCall, M as ModelCatalogEntry, P as ProbeReport, R as ReplayedTurn, l as ResumeAnchor, S as SessionView, T as ToolCall, m as ToolCallEntry, n as ToolCallResult, o as Turn, W as WorktreeHandle } from './contract-types-DiWyGRXr.js';
|
|
4
3
|
export { SCHEMA_EMULATION_TAIL_CHARS, StructuredOutputResult, buildSchemaEmulationSegment, extractAndValidateStructuredOutput } from './schema-emulation.js';
|
|
5
4
|
export { ExecutionNestingContext, ExecutionNestingState, NESTED_SPAWN_ENV, NestedSpawnRejectedError, SpawnEnv, assertNotNestedSpawn, buildNestedSpawnEnv } from './nesting-guard.js';
|
|
6
5
|
export { CoreLogger, LogLevel, LoggerSink, configureLoggerSink, getLogger, resetLoggerSinkForTests } from './logger.js';
|
|
7
|
-
export { DEFAULT_KILL_GRACE_MS, DEFAULT_NATIVE_INTERRUPT_GRACE_MS, HOST_TIMEOUT_ABORT_REASON, KillChainOptions, KillableChild, abortWithFallback, killChain, synthesizeTimeoutOutcome } from './kill-chain.js';
|
|
6
|
+
export { DEFAULT_KILL_GRACE_MS, DEFAULT_NATIVE_INTERRUPT_GRACE_MS, HOST_TIMEOUT_ABORT_REASON, KillChainOptions, KillableChild, PidChainOptions, abortWithFallback, killChain, killPidChain, probePidAlive, safeKill, synthesizeTimeoutOutcome } from './kill-chain.js';
|
|
8
7
|
export { ReplayRecordView, aggregateUsage, createReplayRecord, eventsToSessionView, sessionIdFromHandle, toReplayedTurn, updateFromEvent } from './journal-replay.js';
|
|
9
8
|
export { TAIJI_DATA_DIR_ENV, resetDataDirWarnForTests, resolveEngineDataDir } from './data-dir.js';
|
|
10
9
|
export { resolveEngineDir, resolveEnginesRoot, resolveJournalPath, resolvePoolDir, sanitizeSeg } from './paths.js';
|
|
11
10
|
export { UiMethod, UiRequest, UiRequestHandler, UiResponse, isUiResponse } from './ui-types.js';
|
|
12
11
|
export { ChannelHandler, ExtensionUiRequestLike, ParsedChannel, UiChannelRegistry, createUiChannelRegistry, parseChannel } from './ui-channels.js';
|
|
13
12
|
export { BuildOutboundChildEnvOptions, ENGINE_ENV_DENY_LIST, ENGINE_ENV_L0_INFRA_KEYS, ENGINE_ENV_PREFIXES, EngineChildEnvOptions, EngineRelayEnv, buildEngineChildEnv, buildOutboundChildEnv } from './env.js';
|
|
14
|
-
export { DEFAULT_ENGINE_HOST_REQUEST_TIMEOUT_MS, ENGINE_HOST_REQUEST_TIMEOUT_ENV, EngineChildEnv, EngineSelfDestructOptions, ReverseRequestClock, SpawnEngineChildOptions, armEngineSelfDestruct, pumpNdjsonLines, spawnEngineChild } from './spawn.js';
|
|
13
|
+
export { DEFAULT_ENGINE_HOST_REQUEST_TIMEOUT_MS, ENGINE_ABORT_KILL_GRACE_MS, ENGINE_HOST_REQUEST_TIMEOUT_ENV, EngineChildEnv, EngineSelfDestructOptions, ReverseRequestClock, SpawnEngineChildOptions, armEngineSelfDestruct, pumpNdjsonLines, spawnEngineChild } from './spawn.js';
|
|
15
14
|
export { ENGINE_NODE_ENV, EngineNodeHostKind, EngineNodeLaunch, EngineNodeLaunchOptions, hostKindOf, probeNodeExecutor, resetEngineNodeProbeCache, resolveEngineNodeLaunch } from './node-executor.js';
|
|
16
15
|
export { CleanupResult, DEFAULT_STDERR_KEEP_DAYS, DEFAULT_STDERR_MAX_BYTES, StderrRotationParams, cleanupSiblingStderrLogs, cleanupStaleStderrLogs, isPidAlive, rotateStderrLogIfNeeded, stderrLogPathFor, stderrLogPidOf, stderrRotationParams } from './logs/stderr-rotation.js';
|
|
17
16
|
export { ZCODE_HOST_DB_SUFFIX, ZCODE_ISOLATED_DB_SEGMENTS } from './zcode-db-paths.js';
|
|
@@ -22,3 +21,38 @@ export { replayJournal } from './journal-io.js';
|
|
|
22
21
|
export { EngineAgentCallOpts, EngineCtxModel, EngineHandle, EnginePort, EngineRunResult, EngineStream, RunContext, SHARED_POOL_KEY, parseCtxModel } from './port-contract.js';
|
|
23
22
|
export { CliProtocolServerSink, RunEngineCliEntryOptions, runEngineCliEntry } from './cli-entry.js';
|
|
24
23
|
import 'node:child_process';
|
|
24
|
+
|
|
25
|
+
/** 帧类型判别值(kind 字段词表)。as const 值即字面量类型——类型位置同样可用。 */
|
|
26
|
+
declare const RELAY_FRAME_KINDS: {
|
|
27
|
+
readonly handshake: "handshake";
|
|
28
|
+
readonly accept: "accept";
|
|
29
|
+
readonly reject: "reject";
|
|
30
|
+
readonly data: "data";
|
|
31
|
+
readonly exit: "exit";
|
|
32
|
+
/**
|
|
33
|
+
* goodbye(代理 → runtime,v1):代理被宿主终止(SIGTERM/SIGINT)前的预告帧——
|
|
34
|
+
* 宿主侧的正常收割(agent_settled 后杀代理)与异常断连(宿主崩溃/主 pi 死)在
|
|
35
|
+
* runtime 侧都表现为 socket close,无法区分;goodbye 让正常收割显式自报,runtime
|
|
36
|
+
* 据此把后续 close 的日志从 warn(kill-on-disconnect)降级为 info(reaped,正常
|
|
37
|
+
* teardown)。kill 行为本身不变(预告后 child 仍由 runtime 收割)。
|
|
38
|
+
*/
|
|
39
|
+
readonly goodbye: "goodbye";
|
|
40
|
+
};
|
|
41
|
+
/** 数据泵方向(data 帧 dir 字段词表)。 */
|
|
42
|
+
declare const RELAY_FRAME_DIRS: {
|
|
43
|
+
readonly down: "down";
|
|
44
|
+
readonly up: "up";
|
|
45
|
+
readonly upStderr: "up-stderr";
|
|
46
|
+
};
|
|
47
|
+
/** reject 帧 reason 词表(runtime→代理的拒绝理由;代理对 version 以退出码 10 应答)。 */
|
|
48
|
+
declare const RELAY_REJECT_REASONS: {
|
|
49
|
+
readonly version: "version";
|
|
50
|
+
readonly identity: "identity";
|
|
51
|
+
readonly duplicate: "duplicate";
|
|
52
|
+
readonly malformed: "malformed";
|
|
53
|
+
};
|
|
54
|
+
type RelayFrameKind = (typeof RELAY_FRAME_KINDS)[keyof typeof RELAY_FRAME_KINDS];
|
|
55
|
+
type RelayFrameDir = (typeof RELAY_FRAME_DIRS)[keyof typeof RELAY_FRAME_DIRS];
|
|
56
|
+
type RelayRejectReason = (typeof RELAY_REJECT_REASONS)[keyof typeof RELAY_REJECT_REASONS];
|
|
57
|
+
|
|
58
|
+
export { RELAY_FRAME_DIRS, RELAY_FRAME_KINDS, RELAY_REJECT_REASONS, type RelayFrameDir, type RelayFrameKind, type RelayRejectReason };
|
package/dist/index.js
CHANGED
|
@@ -38,18 +38,19 @@ import {
|
|
|
38
38
|
} from "./chunk-YL5W5EMV.js";
|
|
39
39
|
import {
|
|
40
40
|
DEFAULT_ENGINE_HOST_REQUEST_TIMEOUT_MS,
|
|
41
|
+
ENGINE_ABORT_KILL_GRACE_MS,
|
|
41
42
|
ENGINE_HOST_REQUEST_TIMEOUT_ENV,
|
|
42
43
|
armEngineSelfDestruct,
|
|
43
44
|
pumpNdjsonLines,
|
|
44
45
|
spawnEngineChild
|
|
45
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-HERD6RIR.js";
|
|
46
47
|
import {
|
|
47
48
|
ENGINE_NODE_ENV,
|
|
48
49
|
hostKindOf,
|
|
49
50
|
probeNodeExecutor,
|
|
50
51
|
resetEngineNodeProbeCache,
|
|
51
52
|
resolveEngineNodeLaunch
|
|
52
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-3WC36CHI.js";
|
|
53
54
|
import {
|
|
54
55
|
DEFAULT_STDERR_KEEP_DAYS,
|
|
55
56
|
DEFAULT_STDERR_MAX_BYTES,
|
|
@@ -90,7 +91,7 @@ import {
|
|
|
90
91
|
reverseRequestFrameSchema,
|
|
91
92
|
runSessionParamsSchema,
|
|
92
93
|
successResponseFrameSchema
|
|
93
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-W23PAAGX.js";
|
|
94
95
|
import {
|
|
95
96
|
SCHEMA_EMULATION_TAIL_CHARS,
|
|
96
97
|
buildSchemaEmulationSegment,
|
|
@@ -109,8 +110,11 @@ import {
|
|
|
109
110
|
HOST_TIMEOUT_ABORT_REASON,
|
|
110
111
|
abortWithFallback,
|
|
111
112
|
killChain,
|
|
113
|
+
killPidChain,
|
|
114
|
+
probePidAlive,
|
|
115
|
+
safeKill,
|
|
112
116
|
synthesizeTimeoutOutcome
|
|
113
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-RCT7L777.js";
|
|
114
118
|
import {
|
|
115
119
|
toErrorMessage
|
|
116
120
|
} from "./chunk-PYO3YR7W.js";
|
|
@@ -119,8 +123,6 @@ import {
|
|
|
119
123
|
CRASH_REBUILD_BACKOFF_MS,
|
|
120
124
|
CRASH_REBUILD_MAX_ATTEMPTS,
|
|
121
125
|
ENGINE_ERROR_CODE_PREFIX,
|
|
122
|
-
ENGINE_EVENT_COALESCE_DEFAULT,
|
|
123
|
-
ENGINE_EVENT_COALESCE_ENV,
|
|
124
126
|
ENGINE_PROTOCOL_ERROR_CODES,
|
|
125
127
|
ENGINE_PROTOCOL_VERSION,
|
|
126
128
|
ENGINE_TIMEOUT_RECOVERY,
|
|
@@ -138,7 +140,7 @@ import {
|
|
|
138
140
|
isEngineProtocolErrorCode,
|
|
139
141
|
isProtocolVersionCompatible,
|
|
140
142
|
schemaEmulationFailedDetail
|
|
141
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-SFNTX7Q3.js";
|
|
142
144
|
import {
|
|
143
145
|
aggregateUsage,
|
|
144
146
|
createReplayRecord,
|
|
@@ -146,7 +148,7 @@ import {
|
|
|
146
148
|
sessionIdFromHandle,
|
|
147
149
|
toReplayedTurn,
|
|
148
150
|
updateFromEvent
|
|
149
|
-
} from "./chunk-
|
|
151
|
+
} from "./chunk-SGAIDL63.js";
|
|
150
152
|
import {
|
|
151
153
|
TAIJI_DATA_DIR_ENV,
|
|
152
154
|
resetDataDirWarnForTests,
|
|
@@ -158,6 +160,34 @@ import {
|
|
|
158
160
|
resetLoggerSinkForTests
|
|
159
161
|
} from "./chunk-75QEMUGV.js";
|
|
160
162
|
import "./chunk-JSBRDJBE.js";
|
|
163
|
+
|
|
164
|
+
// src/relay-frames.ts
|
|
165
|
+
var RELAY_FRAME_KINDS = {
|
|
166
|
+
handshake: "handshake",
|
|
167
|
+
accept: "accept",
|
|
168
|
+
reject: "reject",
|
|
169
|
+
data: "data",
|
|
170
|
+
exit: "exit",
|
|
171
|
+
/**
|
|
172
|
+
* goodbye(代理 → runtime,v1):代理被宿主终止(SIGTERM/SIGINT)前的预告帧——
|
|
173
|
+
* 宿主侧的正常收割(agent_settled 后杀代理)与异常断连(宿主崩溃/主 pi 死)在
|
|
174
|
+
* runtime 侧都表现为 socket close,无法区分;goodbye 让正常收割显式自报,runtime
|
|
175
|
+
* 据此把后续 close 的日志从 warn(kill-on-disconnect)降级为 info(reaped,正常
|
|
176
|
+
* teardown)。kill 行为本身不变(预告后 child 仍由 runtime 收割)。
|
|
177
|
+
*/
|
|
178
|
+
goodbye: "goodbye"
|
|
179
|
+
};
|
|
180
|
+
var RELAY_FRAME_DIRS = {
|
|
181
|
+
down: "down",
|
|
182
|
+
up: "up",
|
|
183
|
+
upStderr: "up-stderr"
|
|
184
|
+
};
|
|
185
|
+
var RELAY_REJECT_REASONS = {
|
|
186
|
+
version: "version",
|
|
187
|
+
identity: "identity",
|
|
188
|
+
duplicate: "duplicate",
|
|
189
|
+
malformed: "malformed"
|
|
190
|
+
};
|
|
161
191
|
export {
|
|
162
192
|
AGENT_EVENT_TYPE_NAMES,
|
|
163
193
|
CANCEL_SETTLE_GRACE_MS,
|
|
@@ -168,12 +198,11 @@ export {
|
|
|
168
198
|
DEFAULT_NATIVE_INTERRUPT_GRACE_MS,
|
|
169
199
|
DEFAULT_STDERR_KEEP_DAYS,
|
|
170
200
|
DEFAULT_STDERR_MAX_BYTES,
|
|
201
|
+
ENGINE_ABORT_KILL_GRACE_MS,
|
|
171
202
|
ENGINE_ENV_DENY_LIST,
|
|
172
203
|
ENGINE_ENV_L0_INFRA_KEYS,
|
|
173
204
|
ENGINE_ENV_PREFIXES,
|
|
174
205
|
ENGINE_ERROR_CODE_PREFIX,
|
|
175
|
-
ENGINE_EVENT_COALESCE_DEFAULT,
|
|
176
|
-
ENGINE_EVENT_COALESCE_ENV,
|
|
177
206
|
ENGINE_HOST_REQUEST_TIMEOUT_ENV,
|
|
178
207
|
ENGINE_NODE_ENV,
|
|
179
208
|
ENGINE_PROTOCOL_ERROR_CODES,
|
|
@@ -194,7 +223,10 @@ export {
|
|
|
194
223
|
RELAY_ENV_SESSION_ID,
|
|
195
224
|
RELAY_ENV_SOCKET,
|
|
196
225
|
RELAY_EXIT_CODES,
|
|
226
|
+
RELAY_FRAME_DIRS,
|
|
227
|
+
RELAY_FRAME_KINDS,
|
|
197
228
|
RELAY_PROTOCOL_VERSION,
|
|
229
|
+
RELAY_REJECT_REASONS,
|
|
198
230
|
REVERSE_CHANNELS,
|
|
199
231
|
REVERSE_CHANNEL_TIMEOUT_CLASS,
|
|
200
232
|
REVERSE_REQUEST_TIMEOUT_MS,
|
|
@@ -240,10 +272,12 @@ export {
|
|
|
240
272
|
isReverseRequestFrame,
|
|
241
273
|
isUiResponse,
|
|
242
274
|
killChain,
|
|
275
|
+
killPidChain,
|
|
243
276
|
notificationFrameSchema,
|
|
244
277
|
parseChannel,
|
|
245
278
|
parseCtxModel,
|
|
246
279
|
probeNodeExecutor,
|
|
280
|
+
probePidAlive,
|
|
247
281
|
protocolErrorSchema,
|
|
248
282
|
pumpNdjsonLines,
|
|
249
283
|
readRelayForwardEnv,
|
|
@@ -262,6 +296,7 @@ export {
|
|
|
262
296
|
rotateStderrLogIfNeeded,
|
|
263
297
|
runEngineCliEntry,
|
|
264
298
|
runSessionParamsSchema,
|
|
299
|
+
safeKill,
|
|
265
300
|
sanitizeSeg,
|
|
266
301
|
schemaEmulationFailedDetail,
|
|
267
302
|
sessionIdFromHandle,
|
package/dist/journal-io.d.cts
CHANGED
package/dist/journal-io.d.ts
CHANGED
package/dist/journal-replay.cjs
CHANGED
|
@@ -196,6 +196,11 @@ function updateFromEvent(record, event) {
|
|
|
196
196
|
// ── activity:纯活性信号,reducer no-op(协议语义见 contract-types)──
|
|
197
197
|
case "activity":
|
|
198
198
|
return;
|
|
199
|
+
// ── armed:武装确认回执([D3 协议版 P6],协议语义见 contract-types)——监控
|
|
200
|
+
// 信号不进 record 投影,消费方 = 宿主等待门 + run 事件 journal(C3 第④步
|
|
201
|
+
// 双侧 reducer no-op 义务的 SDK 侧)
|
|
202
|
+
case "armed":
|
|
203
|
+
return;
|
|
199
204
|
default: {
|
|
200
205
|
const _exhaustive = event;
|
|
201
206
|
return _exhaustive;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { o as Turn, h as AgentUsageTotal, b as AgentEvent, S as SessionView, j as EngineHandleData, R as ReplayedTurn } from './contract-types-DiWyGRXr.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* reducer 的 record 视图(core ExecutionRecord 的结构子集:reducer 只触碰这四个字段)。
|
package/dist/journal-replay.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { o as Turn, h as AgentUsageTotal, b as AgentEvent, S as SessionView, j as EngineHandleData, R as ReplayedTurn } from './contract-types-DiWyGRXr.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* reducer 的 record 视图(core ExecutionRecord 的结构子集:reducer 只触碰这四个字段)。
|
package/dist/journal-replay.js
CHANGED
package/dist/kill-chain.cjs
CHANGED
|
@@ -23,9 +23,11 @@ __export(kill_chain_exports, {
|
|
|
23
23
|
DEFAULT_KILL_GRACE_MS: () => DEFAULT_KILL_GRACE_MS,
|
|
24
24
|
DEFAULT_NATIVE_INTERRUPT_GRACE_MS: () => DEFAULT_NATIVE_INTERRUPT_GRACE_MS,
|
|
25
25
|
HOST_TIMEOUT_ABORT_REASON: () => HOST_TIMEOUT_ABORT_REASON,
|
|
26
|
-
STDOUT_TAIL_ECHO_CHARS: () => STDOUT_TAIL_ECHO_CHARS,
|
|
27
26
|
abortWithFallback: () => abortWithFallback,
|
|
28
27
|
killChain: () => killChain,
|
|
28
|
+
killPidChain: () => killPidChain,
|
|
29
|
+
probePidAlive: () => probePidAlive,
|
|
30
|
+
safeKill: () => safeKill,
|
|
29
31
|
synthesizeTimeoutOutcome: () => synthesizeTimeoutOutcome
|
|
30
32
|
});
|
|
31
33
|
module.exports = __toCommonJS(kill_chain_exports);
|
|
@@ -131,6 +133,38 @@ function safeKill(child, signal) {
|
|
|
131
133
|
);
|
|
132
134
|
}
|
|
133
135
|
}
|
|
136
|
+
function probePidAlive(pid) {
|
|
137
|
+
try {
|
|
138
|
+
process.kill(pid, 0);
|
|
139
|
+
return true;
|
|
140
|
+
} catch (err) {
|
|
141
|
+
if (err.code === "ESRCH") return false;
|
|
142
|
+
return void 0;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function killPidChain(pid, opts = {}) {
|
|
146
|
+
const graceMs = opts.graceMs ?? DEFAULT_KILL_GRACE_MS;
|
|
147
|
+
signalPid(pid, "SIGTERM");
|
|
148
|
+
const escalation = setTimeout(() => {
|
|
149
|
+
if (probePidAlive(pid) === false) return;
|
|
150
|
+
if (opts.note !== void 0) {
|
|
151
|
+
logger.warn(
|
|
152
|
+
`[kill-chain] ${opts.note} still alive ${graceMs / MS_PER_SECOND}s after SIGTERM, escalating to SIGKILL (pid ${pid})`
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
signalPid(pid, "SIGKILL");
|
|
156
|
+
}, graceMs);
|
|
157
|
+
if (typeof escalation.unref === "function") escalation.unref();
|
|
158
|
+
}
|
|
159
|
+
function signalPid(pid, signal) {
|
|
160
|
+
try {
|
|
161
|
+
process.kill(pid, signal);
|
|
162
|
+
} catch (err) {
|
|
163
|
+
logger.debug(
|
|
164
|
+
`[kill-chain] ${signal} to pid ${pid} failed (already dead = expected): ${toErrorMessage(err)}`
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
134
168
|
function synthesizeTimeoutOutcome(task, stdoutTail, engineId) {
|
|
135
169
|
return {
|
|
136
170
|
content: "",
|
|
@@ -214,8 +248,10 @@ function raceTimeout(p, ms, unref = false) {
|
|
|
214
248
|
DEFAULT_KILL_GRACE_MS,
|
|
215
249
|
DEFAULT_NATIVE_INTERRUPT_GRACE_MS,
|
|
216
250
|
HOST_TIMEOUT_ABORT_REASON,
|
|
217
|
-
STDOUT_TAIL_ECHO_CHARS,
|
|
218
251
|
abortWithFallback,
|
|
219
252
|
killChain,
|
|
253
|
+
killPidChain,
|
|
254
|
+
probePidAlive,
|
|
255
|
+
safeKill,
|
|
220
256
|
synthesizeTimeoutOutcome
|
|
221
257
|
});
|