@xrkseek/harness 0.5.6 → 0.5.8
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/code-runtime/dist/index.js +40 -40
- package/node_modules/@xrkseek/context-fragments/README.md +34 -34
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.js +6 -3
- package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.d.ts +16 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.js +80 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +3 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +24 -11
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.js +6 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +12 -3
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +85 -33
- package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/image-offload.d.ts +20 -7
- package/node_modules/@xrkseek/core-session/dist/image-offload.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/image-offload.js +41 -12
- package/node_modules/@xrkseek/core-session/dist/image-offload.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js +7 -7
- package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +30 -30
- package/node_modules/@xrkseek/core-tools/dist/settings-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/settings-tools.js +6 -11
- package/node_modules/@xrkseek/core-tools/dist/settings-tools.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/std-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/std-tools.js +5 -8
- package/node_modules/@xrkseek/core-tools/dist/std-tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-computer-use/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-computer-use/dist/tools.js +1 -2
- package/node_modules/@xrkseek/exec-computer-use/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.js +10 -19
- package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.js +3 -5
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js +4 -2
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/search.d.ts +3 -1
- package/node_modules/@xrkseek/exec-fs/dist/search.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/search.js +13 -7
- package/node_modules/@xrkseek/exec-fs/dist/search.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/format.js +1 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +3 -5
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -1
- package/node_modules/@xrkseek/exec-lsp/dist/tools.js +1 -1
- package/node_modules/@xrkseek/exec-lsp/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.js +5 -12
- package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/bytes.d.ts +34 -1
- package/node_modules/@xrkseek/exec-shell/dist/bytes.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/bytes.js +69 -2
- package/node_modules/@xrkseek/exec-shell/dist/bytes.js.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.js +40 -11
- package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/job-view.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/job-view.js +27 -2
- package/node_modules/@xrkseek/exec-shell/dist/job-view.js.map +1 -1
- package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts +9 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-subprocess/dist/index.js +43 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.js +3 -4
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.js +3 -6
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +5 -7
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.js +2 -2
- package/node_modules/@xrkseek/exec-web/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/failure.d.ts +16 -0
- package/node_modules/@xrkseek/llm/dist/failure.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/failure.js +87 -1
- package/node_modules/@xrkseek/llm/dist/failure.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.d.ts +21 -2
- package/node_modules/@xrkseek/llm/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.js +33 -2
- package/node_modules/@xrkseek/llm/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/retry-policy.d.ts +20 -2
- package/node_modules/@xrkseek/llm/dist/retry-policy.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/retry-policy.js +48 -17
- package/node_modules/@xrkseek/llm/dist/retry-policy.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/stream-idle-timeout.d.ts +46 -0
- package/node_modules/@xrkseek/llm/dist/stream-idle-timeout.d.ts.map +1 -0
- package/node_modules/@xrkseek/llm/dist/stream-idle-timeout.js +141 -0
- package/node_modules/@xrkseek/llm/dist/stream-idle-timeout.js.map +1 -0
- package/node_modules/@xrkseek/llm-anthropic/dist/index.d.ts +9 -0
- package/node_modules/@xrkseek/llm-anthropic/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-anthropic/dist/index.js +22 -9
- package/node_modules/@xrkseek/llm-anthropic/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-gemini/dist/index.d.ts +9 -0
- package/node_modules/@xrkseek/llm-gemini/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-gemini/dist/index.js +21 -8
- package/node_modules/@xrkseek/llm-gemini/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts +9 -0
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js +21 -11
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.d.ts +10 -0
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.js +21 -8
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/server-cron/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/tools.js +1 -2
- package/node_modules/@xrkseek/server-cron/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-answer-bound.d.ts +13 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-answer-bound.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-answer-bound.js +33 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-answer-bound.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +12 -3
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +52 -8
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/durable-prompt.d.ts +14 -1
- package/node_modules/@xrkseek/server-face/dist/durable-prompt.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/durable-prompt.js +38 -3
- package/node_modules/@xrkseek/server-face/dist/durable-prompt.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/job.d.ts +8 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/job.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/job.js +16 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/job.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +48 -16
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-path.js +7 -2
- package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-stats.d.ts +15 -3
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-stats.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-stats.js +30 -9
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-stats.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +7 -4
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +136 -32
- package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +57 -5
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +43 -1
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +6 -3
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js +23 -23
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js.map +1 -1
- package/node_modules/@xrkseek/server-http/package.json +46 -46
- package/node_modules/@xrkseek/workspace/dist/skill-propose.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-propose.js +1 -2
- package/node_modules/@xrkseek/workspace/dist/skill-propose.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA8EpD,eAAO,MAAM,gBAAgB,QAG8E,CAAC;AAE5G;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA8EpD,eAAO,MAAM,gBAAgB,QAG8E,CAAC;AAE5G;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CA+J1E"}
|
|
@@ -67,9 +67,8 @@ export const CRON_PROMPT_TEXT = "Use the cronjob tool to schedule Host tasks: un
|
|
|
67
67
|
export function createCronTools(scheduler) {
|
|
68
68
|
const tool = {
|
|
69
69
|
name: "cronjob",
|
|
70
|
-
description: "Manage Host scheduled tasks
|
|
70
|
+
description: "Manage Host scheduled tasks: create|list|pause|resume|run|remove|runs. " +
|
|
71
71
|
"create needs schedule_kind (every|at|cron) and run_kind (agent|script). " +
|
|
72
|
-
"action=runs lists recent execution ledger rows (optional id + limit). " +
|
|
73
72
|
"Results can POST to a webhook or append to a file.",
|
|
74
73
|
parameters: {
|
|
75
74
|
type: "object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,WAAW,GAKZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,IAAI,CAAC,GAAY;IACxB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC;QAC9B,CAAC,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE;QACzB,CAAC,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACjE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC;SAC9D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,yCAAyC,EACzC,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAA6B;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACvD,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS;gBACnC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC1D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;SAC3D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,6CAA6C,EAC7C,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAC3B,uFAAuF;IACvF,0FAA0F;IAC1F,yGAAyG,CAAC;AAE5G;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAwB;IACtD,MAAM,IAAI,GAA4C;QACpD,IAAI,EAAE,SAAS;QACf,WAAW,EACT,yEAAyE;YACzE,0EAA0E;YAC1E,oDAAoD;QACtD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;iBACrE;gBACD,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;iBAC9B;gBACD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBAC/E,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACvD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBAC/E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvB,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;iBAClC;gBACD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC/B;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACpC,OAAO;wBACL,OAAO,EACL,IAAI,CAAC,MAAM,KAAK,CAAC;4BACf,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,IAAI;iCACD,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG;gCAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,UAAU,IAAI,GAAG,EAAE;gCAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC;iCACA,IAAI,CAAC,IAAI,CAAC;qBACpB,CAAC;gBACJ,CAAC;gBACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;oBACpC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO;4BACL,OAAO,EAAE,wDAAwD;4BACjE,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;wBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;qBACjD,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBACxE,CAAC;oBACD,OAAO;wBACL,OAAO,EAAE,IAAI;6BACV,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,KAAK,EAAE;4BAC5C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACvC,UAAU,CAAC,CAAC,WAAW,EAAE;4BACzB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACjD;6BACA,IAAI,CAAC,IAAI,CAAC;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,KAAK,GAAuB;wBAChC,QAAQ,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;wBACnC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;wBACzB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAChD,CAAC;oBACF,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1C,OAAO;wBACL,OAAO,EAAE,WAAW,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,SAAS,IAAI,MAAM,EAAE;qBAC7D,CAAC;gBACJ,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7D,CAAC;gBACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACvB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBACrC,CAAC;gBACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpC,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAC9D,CAAC;oBACD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;wBACzB,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;gBACnD,CAAC;gBACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACtC,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;wBAC9B,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC3D,CAAC;gBACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpC,OAAO;wBACL,OAAO,EAAE,GAAG;4BACV,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC;4BAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM;wBAC3C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qBACxC,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,gEAAgE;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC;QACtC,CAAC;KACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -5,4 +5,5 @@ export { FaceWireIdMaps } from "./wire-ids.js";
|
|
|
5
5
|
export { presentToolView, collectToolCallArgs, collectToolCallArgsForPage, FaceToolArgMaps, faceToolLookup, type PresentToolLookup, type ToolCallPairing, type ToolEventView, } from "./tool-view.js";
|
|
6
6
|
export { jobViews, formatJobCompletionNotice, isSettledJobStatus, JOB_COMPLETION_MAX_WAKES, type FaceJobsSource, type JobView, type JobViewStatus, } from "./job-view.js";
|
|
7
7
|
export { formatSubagentCompletionNotice, lastAssistantBodyText } from "./subagent-notice.js";
|
|
8
|
+
export { boundChildAnswer, SUBAGENT_ANSWER_INLINE_BYTES, } from "./subagent-answer-bound.js";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC"}
|
|
@@ -5,4 +5,5 @@ export { FaceWireIdMaps } from "./wire-ids.js";
|
|
|
5
5
|
export { presentToolView, collectToolCallArgs, collectToolCallArgsForPage, FaceToolArgMaps, faceToolLookup, } from "./tool-view.js";
|
|
6
6
|
export { jobViews, formatJobCompletionNotice, isSettledJobStatus, JOB_COMPLETION_MAX_WAKES, } from "./job-view.js";
|
|
7
7
|
export { formatSubagentCompletionNotice, lastAssistantBodyText } from "./subagent-notice.js";
|
|
8
|
+
export { boundChildAnswer, SUBAGENT_ANSWER_INLINE_BYTES, } from "./subagent-answer-bound.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAId,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,cAAc,GAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAIzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAId,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,cAAc,GAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAIzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline ceiling for one child's answer before it goes to a file (UTF-8
|
|
3
|
+
* bytes). Well under the loop-level tool-result ceiling (64_000) so a spilled
|
|
4
|
+
* answer never spills twice; CJK ≈ 3 bytes/char leaves ~4k chars inline.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SUBAGENT_ANSWER_INLINE_BYTES = 12000;
|
|
7
|
+
/**
|
|
8
|
+
* Long child answers become a file the parent can read: the tool result /
|
|
9
|
+
* completion notice keeps a head/tail preview plus the path (same spill store
|
|
10
|
+
* the loop uses). Short answers pass through untouched.
|
|
11
|
+
*/
|
|
12
|
+
export declare function boundChildAnswer(parentSessionId: string, childSessionId: string, text: string): string;
|
|
13
|
+
//# sourceMappingURL=subagent-answer-bound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-answer-bound.d.ts","sourceRoot":"","sources":["../../src/adapt/subagent-answer-bound.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAOnD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,MAAM,CAWR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared child→parent answer sizing: keep short answers inline; spill long
|
|
3
|
+
* ones under the same tool-outputs store the agent-loop uses.
|
|
4
|
+
*/
|
|
5
|
+
import { boundToolResultContent, parseSpillLocator, } from "@xrkseek/core-agent-loop";
|
|
6
|
+
/**
|
|
7
|
+
* Inline ceiling for one child's answer before it goes to a file (UTF-8
|
|
8
|
+
* bytes). Well under the loop-level tool-result ceiling (64_000) so a spilled
|
|
9
|
+
* answer never spills twice; CJK ≈ 3 bytes/char leaves ~4k chars inline.
|
|
10
|
+
*/
|
|
11
|
+
export const SUBAGENT_ANSWER_INLINE_BYTES = 12_000;
|
|
12
|
+
/** Imperative lead so the parent reads the file instead of re-asking. */
|
|
13
|
+
const SPILL_READ_HINT = "The child's full answer is on disk. Read it with read_file (or grep) " +
|
|
14
|
+
"before you answer — do not re-ask the child to restate it in fewer words.";
|
|
15
|
+
/**
|
|
16
|
+
* Long child answers become a file the parent can read: the tool result /
|
|
17
|
+
* completion notice keeps a head/tail preview plus the path (same spill store
|
|
18
|
+
* the loop uses). Short answers pass through untouched.
|
|
19
|
+
*/
|
|
20
|
+
export function boundChildAnswer(parentSessionId, childSessionId, text) {
|
|
21
|
+
if (!text || parseSpillLocator(text))
|
|
22
|
+
return text;
|
|
23
|
+
const bound = boundToolResultContent({
|
|
24
|
+
sessionId: parentSessionId,
|
|
25
|
+
callId: `subagent-${childSessionId}`,
|
|
26
|
+
toolName: "subagent",
|
|
27
|
+
content: text,
|
|
28
|
+
maxInlineBytes: SUBAGENT_ANSWER_INLINE_BYTES,
|
|
29
|
+
});
|
|
30
|
+
const body = typeof bound.content === "string" ? bound.content : text;
|
|
31
|
+
return bound.spilled ? `${SPILL_READ_HINT}\n\n${body}` : body;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=subagent-answer-bound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-answer-bound.js","sourceRoot":"","sources":["../../src/adapt/subagent-answer-bound.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAEnD,yEAAyE;AACzE,MAAM,eAAe,GACnB,uEAAuE;IACvE,2EAA2E,CAAC;AAE9E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,eAAuB,EACvB,cAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACnC,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,YAAY,cAAc,EAAE;QACpC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,4BAA4B;KAC7C,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SessionEvent } from "@xrkseek/protocol";
|
|
1
|
+
import type { SessionEvent, TurnEndReason } from "@xrkseek/protocol";
|
|
2
2
|
import type { FaceSubagentLink } from "../subagent-registry.js";
|
|
3
3
|
/**
|
|
4
4
|
* Child body text for parent-facing completion / tool results.
|
|
@@ -9,9 +9,18 @@ import type { FaceSubagentLink } from "../subagent-registry.js";
|
|
|
9
9
|
* Codex: reasoning never enters the parent session).
|
|
10
10
|
*/
|
|
11
11
|
export declare function lastAssistantBodyText(events: readonly SessionEvent[]): string;
|
|
12
|
+
/** Latest `turn/end.reason` on the child log (undefined when still open). */
|
|
13
|
+
export declare function lastTurnEndReason(events: readonly SessionEvent[]): TurnEndReason | undefined;
|
|
12
14
|
/**
|
|
13
15
|
* Parent inbox notice when a background (continuable) child drain goes idle.
|
|
14
|
-
*
|
|
16
|
+
* Normal idle → "finished a turn". Abnormal `turn/end` (abort / error / …)
|
|
17
|
+
* still reports back with a clear head so the parent can recover — except when
|
|
18
|
+
* Face suppressed delivery after a **user** parent Stop (cascade cancel).
|
|
19
|
+
*
|
|
20
|
+
* @param answerBody - optional already-bound child answer (see
|
|
21
|
+
* {@link boundChildAnswer}). When omitted, the raw last assistant text is
|
|
22
|
+
* inlined with **no** 2k hard clip — callers that need size control must
|
|
23
|
+
* pass a bound body so long answers spill instead of being silently cut.
|
|
15
24
|
*/
|
|
16
|
-
export declare function formatSubagentCompletionNotice(link: FaceSubagentLink, events: readonly SessionEvent[],
|
|
25
|
+
export declare function formatSubagentCompletionNotice(link: FaceSubagentLink, events: readonly SessionEvent[], answerBody?: string): string;
|
|
17
26
|
//# sourceMappingURL=subagent-notice.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-notice.d.ts","sourceRoot":"","sources":["../../src/adapt/subagent-notice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent-notice.d.ts","sourceRoot":"","sources":["../../src/adapt/subagent-notice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,MAAM,CAyBR;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,aAAa,GAAG,SAAS,CAM3B;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAaR"}
|
|
@@ -36,19 +36,63 @@ export function lastAssistantBodyText(events) {
|
|
|
36
36
|
}
|
|
37
37
|
return folded.trim();
|
|
38
38
|
}
|
|
39
|
+
/** Latest `turn/end.reason` on the child log (undefined when still open). */
|
|
40
|
+
export function lastTurnEndReason(events) {
|
|
41
|
+
for (let i = events.length - 1; i >= 0; i -= 1) {
|
|
42
|
+
const ev = events[i];
|
|
43
|
+
if (ev.type === "turn/end")
|
|
44
|
+
return ev.reason;
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
function abnormalHeadDetail(reason) {
|
|
49
|
+
if (reason.kind === "aborted") {
|
|
50
|
+
const cause = reason.reason;
|
|
51
|
+
if (cause.kind === "user")
|
|
52
|
+
return "aborted by user";
|
|
53
|
+
if (cause.kind === "parent")
|
|
54
|
+
return "aborted by parent";
|
|
55
|
+
if (cause.kind === "disposed")
|
|
56
|
+
return "aborted: session disposed";
|
|
57
|
+
if (cause.kind === "hook")
|
|
58
|
+
return `aborted by hook: ${cause.reason}`;
|
|
59
|
+
if (cause.kind === "legacy")
|
|
60
|
+
return "aborted";
|
|
61
|
+
return "aborted";
|
|
62
|
+
}
|
|
63
|
+
if (reason.kind === "error")
|
|
64
|
+
return "ended with error";
|
|
65
|
+
if (reason.kind === "interrupted")
|
|
66
|
+
return "interrupted mid-turn";
|
|
67
|
+
if (reason.kind === "max-tokens")
|
|
68
|
+
return "stopped at max tokens";
|
|
69
|
+
if (reason.kind === "blocked")
|
|
70
|
+
return "blocked";
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
39
73
|
/**
|
|
40
74
|
* Parent inbox notice when a background (continuable) child drain goes idle.
|
|
41
|
-
*
|
|
75
|
+
* Normal idle → "finished a turn". Abnormal `turn/end` (abort / error / …)
|
|
76
|
+
* still reports back with a clear head so the parent can recover — except when
|
|
77
|
+
* Face suppressed delivery after a **user** parent Stop (cascade cancel).
|
|
78
|
+
*
|
|
79
|
+
* @param answerBody - optional already-bound child answer (see
|
|
80
|
+
* {@link boundChildAnswer}). When omitted, the raw last assistant text is
|
|
81
|
+
* inlined with **no** 2k hard clip — callers that need size control must
|
|
82
|
+
* pass a bound body so long answers spill instead of being silently cut.
|
|
42
83
|
*/
|
|
43
|
-
export function formatSubagentCompletionNotice(link, events,
|
|
44
|
-
const
|
|
45
|
-
const
|
|
84
|
+
export function formatSubagentCompletionNotice(link, events, answerBody) {
|
|
85
|
+
const turnReason = lastTurnEndReason(events);
|
|
86
|
+
const abnormal = turnReason ? abnormalHeadDetail(turnReason) : undefined;
|
|
87
|
+
const head = abnormal
|
|
88
|
+
? `background subagent \`${link.childSessionId}\` (${link.label}) ended abnormally (${abnormal}).`
|
|
89
|
+
: `background subagent \`${link.childSessionId}\` (${link.label}) finished a turn.`;
|
|
90
|
+
const preview = (answerBody !== undefined
|
|
91
|
+
? answerBody
|
|
92
|
+
: lastAssistantBodyText(events)).trim();
|
|
46
93
|
const follow = "Follow up with send_message, interrupt_agent when done, or list_agents.";
|
|
47
94
|
if (!preview)
|
|
48
95
|
return `${head} ${follow}`;
|
|
49
|
-
|
|
50
|
-
? `${preview.slice(0, maxPreviewChars)}\n…`
|
|
51
|
-
: preview;
|
|
52
|
-
return `${head}\n\n${clipped}\n\n${follow}`;
|
|
96
|
+
return `${head}\n\n${preview}\n\n${follow}`;
|
|
53
97
|
}
|
|
54
98
|
//# sourceMappingURL=subagent-notice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-notice.js","sourceRoot":"","sources":["../../src/adapt/subagent-notice.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+B;IAE/B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtB,sEAAsE;YACtE,sCAAsC;YACtC,SAAS;QACX,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB;YAAE,SAAS;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;aACxC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC;QAC/B,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QAC9B,MAAM,GAAG,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"subagent-notice.js","sourceRoot":"","sources":["../../src/adapt/subagent-notice.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,10 @@ export type DurablePromptResult = {
|
|
|
26
26
|
readonly code: string;
|
|
27
27
|
readonly message: string;
|
|
28
28
|
};
|
|
29
|
+
/** Image numbering base for this message: count of images already admitted in the session. */
|
|
30
|
+
export type DurablePromptOptions = {
|
|
31
|
+
readonly imageStartIndex?: number;
|
|
32
|
+
};
|
|
29
33
|
/** True when content has a non-text part or non-whitespace text (attachment-only OK). */
|
|
30
34
|
export declare function hasPromptContent(parts: readonly PromptWirePart[]): boolean;
|
|
31
35
|
/**
|
|
@@ -33,5 +37,14 @@ export declare function hasPromptContent(parts: readonly PromptWirePart[]): bool
|
|
|
33
37
|
* - all text → string (legacy-friendly)
|
|
34
38
|
* - any image/file → ContentBlock[] after AttachmentStore admission
|
|
35
39
|
*/
|
|
36
|
-
export declare function durablePromptContent(parts: readonly PromptWirePart[], attachments: AttachmentStore): Promise<DurablePromptResult>;
|
|
40
|
+
export declare function durablePromptContent(parts: readonly PromptWirePart[], attachments: AttachmentStore, options?: DurablePromptOptions): Promise<DurablePromptResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Session-wide image numbering base for the next admit:
|
|
43
|
+
* count of durable image blocks already present in user/prompt events.
|
|
44
|
+
* Stable across restarts (derived from the event log, not runtime memory).
|
|
45
|
+
*/
|
|
46
|
+
export declare function sessionImageStartIndex(events: readonly {
|
|
47
|
+
type: string;
|
|
48
|
+
content?: unknown;
|
|
49
|
+
}[]): number;
|
|
37
50
|
//# sourceMappingURL=durable-prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-prompt.d.ts","sourceRoot":"","sources":["../src/durable-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACvD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAI1E;AAoBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,WAAW,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"durable-prompt.d.ts","sourceRoot":"","sources":["../src/durable-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACvD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,8FAA8F;AAC9F,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAI1E;AAoBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAsJ9B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GACrD,MAAM,CAeR"}
|
|
@@ -31,7 +31,7 @@ function mapAttachmentError(err) {
|
|
|
31
31
|
* - all text → string (legacy-friendly)
|
|
32
32
|
* - any image/file → ContentBlock[] after AttachmentStore admission
|
|
33
33
|
*/
|
|
34
|
-
export async function durablePromptContent(parts, attachments) {
|
|
34
|
+
export async function durablePromptContent(parts, attachments, options = {}) {
|
|
35
35
|
if (parts.length === 0) {
|
|
36
36
|
return { ok: false, code: "invalid-payload", message: "content required" };
|
|
37
37
|
}
|
|
@@ -141,14 +141,49 @@ export async function durablePromptContent(parts, attachments) {
|
|
|
141
141
|
continue;
|
|
142
142
|
}
|
|
143
143
|
if (p.kind === "image") {
|
|
144
|
-
|
|
144
|
+
const ref = imageRefs[imageIndex++];
|
|
145
|
+
const imageNo = (options.imageStartIndex ?? 0) + imageIndex;
|
|
146
|
+
blocks.push({
|
|
147
|
+
type: "text",
|
|
148
|
+
text: `[图${imageNo} ${ref.attachmentId}(${ref.width}×${ref.height} ${ref.mediaType})。视觉模型直接看块;若未渲染或需细看,用 read_image file_path=attachment:${ref.attachmentId} 读取]`,
|
|
149
|
+
});
|
|
150
|
+
blocks.push({ type: "image", attachment: ref });
|
|
145
151
|
continue;
|
|
146
152
|
}
|
|
147
|
-
|
|
153
|
+
const ref = fileRefs[fileIndex++];
|
|
154
|
+
blocks.push({
|
|
155
|
+
type: "text",
|
|
156
|
+
text: `[文件附件 ${ref.name}(${ref.attachmentId})。需内容时用 read_file 按 id 读取]`,
|
|
157
|
+
});
|
|
158
|
+
blocks.push({ type: "file", attachment: ref });
|
|
148
159
|
}
|
|
149
160
|
if (blocks.length === 0) {
|
|
150
161
|
return { ok: false, code: "invalid-payload", message: "empty content" };
|
|
151
162
|
}
|
|
152
163
|
return { ok: true, content: blocks };
|
|
153
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Session-wide image numbering base for the next admit:
|
|
167
|
+
* count of durable image blocks already present in user/prompt events.
|
|
168
|
+
* Stable across restarts (derived from the event log, not runtime memory).
|
|
169
|
+
*/
|
|
170
|
+
export function sessionImageStartIndex(events) {
|
|
171
|
+
let count = 0;
|
|
172
|
+
for (const ev of events) {
|
|
173
|
+
if (ev.type !== "user/message" && ev.type !== "prompt/admitted")
|
|
174
|
+
continue;
|
|
175
|
+
const content = ev.content;
|
|
176
|
+
if (typeof content !== "object" || content === null)
|
|
177
|
+
continue;
|
|
178
|
+
const blocks = content;
|
|
179
|
+
if (!Array.isArray(blocks))
|
|
180
|
+
continue;
|
|
181
|
+
for (const block of blocks) {
|
|
182
|
+
if (block?.type === "image" && typeof block.attachment?.attachmentId === "string") {
|
|
183
|
+
count += 1;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return count;
|
|
188
|
+
}
|
|
154
189
|
//# sourceMappingURL=durable-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-prompt.js","sourceRoot":"","sources":["../src/durable-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"durable-prompt.js","sourceRoot":"","sources":["../src/durable-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
import { type ShellService } from "@xrkseek/exec-shell";
|
|
1
2
|
import { type FaceHandler } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Stop every live job owned by `sessionId` (best-effort).
|
|
5
|
+
* Turn abort only cancels work still bound to the current tool signal —
|
|
6
|
+
* yielded / backgrounded bash keeps running unless we kill here, which is
|
|
7
|
+
* why Stop had to be clicked repeatedly while toasts kept floating.
|
|
8
|
+
*/
|
|
9
|
+
export declare function killLiveSessionJobs(shell: ShellService | undefined, sessionId: string): void;
|
|
2
10
|
export declare const jobKill: FaceHandler;
|
|
3
11
|
export declare const jobBackground: FaceHandler;
|
|
4
12
|
//# sourceMappingURL=job.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/handlers/job.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/handlers/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AA4BxD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAChB,IAAI,CAON;AAUD,eAAO,MAAM,OAAO,EAAE,WAkBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WA2B3B,CAAC"}
|
|
@@ -19,6 +19,22 @@ function scopedShell(shell, sessionId) {
|
|
|
19
19
|
return undefined;
|
|
20
20
|
return createSessionScopedShell(shell, sessionId);
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Stop every live job owned by `sessionId` (best-effort).
|
|
24
|
+
* Turn abort only cancels work still bound to the current tool signal —
|
|
25
|
+
* yielded / backgrounded bash keeps running unless we kill here, which is
|
|
26
|
+
* why Stop had to be clicked repeatedly while toasts kept floating.
|
|
27
|
+
*/
|
|
28
|
+
export function killLiveSessionJobs(shell, sessionId) {
|
|
29
|
+
const scoped = scopedShell(shell, sessionId);
|
|
30
|
+
if (!scoped)
|
|
31
|
+
return;
|
|
32
|
+
for (const job of scoped.listJobsNow()) {
|
|
33
|
+
if (job.status !== "running" && job.status !== "stopping")
|
|
34
|
+
continue;
|
|
35
|
+
void scoped.killJob(job.id, "session-cancel").catch(() => undefined);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
22
38
|
const jobHostUnavailable = {
|
|
23
39
|
ok: false,
|
|
24
40
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/handlers/job.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAExD,SAAS,cAAc,CAAC,OAAgB;IAItC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,8BAA8B;aACxC;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAClB,KAA+B,EAC/B,SAAiB;IAEjB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,KAAc;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,sBAA+B;QACrC,OAAO,EAAE,iCAAiC;KAC3C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAgB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,kBAAkB,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,MAAM,CAAC,KAAK;gBACrB,OAAO,EAAE,MAAM;aAChB;SACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,kBAAkB,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,MAAM,CAAC,KAAK;oBACrB,OAAO,EAAE,MAAM;iBAChB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAa,EAAE,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,MAAM,CAAC,KAAK;gBACrB,OAAO,EAAE,MAAM;aAChB;SACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/handlers/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AA4CxD,eAAO,MAAM,aAAa,EAAE,WAoI3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WA8CzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAkF5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAI3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WA8J3B,CAAC;AAcF,eAAO,MAAM,aAAa,EAAE,WA+D3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAkF3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAc3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAUhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAmJzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAwCpC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAkC3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAiLhC,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,WAmB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,WA6CjC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdmitNotPendingError, listPendingAdmits, readSessionEvents, sessionEventCount, withdrawAdmit, } from "@xrkseek/core-session";
|
|
2
|
-
import { flattenText } from "@xrkseek/protocol";
|
|
2
|
+
import { flattenText, parseTurnEndCancelCause, } from "@xrkseek/protocol";
|
|
3
3
|
import { FACE_AGENT_PRESET_IDS, canonicalAgentPresetId, resolveAgentPresetProfile, } from "../presets-catalog.js";
|
|
4
4
|
import { toWireHistoryEntry, collectToolCallArgsForPage, routeFromRequestHeader } from "../adapt/index.js";
|
|
5
5
|
import { rewritePendingAdmit } from "../update-queue-rewrite.js";
|
|
@@ -8,8 +8,9 @@ import { tryFaceSlashCommand } from "../slash.js";
|
|
|
8
8
|
import { commitPlanMode } from "../plan-mode.js";
|
|
9
9
|
import { SessionTitleInvalidError } from "../projections/index.js";
|
|
10
10
|
import { parseSearchQuery, searchSessions } from "../session-search.js";
|
|
11
|
-
import { durablePromptContent, hasPromptContent, } from "../durable-prompt.js";
|
|
11
|
+
import { durablePromptContent, hasPromptContent, sessionImageStartIndex, } from "../durable-prompt.js";
|
|
12
12
|
import { asRecord } from "./types.js";
|
|
13
|
+
import { killLiveSessionJobs } from "./job.js";
|
|
13
14
|
import { publishSessionAdded } from "./session-added.js";
|
|
14
15
|
import { defaultPermissionPreset, pinInitialPermission, } from "../permissions.js";
|
|
15
16
|
import { resolveDefaultAgentPreset } from "../settings-document.js";
|
|
@@ -374,7 +375,10 @@ export const sessionPrompt = async (runtime, rpcId, payload) => {
|
|
|
374
375
|
}
|
|
375
376
|
let admitContent;
|
|
376
377
|
if (hasAttachment) {
|
|
377
|
-
const
|
|
378
|
+
const startIndex = sessionImageStartIndex(readSessionEvents(runtime.store, sessionId));
|
|
379
|
+
const durable = await durablePromptContent(parts, runtime.attachments, {
|
|
380
|
+
imageStartIndex: startIndex,
|
|
381
|
+
});
|
|
378
382
|
if (!durable.ok) {
|
|
379
383
|
return {
|
|
380
384
|
ok: false,
|
|
@@ -413,6 +417,18 @@ export const sessionPrompt = async (runtime, rpcId, payload) => {
|
|
|
413
417
|
runtime.drain.wake(sessionId);
|
|
414
418
|
return { ok: true, value: { accepted: true } };
|
|
415
419
|
};
|
|
420
|
+
/**
|
|
421
|
+
* Resolve cancel cause from Face payload; bare Stop defaults to `user`.
|
|
422
|
+
* Live `agent.abort` only accepts {@link AgentCancelCause} — `legacy` is a
|
|
423
|
+
* durable turn/end fallback, so map it to `user` for the latch.
|
|
424
|
+
*/
|
|
425
|
+
function cancelCauseFromPayload(payload) {
|
|
426
|
+
const raw = asRecord(payload).cause;
|
|
427
|
+
if (raw === undefined)
|
|
428
|
+
return { kind: "user" };
|
|
429
|
+
const cause = parseTurnEndCancelCause(raw);
|
|
430
|
+
return cause.kind === "legacy" ? { kind: "user" } : cause;
|
|
431
|
+
}
|
|
416
432
|
export const sessionCancel = async (runtime, _rpcId, payload) => {
|
|
417
433
|
const sessionId = String(asRecord(payload).sessionId ?? "");
|
|
418
434
|
if (!sessionId) {
|
|
@@ -421,6 +437,7 @@ export const sessionCancel = async (runtime, _rpcId, payload) => {
|
|
|
421
437
|
error: { code: "invalid-payload", message: "sessionId required" },
|
|
422
438
|
};
|
|
423
439
|
}
|
|
440
|
+
const cause = cancelCauseFromPayload(payload);
|
|
424
441
|
// 1) Optimistic running:false — published *before* the drain join so a
|
|
425
442
|
// stuck tool (git snapshot, hung LLM call) can never pin the UI to
|
|
426
443
|
// "running" forever. publishDrainIdle re-publishes false after the
|
|
@@ -435,28 +452,42 @@ export const sessionCancel = async (runtime, _rpcId, payload) => {
|
|
|
435
452
|
// same abort signal path via continueTurn).
|
|
436
453
|
try {
|
|
437
454
|
const agent = await runtime.resolveAgent(sessionId);
|
|
438
|
-
agent.abort(
|
|
455
|
+
agent.abort(cause);
|
|
439
456
|
}
|
|
440
457
|
catch {
|
|
441
458
|
/* ignore */
|
|
442
459
|
}
|
|
443
|
-
// 2)
|
|
444
|
-
//
|
|
445
|
-
//
|
|
446
|
-
//
|
|
460
|
+
// 2) Kill yielded / background shell jobs for this session. Turn abort
|
|
461
|
+
// alone leaves them alive (signal was only wired while the tool wait
|
|
462
|
+
// owned them), which resurfaces as Stop needing multiple clicks and
|
|
463
|
+
// floating "background job finished" toasts.
|
|
464
|
+
killLiveSessionJobs(runtime.shell, sessionId);
|
|
465
|
+
// 3) Cascade to delegated children (fire-and-forget) — **user Stop only**.
|
|
466
|
+
// A parent turn that completes on its own must NOT cancel background
|
|
467
|
+
// children (they keep draining and still report natural / abnormal idle).
|
|
468
|
+
// Manual parent Stop: stop the tree, stamp cause.kind "parent", and
|
|
469
|
+
// suppressOwnedSubagentCompletion *before* child cancel so cancel→idle
|
|
470
|
+
// does not steer a "finished a turn" notice with truncated body back
|
|
471
|
+
// (interrupt_agent already suppresses; Stop cascade must match).
|
|
447
472
|
const cascade = asRecord(payload).cascade !== false;
|
|
448
473
|
if (cascade) {
|
|
449
474
|
for (const link of runtime.subagents.listDelegated(sessionId)) {
|
|
450
|
-
|
|
475
|
+
runtime.suppressOwnedSubagentCompletion(link.childSessionId);
|
|
476
|
+
void sessionCancel(runtime, `tool-sa-c-${link.childSessionId}`, {
|
|
477
|
+
sessionId: link.childSessionId,
|
|
478
|
+
cascade: true,
|
|
479
|
+
cause: { kind: "parent" },
|
|
480
|
+
}).catch(() => undefined);
|
|
451
481
|
}
|
|
452
482
|
}
|
|
453
|
-
//
|
|
454
|
-
//
|
|
455
|
-
//
|
|
456
|
-
|
|
457
|
-
|
|
483
|
+
// 4) Bounded drain join in the background. Returning accepted here unblocks
|
|
484
|
+
// the client Stop click immediately; Host already published running:false
|
|
485
|
+
// and aborted the turn. The latch keeps its entry on timeout so a message
|
|
486
|
+
// admitted during teardown still drains once the stuck chain settles.
|
|
487
|
+
void runtime.drain.cancel(sessionId, {
|
|
488
|
+
cause,
|
|
458
489
|
timeoutMs: SESSION_CANCEL_JOIN_MS,
|
|
459
|
-
});
|
|
490
|
+
}).catch(() => undefined);
|
|
460
491
|
return { ok: true, value: { accepted: true } };
|
|
461
492
|
};
|
|
462
493
|
/**
|
|
@@ -862,7 +893,8 @@ export const sessionUpdateQueue = async (runtime, _rpcId, payload) => {
|
|
|
862
893
|
},
|
|
863
894
|
};
|
|
864
895
|
}
|
|
865
|
-
const
|
|
896
|
+
const startIndex = sessionImageStartIndex(readSessionEvents(runtime.store, sessionId));
|
|
897
|
+
const durable = await durablePromptContent(parts, runtime.attachments, { imageStartIndex: startIndex });
|
|
866
898
|
if (!durable.ok) {
|
|
867
899
|
return {
|
|
868
900
|
ok: false,
|