@agents-ensemble/core 0.0.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/LICENSE +21 -0
- package/dist/acp/acp-bridge.d.ts +42 -0
- package/dist/acp/acp-bridge.d.ts.map +1 -0
- package/dist/acp/acp-bridge.js +73 -0
- package/dist/acp/acp-bridge.js.map +1 -0
- package/dist/acp/acp-client.d.ts +45 -0
- package/dist/acp/acp-client.d.ts.map +1 -0
- package/dist/acp/acp-client.js +171 -0
- package/dist/acp/acp-client.js.map +1 -0
- package/dist/acp/acp-process.d.ts +33 -0
- package/dist/acp/acp-process.d.ts.map +1 -0
- package/dist/acp/acp-process.js +49 -0
- package/dist/acp/acp-process.js.map +1 -0
- package/dist/acp/json-rpc-peer.d.ts +31 -0
- package/dist/acp/json-rpc-peer.d.ts.map +1 -0
- package/dist/acp/json-rpc-peer.js +78 -0
- package/dist/acp/json-rpc-peer.js.map +1 -0
- package/dist/acp/json-rpc.d.ts +36 -0
- package/dist/acp/json-rpc.d.ts.map +1 -0
- package/dist/acp/json-rpc.js +46 -0
- package/dist/acp/json-rpc.js.map +1 -0
- package/dist/acp/process-stream-capture.d.ts +18 -0
- package/dist/acp/process-stream-capture.d.ts.map +1 -0
- package/dist/acp/process-stream-capture.js +48 -0
- package/dist/acp/process-stream-capture.js.map +1 -0
- package/dist/acp/testing/fake-acp-server.d.ts +45 -0
- package/dist/acp/testing/fake-acp-server.d.ts.map +1 -0
- package/dist/acp/testing/fake-acp-server.js +156 -0
- package/dist/acp/testing/fake-acp-server.js.map +1 -0
- package/dist/acp/testing/stream-pair.d.ts +10 -0
- package/dist/acp/testing/stream-pair.d.ts.map +1 -0
- package/dist/acp/testing/stream-pair.js +13 -0
- package/dist/acp/testing/stream-pair.js.map +1 -0
- package/dist/acp/types.d.ts +40 -0
- package/dist/acp/types.d.ts.map +1 -0
- package/dist/acp/types.js +5 -0
- package/dist/acp/types.js.map +1 -0
- package/dist/conductor/build-conductor-follow-up-prompt.d.ts +20 -0
- package/dist/conductor/build-conductor-follow-up-prompt.d.ts.map +1 -0
- package/dist/conductor/build-conductor-follow-up-prompt.js +17 -0
- package/dist/conductor/build-conductor-follow-up-prompt.js.map +1 -0
- package/dist/conductor/build-conductor-prompt.d.ts +22 -0
- package/dist/conductor/build-conductor-prompt.d.ts.map +1 -0
- package/dist/conductor/build-conductor-prompt.js +18 -0
- package/dist/conductor/build-conductor-prompt.js.map +1 -0
- package/dist/conductor/conductor-agent.d.ts +35 -0
- package/dist/conductor/conductor-agent.d.ts.map +1 -0
- package/dist/conductor/conductor-agent.js +90 -0
- package/dist/conductor/conductor-agent.js.map +1 -0
- package/dist/conductor/conductor-auth.d.ts +29 -0
- package/dist/conductor/conductor-auth.d.ts.map +1 -0
- package/dist/conductor/conductor-auth.js +80 -0
- package/dist/conductor/conductor-auth.js.map +1 -0
- package/dist/conductor/conductor-send-reconnect.d.ts +17 -0
- package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -0
- package/dist/conductor/conductor-send-reconnect.js +21 -0
- package/dist/conductor/conductor-send-reconnect.js.map +1 -0
- package/dist/conductor/conductor-session-driver.d.ts +75 -0
- package/dist/conductor/conductor-session-driver.d.ts.map +1 -0
- package/dist/conductor/conductor-session-driver.js +230 -0
- package/dist/conductor/conductor-session-driver.js.map +1 -0
- package/dist/conductor/conductor-session-loop.d.ts +6 -0
- package/dist/conductor/conductor-session-loop.d.ts.map +1 -0
- package/dist/conductor/conductor-session-loop.js +6 -0
- package/dist/conductor/conductor-session-loop.js.map +1 -0
- package/dist/conductor/conductor-session.d.ts +109 -0
- package/dist/conductor/conductor-session.d.ts.map +1 -0
- package/dist/conductor/conductor-session.js +579 -0
- package/dist/conductor/conductor-session.js.map +1 -0
- package/dist/conductor/conductor-tool-name.d.ts +4 -0
- package/dist/conductor/conductor-tool-name.d.ts.map +1 -0
- package/dist/conductor/conductor-tool-name.js +10 -0
- package/dist/conductor/conductor-tool-name.js.map +1 -0
- package/dist/conductor/configure-cursor-sdk-env.d.ts +12 -0
- package/dist/conductor/configure-cursor-sdk-env.d.ts.map +1 -0
- package/dist/conductor/configure-cursor-sdk-env.js +64 -0
- package/dist/conductor/configure-cursor-sdk-env.js.map +1 -0
- package/dist/conductor/dispatch-tools.d.ts +19 -0
- package/dist/conductor/dispatch-tools.d.ts.map +1 -0
- package/dist/conductor/dispatch-tools.js +209 -0
- package/dist/conductor/dispatch-tools.js.map +1 -0
- package/dist/conductor/issue-loop.d.ts +7 -0
- package/dist/conductor/issue-loop.d.ts.map +1 -0
- package/dist/conductor/issue-loop.js +6 -0
- package/dist/conductor/issue-loop.js.map +1 -0
- package/dist/conductor/issue-session.d.ts +5 -0
- package/dist/conductor/issue-session.d.ts.map +1 -0
- package/dist/conductor/issue-session.js +5 -0
- package/dist/conductor/issue-session.js.map +1 -0
- package/dist/conductor/list-conductor-models.d.ts +7 -0
- package/dist/conductor/list-conductor-models.d.ts.map +1 -0
- package/dist/conductor/list-conductor-models.js +16 -0
- package/dist/conductor/list-conductor-models.js.map +1 -0
- package/dist/conductor/operator-exit.d.ts +3 -0
- package/dist/conductor/operator-exit.d.ts.map +1 -0
- package/dist/conductor/operator-exit.js +6 -0
- package/dist/conductor/operator-exit.js.map +1 -0
- package/dist/conductor/operator-input-binding.d.ts +20 -0
- package/dist/conductor/operator-input-binding.d.ts.map +1 -0
- package/dist/conductor/operator-input-binding.js +2 -0
- package/dist/conductor/operator-input-binding.js.map +1 -0
- package/dist/conductor/operator-post-loop-gate.d.ts +10 -0
- package/dist/conductor/operator-post-loop-gate.d.ts.map +1 -0
- package/dist/conductor/operator-post-loop-gate.js +28 -0
- package/dist/conductor/operator-post-loop-gate.js.map +1 -0
- package/dist/conductor/prompt/compile-conductor-prompt.d.ts +6 -0
- package/dist/conductor/prompt/compile-conductor-prompt.d.ts.map +1 -0
- package/dist/conductor/prompt/compile-conductor-prompt.js +14 -0
- package/dist/conductor/prompt/compile-conductor-prompt.js.map +1 -0
- package/dist/conductor/prompt/format-session-summaries.d.ts +7 -0
- package/dist/conductor/prompt/format-session-summaries.d.ts.map +1 -0
- package/dist/conductor/prompt/format-session-summaries.js +31 -0
- package/dist/conductor/prompt/format-session-summaries.js.map +1 -0
- package/dist/conductor/prompt/materials.d.ts +8 -0
- package/dist/conductor/prompt/materials.d.ts.map +1 -0
- package/dist/conductor/prompt/materials.js +23 -0
- package/dist/conductor/prompt/materials.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-base-module.d.ts +5 -0
- package/dist/conductor/prompt/modules/conductor-base-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-base-module.js +45 -0
- package/dist/conductor/prompt/modules/conductor-base-module.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-follow-up-module.d.ts +6 -0
- package/dist/conductor/prompt/modules/conductor-follow-up-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-follow-up-module.js +15 -0
- package/dist/conductor/prompt/modules/conductor-follow-up-module.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-human-guidance-module.d.ts +4 -0
- package/dist/conductor/prompt/modules/conductor-human-guidance-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-human-guidance-module.js +22 -0
- package/dist/conductor/prompt/modules/conductor-human-guidance-module.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-initial-module.d.ts +4 -0
- package/dist/conductor/prompt/modules/conductor-initial-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-initial-module.js +12 -0
- package/dist/conductor/prompt/modules/conductor-initial-module.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-system-module.d.ts +4 -0
- package/dist/conductor/prompt/modules/conductor-system-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-system-module.js +28 -0
- package/dist/conductor/prompt/modules/conductor-system-module.js.map +1 -0
- package/dist/conductor/prompt/modules/conductor-turn-module.d.ts +5 -0
- package/dist/conductor/prompt/modules/conductor-turn-module.d.ts.map +1 -0
- package/dist/conductor/prompt/modules/conductor-turn-module.js +71 -0
- package/dist/conductor/prompt/modules/conductor-turn-module.js.map +1 -0
- package/dist/conductor/prompt/types.d.ts +31 -0
- package/dist/conductor/prompt/types.d.ts.map +1 -0
- package/dist/conductor/prompt/types.js +9 -0
- package/dist/conductor/prompt/types.js.map +1 -0
- package/dist/conductor/resolve-conductor-model-id.d.ts +12 -0
- package/dist/conductor/resolve-conductor-model-id.d.ts.map +1 -0
- package/dist/conductor/resolve-conductor-model-id.js +23 -0
- package/dist/conductor/resolve-conductor-model-id.js.map +1 -0
- package/dist/conductor/session/format-session-event.d.ts +6 -0
- package/dist/conductor/session/format-session-event.d.ts.map +1 -0
- package/dist/conductor/session/format-session-event.js +99 -0
- package/dist/conductor/session/format-session-event.js.map +1 -0
- package/dist/conductor/session/select-dispatch-batch.d.ts +41 -0
- package/dist/conductor/session/select-dispatch-batch.d.ts.map +1 -0
- package/dist/conductor/session/select-dispatch-batch.js +143 -0
- package/dist/conductor/session/select-dispatch-batch.js.map +1 -0
- package/dist/conductor/session/session-event-queue.d.ts +35 -0
- package/dist/conductor/session/session-event-queue.d.ts.map +1 -0
- package/dist/conductor/session/session-event-queue.js +99 -0
- package/dist/conductor/session/session-event-queue.js.map +1 -0
- package/dist/conductor/session/session-event.d.ts +28 -0
- package/dist/conductor/session/session-event.d.ts.map +1 -0
- package/dist/conductor/session/session-event.js +8 -0
- package/dist/conductor/session/session-event.js.map +1 -0
- package/dist/conductor/session/session-logger.d.ts +151 -0
- package/dist/conductor/session/session-logger.d.ts.map +1 -0
- package/dist/conductor/session/session-logger.js +86 -0
- package/dist/conductor/session/session-logger.js.map +1 -0
- package/dist/conductor/session-policy.d.ts +45 -0
- package/dist/conductor/session-policy.d.ts.map +1 -0
- package/dist/conductor/session-policy.js +78 -0
- package/dist/conductor/session-policy.js.map +1 -0
- package/dist/conductor/submit-operator-input.d.ts +17 -0
- package/dist/conductor/submit-operator-input.d.ts.map +1 -0
- package/dist/conductor/submit-operator-input.js +38 -0
- package/dist/conductor/submit-operator-input.js.map +1 -0
- package/dist/conductor/testing/test-operator-input-binding.d.ts +16 -0
- package/dist/conductor/testing/test-operator-input-binding.d.ts.map +1 -0
- package/dist/conductor/testing/test-operator-input-binding.js +29 -0
- package/dist/conductor/testing/test-operator-input-binding.js.map +1 -0
- package/dist/dispatch/attach-worker.d.ts +31 -0
- package/dist/dispatch/attach-worker.d.ts.map +1 -0
- package/dist/dispatch/attach-worker.js +49 -0
- package/dist/dispatch/attach-worker.js.map +1 -0
- package/dist/dispatch/librarian-dispatch.d.ts +22 -0
- package/dist/dispatch/librarian-dispatch.d.ts.map +1 -0
- package/dist/dispatch/librarian-dispatch.js +35 -0
- package/dist/dispatch/librarian-dispatch.js.map +1 -0
- package/dist/dispatch/prompt-worker-tool.d.ts +8 -0
- package/dist/dispatch/prompt-worker-tool.d.ts.map +1 -0
- package/dist/dispatch/prompt-worker-tool.js +60 -0
- package/dist/dispatch/prompt-worker-tool.js.map +1 -0
- package/dist/dispatch/reviewer-dispatch.d.ts +23 -0
- package/dist/dispatch/reviewer-dispatch.d.ts.map +1 -0
- package/dist/dispatch/reviewer-dispatch.js +43 -0
- package/dist/dispatch/reviewer-dispatch.js.map +1 -0
- package/dist/dispatch/session-usage-tool.d.ts +8 -0
- package/dist/dispatch/session-usage-tool.d.ts.map +1 -0
- package/dist/dispatch/session-usage-tool.js +67 -0
- package/dist/dispatch/session-usage-tool.js.map +1 -0
- package/dist/dispatch/worker-acp-session.d.ts +43 -0
- package/dist/dispatch/worker-acp-session.d.ts.map +1 -0
- package/dist/dispatch/worker-acp-session.js +64 -0
- package/dist/dispatch/worker-acp-session.js.map +1 -0
- package/dist/dispatch/worker-dispatch.d.ts +23 -0
- package/dist/dispatch/worker-dispatch.d.ts.map +1 -0
- package/dist/dispatch/worker-dispatch.js +15 -0
- package/dist/dispatch/worker-dispatch.js.map +1 -0
- package/dist/dispatch/worker-status-tool.d.ts +10 -0
- package/dist/dispatch/worker-status-tool.d.ts.map +1 -0
- package/dist/dispatch/worker-status-tool.js +74 -0
- package/dist/dispatch/worker-status-tool.js.map +1 -0
- package/dist/escalation/answer-open-question-tool.d.ts +8 -0
- package/dist/escalation/answer-open-question-tool.d.ts.map +1 -0
- package/dist/escalation/answer-open-question-tool.js +84 -0
- package/dist/escalation/answer-open-question-tool.js.map +1 -0
- package/dist/escalation/apply-operator-message.d.ts +13 -0
- package/dist/escalation/apply-operator-message.d.ts.map +1 -0
- package/dist/escalation/apply-operator-message.js +32 -0
- package/dist/escalation/apply-operator-message.js.map +1 -0
- package/dist/escalation/ask-human-tool.d.ts +8 -0
- package/dist/escalation/ask-human-tool.d.ts.map +1 -0
- package/dist/escalation/ask-human-tool.js +79 -0
- package/dist/escalation/ask-human-tool.js.map +1 -0
- package/dist/escalation/build-human-guidance-prompt.d.ts +8 -0
- package/dist/escalation/build-human-guidance-prompt.d.ts.map +1 -0
- package/dist/escalation/build-human-guidance-prompt.js +26 -0
- package/dist/escalation/build-human-guidance-prompt.js.map +1 -0
- package/dist/escalation/build-max-turns-escalation.d.ts +4 -0
- package/dist/escalation/build-max-turns-escalation.d.ts.map +1 -0
- package/dist/escalation/build-max-turns-escalation.js +22 -0
- package/dist/escalation/build-max-turns-escalation.js.map +1 -0
- package/dist/escalation/create-permission-ask-handler.d.ts +4 -0
- package/dist/escalation/create-permission-ask-handler.d.ts.map +1 -0
- package/dist/escalation/create-permission-ask-handler.js +10 -0
- package/dist/escalation/create-permission-ask-handler.js.map +1 -0
- package/dist/escalation/dialogue-log.d.ts +15 -0
- package/dist/escalation/dialogue-log.d.ts.map +1 -0
- package/dist/escalation/dialogue-log.js +29 -0
- package/dist/escalation/dialogue-log.js.map +1 -0
- package/dist/escalation/enqueue-max-turns-question.d.ts +14 -0
- package/dist/escalation/enqueue-max-turns-question.d.ts.map +1 -0
- package/dist/escalation/enqueue-max-turns-question.js +29 -0
- package/dist/escalation/enqueue-max-turns-question.js.map +1 -0
- package/dist/escalation/escalation-unavailable-error.d.ts +5 -0
- package/dist/escalation/escalation-unavailable-error.d.ts.map +1 -0
- package/dist/escalation/escalation-unavailable-error.js +8 -0
- package/dist/escalation/escalation-unavailable-error.js.map +1 -0
- package/dist/escalation/format-open-questions.d.ts +4 -0
- package/dist/escalation/format-open-questions.d.ts.map +1 -0
- package/dist/escalation/format-open-questions.js +23 -0
- package/dist/escalation/format-open-questions.js.map +1 -0
- package/dist/escalation/format-registry-update.d.ts +5 -0
- package/dist/escalation/format-registry-update.d.ts.map +1 -0
- package/dist/escalation/format-registry-update.js +16 -0
- package/dist/escalation/format-registry-update.js.map +1 -0
- package/dist/escalation/human-inquiry.d.ts +23 -0
- package/dist/escalation/human-inquiry.d.ts.map +1 -0
- package/dist/escalation/human-inquiry.js +2 -0
- package/dist/escalation/human-inquiry.js.map +1 -0
- package/dist/escalation/open-question-list-tools.d.ts +7 -0
- package/dist/escalation/open-question-list-tools.d.ts.map +1 -0
- package/dist/escalation/open-question-list-tools.js +100 -0
- package/dist/escalation/open-question-list-tools.js.map +1 -0
- package/dist/escalation/open-question-to-escalation.d.ts +4 -0
- package/dist/escalation/open-question-to-escalation.d.ts.map +1 -0
- package/dist/escalation/open-question-to-escalation.js +13 -0
- package/dist/escalation/open-question-to-escalation.js.map +1 -0
- package/dist/escalation/open-question.d.ts +53 -0
- package/dist/escalation/open-question.d.ts.map +1 -0
- package/dist/escalation/open-question.js +66 -0
- package/dist/escalation/open-question.js.map +1 -0
- package/dist/escalation/permission-inquiry.d.ts +4 -0
- package/dist/escalation/permission-inquiry.d.ts.map +1 -0
- package/dist/escalation/permission-inquiry.js +11 -0
- package/dist/escalation/permission-inquiry.js.map +1 -0
- package/dist/escalation/record-open-question-answer.d.ts +11 -0
- package/dist/escalation/record-open-question-answer.d.ts.map +1 -0
- package/dist/escalation/record-open-question-answer.js +17 -0
- package/dist/escalation/record-open-question-answer.js.map +1 -0
- package/dist/escalation/resolve-human-inquiry.d.ts +8 -0
- package/dist/escalation/resolve-human-inquiry.d.ts.map +1 -0
- package/dist/escalation/resolve-human-inquiry.js +37 -0
- package/dist/escalation/resolve-human-inquiry.js.map +1 -0
- package/dist/git/run-git.d.ts +5 -0
- package/dist/git/run-git.d.ts.map +1 -0
- package/dist/git/run-git.js +19 -0
- package/dist/git/run-git.js.map +1 -0
- package/dist/github/debounce-buffer.d.ts +22 -0
- package/dist/github/debounce-buffer.d.ts.map +1 -0
- package/dist/github/debounce-buffer.js +61 -0
- package/dist/github/debounce-buffer.js.map +1 -0
- package/dist/github/fetch-github-updates.d.ts +19 -0
- package/dist/github/fetch-github-updates.d.ts.map +1 -0
- package/dist/github/fetch-github-updates.js +274 -0
- package/dist/github/fetch-github-updates.js.map +1 -0
- package/dist/github/format-issue-context-prompt.d.ts +9 -0
- package/dist/github/format-issue-context-prompt.d.ts.map +1 -0
- package/dist/github/format-issue-context-prompt.js +53 -0
- package/dist/github/format-issue-context-prompt.js.map +1 -0
- package/dist/github/github-monitor-cursor.d.ts +21 -0
- package/dist/github/github-monitor-cursor.d.ts.map +1 -0
- package/dist/github/github-monitor-cursor.js +25 -0
- package/dist/github/github-monitor-cursor.js.map +1 -0
- package/dist/github/github-monitor.d.ts +27 -0
- package/dist/github/github-monitor.d.ts.map +1 -0
- package/dist/github/github-monitor.js +98 -0
- package/dist/github/github-monitor.js.map +1 -0
- package/dist/github/github-test-fixtures.d.ts +17 -0
- package/dist/github/github-test-fixtures.d.ts.map +1 -0
- package/dist/github/github-test-fixtures.js +23 -0
- package/dist/github/github-test-fixtures.js.map +1 -0
- package/dist/github/github-update-types.d.ts +22 -0
- package/dist/github/github-update-types.d.ts.map +1 -0
- package/dist/github/github-update-types.js +2 -0
- package/dist/github/github-update-types.js.map +1 -0
- package/dist/github/issue-context.d.ts +16 -0
- package/dist/github/issue-context.d.ts.map +1 -0
- package/dist/github/issue-context.js +26 -0
- package/dist/github/issue-context.js.map +1 -0
- package/dist/github/run-gh.d.ts +4 -0
- package/dist/github/run-gh.d.ts.map +1 -0
- package/dist/github/run-gh.js +19 -0
- package/dist/github/run-gh.js.map +1 -0
- package/dist/index.d.ts +128 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/issue/issue-ref.d.ts +9 -0
- package/dist/issue/issue-ref.d.ts.map +1 -0
- package/dist/issue/issue-ref.js +18 -0
- package/dist/issue/issue-ref.js.map +1 -0
- package/dist/issue/resolve-issue-url.d.ts +6 -0
- package/dist/issue/resolve-issue-url.d.ts.map +1 -0
- package/dist/issue/resolve-issue-url.js +46 -0
- package/dist/issue/resolve-issue-url.js.map +1 -0
- package/dist/permission/format-pending-permissions.d.ts +3 -0
- package/dist/permission/format-pending-permissions.d.ts.map +1 -0
- package/dist/permission/format-pending-permissions.js +12 -0
- package/dist/permission/format-pending-permissions.js.map +1 -0
- package/dist/permission/format-permission-summary-for-operator.d.ts +15 -0
- package/dist/permission/format-permission-summary-for-operator.d.ts.map +1 -0
- package/dist/permission/format-permission-summary-for-operator.js +89 -0
- package/dist/permission/format-permission-summary-for-operator.js.map +1 -0
- package/dist/permission/pending-permission.d.ts +17 -0
- package/dist/permission/pending-permission.d.ts.map +1 -0
- package/dist/permission/pending-permission.js +23 -0
- package/dist/permission/pending-permission.js.map +1 -0
- package/dist/permission/permission-broker.d.ts +29 -0
- package/dist/permission/permission-broker.d.ts.map +1 -0
- package/dist/permission/permission-broker.js +53 -0
- package/dist/permission/permission-broker.js.map +1 -0
- package/dist/permission/permission-pipeline.d.ts +28 -0
- package/dist/permission/permission-pipeline.d.ts.map +1 -0
- package/dist/permission/permission-pipeline.js +41 -0
- package/dist/permission/permission-pipeline.js.map +1 -0
- package/dist/permission/permission-policy.d.ts +15 -0
- package/dist/permission/permission-policy.d.ts.map +1 -0
- package/dist/permission/permission-policy.js +32 -0
- package/dist/permission/permission-policy.js.map +1 -0
- package/dist/permission/permission-request.d.ts +8 -0
- package/dist/permission/permission-request.d.ts.map +1 -0
- package/dist/permission/permission-request.js +16 -0
- package/dist/permission/permission-request.js.map +1 -0
- package/dist/permission/resolve-permission-tool.d.ts +15 -0
- package/dist/permission/resolve-permission-tool.d.ts.map +1 -0
- package/dist/permission/resolve-permission-tool.js +62 -0
- package/dist/permission/resolve-permission-tool.js.map +1 -0
- package/dist/profile/load-profile.d.ts +35 -0
- package/dist/profile/load-profile.d.ts.map +1 -0
- package/dist/profile/load-profile.js +139 -0
- package/dist/profile/load-profile.js.map +1 -0
- package/dist/profile/types.d.ts +70 -0
- package/dist/profile/types.d.ts.map +1 -0
- package/dist/profile/types.js +61 -0
- package/dist/profile/types.js.map +1 -0
- package/dist/profiles/default/conductor.md +35 -0
- package/dist/profiles/default/implementer.md +17 -0
- package/dist/profiles/default/profile.yaml +22 -0
- package/dist/profiles/default/reviewer.md +18 -0
- package/dist/profiles/default/team.md +345 -0
- package/dist/prompt/build-prompt.d.ts +14 -0
- package/dist/prompt/build-prompt.d.ts.map +1 -0
- package/dist/prompt/build-prompt.js +16 -0
- package/dist/prompt/build-prompt.js.map +1 -0
- package/dist/prompt/build-worker-attach-prompt.d.ts +12 -0
- package/dist/prompt/build-worker-attach-prompt.d.ts.map +1 -0
- package/dist/prompt/build-worker-attach-prompt.js +32 -0
- package/dist/prompt/build-worker-attach-prompt.js.map +1 -0
- package/dist/prompt/build-worker-prompt.d.ts +11 -0
- package/dist/prompt/build-worker-prompt.d.ts.map +1 -0
- package/dist/prompt/build-worker-prompt.js +22 -0
- package/dist/prompt/build-worker-prompt.js.map +1 -0
- package/dist/prompt/compile-system-prompt.d.ts +12 -0
- package/dist/prompt/compile-system-prompt.d.ts.map +1 -0
- package/dist/prompt/compile-system-prompt.js +21 -0
- package/dist/prompt/compile-system-prompt.js.map +1 -0
- package/dist/prompt/contexts/kind.d.ts +14 -0
- package/dist/prompt/contexts/kind.d.ts.map +1 -0
- package/dist/prompt/contexts/kind.js +12 -0
- package/dist/prompt/contexts/kind.js.map +1 -0
- package/dist/prompt/issue-context-material.d.ts +5 -0
- package/dist/prompt/issue-context-material.d.ts.map +1 -0
- package/dist/prompt/issue-context-material.js +10 -0
- package/dist/prompt/issue-context-material.js.map +1 -0
- package/dist/prompt/modules/bootstrap.d.ts +5 -0
- package/dist/prompt/modules/bootstrap.d.ts.map +1 -0
- package/dist/prompt/modules/bootstrap.js +6 -0
- package/dist/prompt/modules/bootstrap.js.map +1 -0
- package/dist/prompt/modules/default-agent-module.d.ts +10 -0
- package/dist/prompt/modules/default-agent-module.d.ts.map +1 -0
- package/dist/prompt/modules/default-agent-module.js +19 -0
- package/dist/prompt/modules/default-agent-module.js.map +1 -0
- package/dist/prompt/modules/ensemble/base-module.d.ts +9 -0
- package/dist/prompt/modules/ensemble/base-module.d.ts.map +1 -0
- package/dist/prompt/modules/ensemble/base-module.js +70 -0
- package/dist/prompt/modules/ensemble/base-module.js.map +1 -0
- package/dist/prompt/modules/ensemble/conductor-base-module.d.ts +8 -0
- package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -0
- package/dist/prompt/modules/ensemble/conductor-base-module.js +96 -0
- package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -0
- package/dist/prompt/modules/ensemble/index.d.ts +12 -0
- package/dist/prompt/modules/ensemble/index.d.ts.map +1 -0
- package/dist/prompt/modules/ensemble/index.js +23 -0
- package/dist/prompt/modules/ensemble/index.js.map +1 -0
- package/dist/prompt/modules/ensemble/worker-base-module.d.ts +8 -0
- package/dist/prompt/modules/ensemble/worker-base-module.d.ts.map +1 -0
- package/dist/prompt/modules/ensemble/worker-base-module.js +17 -0
- package/dist/prompt/modules/ensemble/worker-base-module.js.map +1 -0
- package/dist/prompt/modules/librarian-module.d.ts +10 -0
- package/dist/prompt/modules/librarian-module.d.ts.map +1 -0
- package/dist/prompt/modules/librarian-module.js +16 -0
- package/dist/prompt/modules/librarian-module.js.map +1 -0
- package/dist/prompt/modules/reviewer-module.d.ts +9 -0
- package/dist/prompt/modules/reviewer-module.d.ts.map +1 -0
- package/dist/prompt/modules/reviewer-module.js +14 -0
- package/dist/prompt/modules/reviewer-module.js.map +1 -0
- package/dist/prompt/modules/shared/profile-prompt-module.d.ts +11 -0
- package/dist/prompt/modules/shared/profile-prompt-module.d.ts.map +1 -0
- package/dist/prompt/modules/shared/profile-prompt-module.js +28 -0
- package/dist/prompt/modules/shared/profile-prompt-module.js.map +1 -0
- package/dist/prompt/modules/worker-module.d.ts +12 -0
- package/dist/prompt/modules/worker-module.d.ts.map +1 -0
- package/dist/prompt/modules/worker-module.js +20 -0
- package/dist/prompt/modules/worker-module.js.map +1 -0
- package/dist/prompt/render-compiled-prompt.d.ts +4 -0
- package/dist/prompt/render-compiled-prompt.d.ts.map +1 -0
- package/dist/prompt/render-compiled-prompt.js +48 -0
- package/dist/prompt/render-compiled-prompt.js.map +1 -0
- package/dist/prompt/testing/test-profile.d.ts +5 -0
- package/dist/prompt/testing/test-profile.d.ts.map +1 -0
- package/dist/prompt/testing/test-profile.js +15 -0
- package/dist/prompt/testing/test-profile.js.map +1 -0
- package/dist/runtime/conductor-inbox.d.ts +19 -0
- package/dist/runtime/conductor-inbox.d.ts.map +1 -0
- package/dist/runtime/conductor-inbox.js +64 -0
- package/dist/runtime/conductor-inbox.js.map +1 -0
- package/dist/runtime/inbox-processor.d.ts +17 -0
- package/dist/runtime/inbox-processor.d.ts.map +1 -0
- package/dist/runtime/inbox-processor.js +37 -0
- package/dist/runtime/inbox-processor.js.map +1 -0
- package/dist/runtime/send-worker-message.d.ts +14 -0
- package/dist/runtime/send-worker-message.d.ts.map +1 -0
- package/dist/runtime/send-worker-message.js +2 -0
- package/dist/runtime/send-worker-message.js.map +1 -0
- package/dist/runtime/types.d.ts +51 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/worker-outbound-queue.d.ts +9 -0
- package/dist/runtime/worker-outbound-queue.d.ts.map +1 -0
- package/dist/runtime/worker-outbound-queue.js +11 -0
- package/dist/runtime/worker-outbound-queue.js.map +1 -0
- package/dist/runtime/worker-runtime.d.ts +53 -0
- package/dist/runtime/worker-runtime.d.ts.map +1 -0
- package/dist/runtime/worker-runtime.js +349 -0
- package/dist/runtime/worker-runtime.js.map +1 -0
- package/dist/runtime/worker-session.d.ts +49 -0
- package/dist/runtime/worker-session.d.ts.map +1 -0
- package/dist/runtime/worker-session.js +69 -0
- package/dist/runtime/worker-session.js.map +1 -0
- package/dist/runtime/worker-status.d.ts +27 -0
- package/dist/runtime/worker-status.d.ts.map +1 -0
- package/dist/runtime/worker-status.js +3 -0
- package/dist/runtime/worker-status.js.map +1 -0
- package/dist/session/session-sidecar.d.ts +54 -0
- package/dist/session/session-sidecar.d.ts.map +1 -0
- package/dist/session/session-sidecar.js +158 -0
- package/dist/session/session-sidecar.js.map +1 -0
- package/dist/usage/estimate-token-usage.d.ts +7 -0
- package/dist/usage/estimate-token-usage.d.ts.map +1 -0
- package/dist/usage/estimate-token-usage.js +18 -0
- package/dist/usage/estimate-token-usage.js.map +1 -0
- package/dist/usage/session-usage-tracker.d.ts +33 -0
- package/dist/usage/session-usage-tracker.d.ts.map +1 -0
- package/dist/usage/session-usage-tracker.js +184 -0
- package/dist/usage/session-usage-tracker.js.map +1 -0
- package/dist/usage/types.d.ts +53 -0
- package/dist/usage/types.d.ts.map +1 -0
- package/dist/usage/types.js +2 -0
- package/dist/usage/types.js.map +1 -0
- package/dist/worktree/worktree.d.ts +46 -0
- package/dist/worktree/worktree.d.ts.map +1 -0
- package/dist/worktree/worktree.js +212 -0
- package/dist/worktree/worktree.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { isConductorSendEvent } from './session-event.js';
|
|
2
|
+
import { canDispatchConductorSend } from '../session-policy.js';
|
|
3
|
+
const STATIC_SOURCE_PRIORITY = {
|
|
4
|
+
permission: 0,
|
|
5
|
+
'worker.failed': 1,
|
|
6
|
+
'worker.completed': 2,
|
|
7
|
+
github: 3,
|
|
8
|
+
};
|
|
9
|
+
/** セッションイベントの dispatch ソース key を返す。 */
|
|
10
|
+
export function eventSourceKey(event) {
|
|
11
|
+
switch (event.type) {
|
|
12
|
+
case 'operator.message':
|
|
13
|
+
return 'operator';
|
|
14
|
+
case 'permission.pending':
|
|
15
|
+
return 'permission';
|
|
16
|
+
case 'worker.completed':
|
|
17
|
+
return `worker:${event.result.name}`;
|
|
18
|
+
case 'worker.failed':
|
|
19
|
+
return `worker:${event.failure.name}`;
|
|
20
|
+
case 'github.update':
|
|
21
|
+
return 'github';
|
|
22
|
+
default: {
|
|
23
|
+
const _exhaustive = event;
|
|
24
|
+
return String(_exhaustive);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function staticEventPriority(event) {
|
|
29
|
+
switch (event.type) {
|
|
30
|
+
case 'operator.message':
|
|
31
|
+
return -1;
|
|
32
|
+
case 'permission.pending':
|
|
33
|
+
return STATIC_SOURCE_PRIORITY.permission;
|
|
34
|
+
case 'worker.failed':
|
|
35
|
+
return STATIC_SOURCE_PRIORITY['worker.failed'];
|
|
36
|
+
case 'worker.completed':
|
|
37
|
+
return STATIC_SOURCE_PRIORITY['worker.completed'];
|
|
38
|
+
case 'github.update':
|
|
39
|
+
return STATIC_SOURCE_PRIORITY.github;
|
|
40
|
+
default:
|
|
41
|
+
return Number.MAX_SAFE_INTEGER;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function isDispatchable(event, autonomousTurns, maxTurns) {
|
|
45
|
+
return (isConductorSendEvent(event) &&
|
|
46
|
+
canDispatchConductorSend(event, autonomousTurns, maxTurns));
|
|
47
|
+
}
|
|
48
|
+
function pickStaticSourceKey(queue, eligible) {
|
|
49
|
+
const keys = new Map();
|
|
50
|
+
for (const event of eligible) {
|
|
51
|
+
const key = eventSourceKey(event);
|
|
52
|
+
const firstIndex = queue.indexOf(event);
|
|
53
|
+
const priority = staticEventPriority(event);
|
|
54
|
+
const existing = keys.get(key);
|
|
55
|
+
if (!existing || firstIndex < existing.firstIndex) {
|
|
56
|
+
keys.set(key, { priority, firstIndex });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
let chosenKey;
|
|
60
|
+
let bestPriority = Number.MAX_SAFE_INTEGER;
|
|
61
|
+
let bestIndex = Number.MAX_SAFE_INTEGER;
|
|
62
|
+
for (const [key, meta] of keys) {
|
|
63
|
+
if (meta.priority < bestPriority ||
|
|
64
|
+
(meta.priority === bestPriority && meta.firstIndex < bestIndex)) {
|
|
65
|
+
chosenKey = key;
|
|
66
|
+
bestPriority = meta.priority;
|
|
67
|
+
bestIndex = meta.firstIndex;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return chosenKey ?? eventSourceKey(eligible[0]);
|
|
71
|
+
}
|
|
72
|
+
function isWorkerSourceKey(key) {
|
|
73
|
+
return key.startsWith('worker:');
|
|
74
|
+
}
|
|
75
|
+
function canUseWorkerContinuation(state, eligibleKeys) {
|
|
76
|
+
return (state.lastDispatchedSourceKey !== undefined &&
|
|
77
|
+
isWorkerSourceKey(state.lastDispatchedSourceKey) &&
|
|
78
|
+
!state.continuationConsumed &&
|
|
79
|
+
eligibleKeys.has(state.lastDispatchedSourceKey));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* キューから次に dispatch するイベント束を選ぶ(純関数)。
|
|
83
|
+
* dispatch 可能なイベントが無ければ undefined。
|
|
84
|
+
*/
|
|
85
|
+
export function selectDispatchBatch(input) {
|
|
86
|
+
const { queue, state, autonomousTurns, maxTurns } = input;
|
|
87
|
+
const eligible = queue.filter((event) => isDispatchable(event, autonomousTurns, maxTurns));
|
|
88
|
+
if (eligible.length === 0) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
const eligibleKeys = new Set(eligible.map(eventSourceKey));
|
|
92
|
+
let chosenKey;
|
|
93
|
+
if (eligibleKeys.has('operator')) {
|
|
94
|
+
chosenKey = 'operator';
|
|
95
|
+
}
|
|
96
|
+
else if (eligibleKeys.has('permission')) {
|
|
97
|
+
chosenKey = 'permission';
|
|
98
|
+
}
|
|
99
|
+
else if (canUseWorkerContinuation(state, eligibleKeys)) {
|
|
100
|
+
chosenKey = state.lastDispatchedSourceKey;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
chosenKey = pickStaticSourceKey(queue, eligible);
|
|
104
|
+
}
|
|
105
|
+
const batchEvents = queue.filter((event) => isDispatchable(event, autonomousTurns, maxTurns) &&
|
|
106
|
+
eventSourceKey(event) === chosenKey);
|
|
107
|
+
const batchSet = new Set(batchEvents);
|
|
108
|
+
const remainingQueue = queue.filter((event) => !batchSet.has(event));
|
|
109
|
+
return {
|
|
110
|
+
batch: { events: batchEvents, sourceKey: chosenKey },
|
|
111
|
+
remainingQueue,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/** dispatch 完了後に Driver が呼ぶ。次の 1 回だけ continuation 優先を arm する。 */
|
|
115
|
+
export function dispatchBatchStateAfterSend(sourceKey) {
|
|
116
|
+
return {
|
|
117
|
+
lastDispatchedSourceKey: sourceKey,
|
|
118
|
+
continuationConsumed: false,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** select で continuation を消費したあとに Driver がマージする。 */
|
|
122
|
+
export function markContinuationConsumed(state, selected) {
|
|
123
|
+
if (canUseWorkerContinuation(state, new Set([selected.batch.sourceKey])) &&
|
|
124
|
+
selected.batch.sourceKey === state.lastDispatchedSourceKey) {
|
|
125
|
+
return { ...state, continuationConsumed: true };
|
|
126
|
+
}
|
|
127
|
+
return state;
|
|
128
|
+
}
|
|
129
|
+
/** 束に含まれる worker 完了 / 失敗の件数。 */
|
|
130
|
+
export function countWorkerOutcomesInBatch(events) {
|
|
131
|
+
let workerDispatches = 0;
|
|
132
|
+
let workerFailures = 0;
|
|
133
|
+
for (const event of events) {
|
|
134
|
+
if (event.type === 'worker.completed') {
|
|
135
|
+
workerDispatches++;
|
|
136
|
+
}
|
|
137
|
+
else if (event.type === 'worker.failed') {
|
|
138
|
+
workerFailures++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return { workerDispatches, workerFailures };
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=select-dispatch-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-dispatch-batch.js","sourceRoot":"","sources":["../../../src/conductor/session/select-dispatch-batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SessionEvent } from './session-event.js';
|
|
2
|
+
/** ConductorSession の単一イベント列(旧 inbox + conductor Queue の統合)。 */
|
|
3
|
+
export declare class SessionEventQueue {
|
|
4
|
+
private readonly queue;
|
|
5
|
+
private readonly waiters;
|
|
6
|
+
get size(): number;
|
|
7
|
+
isEmpty(): boolean;
|
|
8
|
+
enqueue(event: SessionEvent): void;
|
|
9
|
+
dequeue(): SessionEvent | undefined;
|
|
10
|
+
/** キュー内容のスナップショット(到着順)。 */
|
|
11
|
+
snapshot(): SessionEvent[];
|
|
12
|
+
/** キュー全体を置き換える(dispatch 束の除去後など)。 */
|
|
13
|
+
replaceQueue(next: SessionEvent[]): void;
|
|
14
|
+
/**
|
|
15
|
+
* 先頭に挿入する(waiter 経由で取り出したイベントを到着順どおり戻すとき用)。
|
|
16
|
+
* 新しい waiter は起こさない。
|
|
17
|
+
*/
|
|
18
|
+
prependSilent(event: SessionEvent): void;
|
|
19
|
+
/** 述語に合う最初の send イベントを取り出す(キュー順は維持)。 */
|
|
20
|
+
findSendEvent(accept: (event: SessionEvent) => boolean): SessionEvent | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* `accept` に合う send イベントが来るまで待つ。
|
|
23
|
+
* 合わないイベントはキュー末尾へ戻し、到着順を壊さない。
|
|
24
|
+
*
|
|
25
|
+
* @deprecated 本番 Driver は `waitForDispatchBatch`(ADR 0014)を使用。単体テスト用 legacy API。
|
|
26
|
+
*/
|
|
27
|
+
waitForSendEvent(input: {
|
|
28
|
+
accept: (event: SessionEvent) => boolean;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
}): Promise<SessionEvent>;
|
|
31
|
+
waitForEvent(signal?: AbortSignal, options?: {
|
|
32
|
+
onlyNew?: boolean;
|
|
33
|
+
}): Promise<SessionEvent>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=session-event-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-queue.d.ts","sourceRoot":"","sources":["../../../src/conductor/session/session-event-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,gEAAgE;AAChE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IASlC,OAAO,IAAI,YAAY,GAAG,SAAS;IAInC,2BAA2B;IAC3B,QAAQ,IAAI,YAAY,EAAE;IAI1B,qCAAqC;IACrC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAKxC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIxC,wCAAwC;IACxC,aAAa,CACX,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,GACvC,YAAY,GAAG,SAAS;IAU3B;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;QACzC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBnB,YAAY,CAChB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9B,OAAO,CAAC,YAAY,CAAC;CA8BzB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { isConductorSendEvent } from './session-event.js';
|
|
2
|
+
/** ConductorSession の単一イベント列(旧 inbox + conductor Queue の統合)。 */
|
|
3
|
+
export class SessionEventQueue {
|
|
4
|
+
queue = [];
|
|
5
|
+
waiters = [];
|
|
6
|
+
get size() {
|
|
7
|
+
return this.queue.length;
|
|
8
|
+
}
|
|
9
|
+
isEmpty() {
|
|
10
|
+
return this.queue.length === 0;
|
|
11
|
+
}
|
|
12
|
+
enqueue(event) {
|
|
13
|
+
const waiter = this.waiters.shift();
|
|
14
|
+
if (waiter) {
|
|
15
|
+
waiter(event);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.queue.push(event);
|
|
19
|
+
}
|
|
20
|
+
dequeue() {
|
|
21
|
+
return this.queue.shift();
|
|
22
|
+
}
|
|
23
|
+
/** キュー内容のスナップショット(到着順)。 */
|
|
24
|
+
snapshot() {
|
|
25
|
+
return [...this.queue];
|
|
26
|
+
}
|
|
27
|
+
/** キュー全体を置き換える(dispatch 束の除去後など)。 */
|
|
28
|
+
replaceQueue(next) {
|
|
29
|
+
this.queue.length = 0;
|
|
30
|
+
this.queue.push(...next);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 先頭に挿入する(waiter 経由で取り出したイベントを到着順どおり戻すとき用)。
|
|
34
|
+
* 新しい waiter は起こさない。
|
|
35
|
+
*/
|
|
36
|
+
prependSilent(event) {
|
|
37
|
+
this.queue.unshift(event);
|
|
38
|
+
}
|
|
39
|
+
/** 述語に合う最初の send イベントを取り出す(キュー順は維持)。 */
|
|
40
|
+
findSendEvent(accept) {
|
|
41
|
+
const index = this.queue.findIndex((event) => isConductorSendEvent(event) && accept(event));
|
|
42
|
+
if (index < 0) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return this.queue.splice(index, 1)[0];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* `accept` に合う send イベントが来るまで待つ。
|
|
49
|
+
* 合わないイベントはキュー末尾へ戻し、到着順を壊さない。
|
|
50
|
+
*
|
|
51
|
+
* @deprecated 本番 Driver は `waitForDispatchBatch`(ADR 0014)を使用。単体テスト用 legacy API。
|
|
52
|
+
*/
|
|
53
|
+
async waitForSendEvent(input) {
|
|
54
|
+
for (;;) {
|
|
55
|
+
const found = this.findSendEvent(input.accept);
|
|
56
|
+
if (found) {
|
|
57
|
+
return found;
|
|
58
|
+
}
|
|
59
|
+
const incoming = await this.waitForEvent(input.signal, {
|
|
60
|
+
onlyNew: this.queue.length > 0,
|
|
61
|
+
});
|
|
62
|
+
if (isConductorSendEvent(incoming) && input.accept(incoming)) {
|
|
63
|
+
return incoming;
|
|
64
|
+
}
|
|
65
|
+
this.queue.push(incoming);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async waitForEvent(signal, options) {
|
|
69
|
+
if (!options?.onlyNew) {
|
|
70
|
+
const pending = this.dequeue();
|
|
71
|
+
if (pending) {
|
|
72
|
+
return pending;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (signal?.aborted) {
|
|
76
|
+
throw new DOMException('Session event wait aborted', 'AbortError');
|
|
77
|
+
}
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
const onAbort = () => {
|
|
80
|
+
cleanup();
|
|
81
|
+
reject(new DOMException('Session event wait aborted', 'AbortError'));
|
|
82
|
+
};
|
|
83
|
+
const waiter = (event) => {
|
|
84
|
+
cleanup();
|
|
85
|
+
resolve(event);
|
|
86
|
+
};
|
|
87
|
+
const cleanup = () => {
|
|
88
|
+
signal?.removeEventListener('abort', onAbort);
|
|
89
|
+
const index = this.waiters.indexOf(waiter);
|
|
90
|
+
if (index >= 0) {
|
|
91
|
+
this.waiters.splice(index, 1);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
signal?.addEventListener('abort', onAbort);
|
|
95
|
+
this.waiters.push(waiter);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=session-event-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-queue.js","sourceRoot":"","sources":["../../../src/conductor/session/session-event-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WorkerDispatchResult } from '../../dispatch/worker-dispatch.js';
|
|
2
|
+
import type { GitHubUpdateItem } from '../../github/github-update-types.js';
|
|
3
|
+
import type { WorkerFailureRecord } from '../../runtime/types.js';
|
|
4
|
+
import type { PendingPermission } from '../../permission/pending-permission.js';
|
|
5
|
+
/** ConductorSession のイベント列に載る項目(SDK tool 結果は含めない)。 */
|
|
6
|
+
export type SessionEvent = OperatorMessageEvent | WorkerCompletedEvent | WorkerFailedEvent | PermissionPendingEvent | GitHubUpdateEvent;
|
|
7
|
+
export interface OperatorMessageEvent {
|
|
8
|
+
type: 'operator.message';
|
|
9
|
+
text: string;
|
|
10
|
+
}
|
|
11
|
+
export interface WorkerCompletedEvent {
|
|
12
|
+
type: 'worker.completed';
|
|
13
|
+
result: WorkerDispatchResult;
|
|
14
|
+
}
|
|
15
|
+
export interface WorkerFailedEvent {
|
|
16
|
+
type: 'worker.failed';
|
|
17
|
+
failure: WorkerFailureRecord;
|
|
18
|
+
}
|
|
19
|
+
export interface PermissionPendingEvent {
|
|
20
|
+
type: 'permission.pending';
|
|
21
|
+
permission: PendingPermission;
|
|
22
|
+
}
|
|
23
|
+
export interface GitHubUpdateEvent {
|
|
24
|
+
type: 'github.update';
|
|
25
|
+
items: GitHubUpdateItem[];
|
|
26
|
+
}
|
|
27
|
+
export declare function isConductorSendEvent(event: SessionEvent): event is OperatorMessageEvent | WorkerCompletedEvent | WorkerFailedEvent | PermissionPendingEvent | GitHubUpdateEvent;
|
|
28
|
+
//# sourceMappingURL=session-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event.d.ts","sourceRoot":"","sources":["../../../src/conductor/session/session-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,sDAAsD;AACtD,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,GAClB,KAAK,IACJ,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,CAQpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function isConductorSendEvent(event) {
|
|
2
|
+
return (event.type === 'operator.message' ||
|
|
3
|
+
event.type === 'worker.completed' ||
|
|
4
|
+
event.type === 'worker.failed' ||
|
|
5
|
+
event.type === 'permission.pending' ||
|
|
6
|
+
event.type === 'github.update');
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=session-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event.js","sourceRoot":"","sources":["../../../src/conductor/session/session-event.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,oBAAoB,CAClC,KAAmB;IAOnB,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,kBAAkB;QACjC,KAAK,CAAC,IAAI,KAAK,kBAAkB;QACjC,KAAK,CAAC,IAAI,KAAK,eAAe;QAC9B,KAAK,CAAC,IAAI,KAAK,oBAAoB;QACnC,KAAK,CAAC,IAAI,KAAK,eAAe,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { WorkerDispatchResult } from '../../dispatch/worker-dispatch.js';
|
|
2
|
+
import type { EscalationRecord } from '../../escalation/human-inquiry.js';
|
|
3
|
+
import type { OpenQuestion } from '../../escalation/open-question.js';
|
|
4
|
+
import type { PendingPermission } from '../../permission/pending-permission.js';
|
|
5
|
+
import type { WorkerFailureRecord } from '../../runtime/types.js';
|
|
6
|
+
import type { WorkerWorktreeMode } from '../../worktree/worktree.js';
|
|
7
|
+
import type { IssueLoopStopReason } from '../session-policy.js';
|
|
8
|
+
import type { ConductorSessionResult } from '../conductor-session.js';
|
|
9
|
+
/** セッション終了時の exit report(`ConductorSessionResult` の別名)。 */
|
|
10
|
+
export type SessionSummary = ConductorSessionResult;
|
|
11
|
+
export type SessionLogEvent = {
|
|
12
|
+
type: 'harness.worktree';
|
|
13
|
+
path: string;
|
|
14
|
+
branch: string;
|
|
15
|
+
mode: WorkerWorktreeMode;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'harness.worktree.removed';
|
|
18
|
+
path: string;
|
|
19
|
+
branch: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: 'harness.worktree.remove_skipped';
|
|
22
|
+
path: string;
|
|
23
|
+
branch: string;
|
|
24
|
+
reason: 'dirty';
|
|
25
|
+
} | {
|
|
26
|
+
type: 'harness.worktree.remove_failed';
|
|
27
|
+
path: string;
|
|
28
|
+
branch: string;
|
|
29
|
+
error: string;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'harness.worker.prompt.started';
|
|
32
|
+
name: string;
|
|
33
|
+
kind: string;
|
|
34
|
+
workerId: string;
|
|
35
|
+
source: 'harness' | 'conductor';
|
|
36
|
+
} | {
|
|
37
|
+
type: 'harness.worker.prompt.completed';
|
|
38
|
+
name: string;
|
|
39
|
+
kind: string;
|
|
40
|
+
workerId: string;
|
|
41
|
+
source: 'harness' | 'conductor';
|
|
42
|
+
stopReason: string;
|
|
43
|
+
} | {
|
|
44
|
+
type: 'harness.worker.prompt.failed';
|
|
45
|
+
name: string;
|
|
46
|
+
kind: string;
|
|
47
|
+
workerId: string;
|
|
48
|
+
source: 'harness' | 'conductor';
|
|
49
|
+
error: string;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'operator.input';
|
|
52
|
+
conductorTurn: number;
|
|
53
|
+
text: string;
|
|
54
|
+
} | {
|
|
55
|
+
type: 'conductor.send.started';
|
|
56
|
+
/** これから実行する send の通し番号(1 始まり)。 */
|
|
57
|
+
sendCount: number;
|
|
58
|
+
/** dispatch 束の source key(`operator` / `permission` / `worker:*` / `initial`)。 */
|
|
59
|
+
dispatchSource?: string;
|
|
60
|
+
} | {
|
|
61
|
+
type: 'conductor.send.progress';
|
|
62
|
+
sendCount: number;
|
|
63
|
+
runId: string;
|
|
64
|
+
tool: string;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'conductor.send';
|
|
67
|
+
sendCount: number;
|
|
68
|
+
runId: string;
|
|
69
|
+
status: string;
|
|
70
|
+
result?: string;
|
|
71
|
+
error?: {
|
|
72
|
+
message: string;
|
|
73
|
+
code?: string;
|
|
74
|
+
};
|
|
75
|
+
workerDispatches: number;
|
|
76
|
+
workerFailures: number;
|
|
77
|
+
} | {
|
|
78
|
+
type: 'permission.pending';
|
|
79
|
+
permission: PendingPermission;
|
|
80
|
+
/** worker kind など、オペレータ向けの短いラベル。 */
|
|
81
|
+
workerLabel: string;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'worker.round';
|
|
84
|
+
dispatch: WorkerDispatchResult;
|
|
85
|
+
} | {
|
|
86
|
+
type: 'worker.failed';
|
|
87
|
+
failure: WorkerFailureRecord;
|
|
88
|
+
} | {
|
|
89
|
+
type: 'worker.process.stderr';
|
|
90
|
+
line: string;
|
|
91
|
+
stream: 'stderr';
|
|
92
|
+
workerName?: string;
|
|
93
|
+
} | {
|
|
94
|
+
type: 'session.stop';
|
|
95
|
+
stopReason: IssueLoopStopReason;
|
|
96
|
+
} | {
|
|
97
|
+
type: 'open.question.enqueued';
|
|
98
|
+
question: OpenQuestion;
|
|
99
|
+
} | {
|
|
100
|
+
type: 'escalation.recorded';
|
|
101
|
+
record: EscalationRecord;
|
|
102
|
+
} | {
|
|
103
|
+
type: 'session.worktree.notice';
|
|
104
|
+
mode: WorkerWorktreeMode;
|
|
105
|
+
} | {
|
|
106
|
+
type: 'session.continue';
|
|
107
|
+
conductorAgentId: string;
|
|
108
|
+
} | {
|
|
109
|
+
type: 'session.post_loop_wait';
|
|
110
|
+
} | {
|
|
111
|
+
type: 'conductor.auth.recovery';
|
|
112
|
+
agentId: string;
|
|
113
|
+
hint: string;
|
|
114
|
+
} | {
|
|
115
|
+
type: 'conductor.auth.reconnect';
|
|
116
|
+
agentId: string;
|
|
117
|
+
} | {
|
|
118
|
+
type: 'harness.github.update';
|
|
119
|
+
itemCount: number;
|
|
120
|
+
} | {
|
|
121
|
+
type: 'harness.github.monitor_error';
|
|
122
|
+
message: string;
|
|
123
|
+
};
|
|
124
|
+
export type SessionLogSink = (event: SessionLogEvent) => void;
|
|
125
|
+
export interface SessionLoggerOptions {
|
|
126
|
+
issueUrl: string;
|
|
127
|
+
repoRoot: string;
|
|
128
|
+
}
|
|
129
|
+
/** セッション中のイベントを時系列で記録し、終了時に SessionSummary を生成する。 */
|
|
130
|
+
export declare class SessionLogger {
|
|
131
|
+
private readonly options;
|
|
132
|
+
readonly workerDispatches: WorkerDispatchResult[];
|
|
133
|
+
readonly workerFailures: WorkerFailureRecord[];
|
|
134
|
+
private readonly sinks;
|
|
135
|
+
private sendCount;
|
|
136
|
+
private lastRunStatus;
|
|
137
|
+
private lastResult?;
|
|
138
|
+
private lastError?;
|
|
139
|
+
private stopReason;
|
|
140
|
+
constructor(options: SessionLoggerOptions);
|
|
141
|
+
subscribe(sink: SessionLogSink): () => void;
|
|
142
|
+
emit(event: SessionLogEvent): void;
|
|
143
|
+
finish(stopReason: IssueLoopStopReason): void;
|
|
144
|
+
snapshot(input: {
|
|
145
|
+
agentId: string;
|
|
146
|
+
escalations: EscalationRecord[];
|
|
147
|
+
openQuestions: OpenQuestion[];
|
|
148
|
+
sessionUsage?: SessionSummary['sessionUsage'];
|
|
149
|
+
}): SessionSummary;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=session-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-logger.d.ts","sourceRoot":"","sources":["../../../src/conductor/session/session-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/** セッション中のイベントを時系列で記録し、終了時に SessionSummary を生成する。 */
|
|
2
|
+
export class SessionLogger {
|
|
3
|
+
options;
|
|
4
|
+
workerDispatches = [];
|
|
5
|
+
workerFailures = [];
|
|
6
|
+
sinks = new Set();
|
|
7
|
+
sendCount = 0;
|
|
8
|
+
lastRunStatus = 'finished';
|
|
9
|
+
lastResult;
|
|
10
|
+
lastError;
|
|
11
|
+
stopReason = 'completed';
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
subscribe(sink) {
|
|
16
|
+
this.sinks.add(sink);
|
|
17
|
+
return () => {
|
|
18
|
+
this.sinks.delete(sink);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
emit(event) {
|
|
22
|
+
switch (event.type) {
|
|
23
|
+
case 'conductor.send':
|
|
24
|
+
this.sendCount = event.sendCount;
|
|
25
|
+
this.lastRunStatus = event.status;
|
|
26
|
+
this.lastResult = event.result;
|
|
27
|
+
this.lastError = event.error;
|
|
28
|
+
break;
|
|
29
|
+
case 'worker.round':
|
|
30
|
+
this.workerDispatches.push(event.dispatch);
|
|
31
|
+
break;
|
|
32
|
+
case 'worker.failed':
|
|
33
|
+
this.workerFailures.push(event.failure);
|
|
34
|
+
break;
|
|
35
|
+
case 'session.stop':
|
|
36
|
+
this.stopReason = event.stopReason;
|
|
37
|
+
break;
|
|
38
|
+
case 'harness.worktree':
|
|
39
|
+
case 'harness.worktree.removed':
|
|
40
|
+
case 'harness.worktree.remove_skipped':
|
|
41
|
+
case 'harness.worktree.remove_failed':
|
|
42
|
+
case 'harness.worker.prompt.started':
|
|
43
|
+
case 'harness.worker.prompt.completed':
|
|
44
|
+
case 'harness.worker.prompt.failed':
|
|
45
|
+
case 'operator.input':
|
|
46
|
+
case 'conductor.send.started':
|
|
47
|
+
case 'conductor.send.progress':
|
|
48
|
+
case 'permission.pending':
|
|
49
|
+
case 'worker.process.stderr':
|
|
50
|
+
case 'open.question.enqueued':
|
|
51
|
+
case 'escalation.recorded':
|
|
52
|
+
case 'session.worktree.notice':
|
|
53
|
+
case 'session.continue':
|
|
54
|
+
case 'session.post_loop_wait':
|
|
55
|
+
case 'conductor.auth.recovery':
|
|
56
|
+
case 'conductor.auth.reconnect':
|
|
57
|
+
case 'harness.github.update':
|
|
58
|
+
case 'harness.github.monitor_error':
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
for (const sink of this.sinks) {
|
|
62
|
+
sink(event);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
finish(stopReason) {
|
|
66
|
+
this.emit({ type: 'session.stop', stopReason });
|
|
67
|
+
}
|
|
68
|
+
snapshot(input) {
|
|
69
|
+
return {
|
|
70
|
+
agentId: input.agentId,
|
|
71
|
+
issueUrl: this.options.issueUrl,
|
|
72
|
+
repoRoot: this.options.repoRoot,
|
|
73
|
+
sendCount: this.sendCount,
|
|
74
|
+
stopReason: this.stopReason,
|
|
75
|
+
lastRunStatus: this.lastRunStatus,
|
|
76
|
+
lastResult: this.lastResult,
|
|
77
|
+
lastError: this.lastError,
|
|
78
|
+
workerDispatches: [...this.workerDispatches],
|
|
79
|
+
workerFailures: [...this.workerFailures],
|
|
80
|
+
escalations: [...input.escalations],
|
|
81
|
+
openQuestions: [...input.openQuestions],
|
|
82
|
+
...(input.sessionUsage ? { sessionUsage: input.sessionUsage } : {}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=session-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-logger.js","sourceRoot":"","sources":["../../../src/conductor/session/session-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ConductorSendResult } from './conductor-agent.js';
|
|
2
|
+
import type { SessionEvent } from './session/session-event.js';
|
|
3
|
+
import type { OpenQuestionRegistry } from '../escalation/open-question.js';
|
|
4
|
+
import type { PermissionPipeline } from '../permission/permission-pipeline.js';
|
|
5
|
+
import type { WorkerSession } from '../runtime/worker-session.js';
|
|
6
|
+
export type IssueLoopStopReason = 'completed' | 'error' | 'max_turns' | 'interrupted';
|
|
7
|
+
export interface IssueLoopStopInput {
|
|
8
|
+
/** 直近のオペレータ入力から消費した conductor 自律ターン数。 */
|
|
9
|
+
autonomousTurns: number;
|
|
10
|
+
maxTurns: number;
|
|
11
|
+
lastStatus: string;
|
|
12
|
+
dispatchesThisTurn: number;
|
|
13
|
+
runningWorkers?: number;
|
|
14
|
+
pendingPermissions?: number;
|
|
15
|
+
openQuestions?: number;
|
|
16
|
+
/** TTY 等でオペレータ入力があるとき、conductor error でもループを継続する。 */
|
|
17
|
+
continueOnConductorError?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const DEFAULT_MAX_ISSUE_TURNS = 5;
|
|
20
|
+
/** `maxTurns` 未指定時はデフォルト、それ以外はそのまま(`<= 0` は無制限)。 */
|
|
21
|
+
export declare function resolveMaxTurns(maxTurns?: number): number;
|
|
22
|
+
/** 自律ターン上限が有効か(`maxTurns > 0`)。 */
|
|
23
|
+
export declare function isMaxTurnsLimited(maxTurns: number): boolean;
|
|
24
|
+
/** View 向けの `maxTurns`(無制限時は `null`)。 */
|
|
25
|
+
export declare function operatorInputMaxTurns(maxTurns: number): number | null;
|
|
26
|
+
/** Issue session の conductor 自律ループを終了すべきか判定する(プロセス終了ではない)。 */
|
|
27
|
+
export declare function shouldStopIssueLoop(input: IssueLoopStopInput): boolean;
|
|
28
|
+
export declare function resolveIssueLoopStopReason(input: IssueLoopStopInput): IssueLoopStopReason;
|
|
29
|
+
/** 自律ターン上限到達後も conductor へ送れるイベントか。 */
|
|
30
|
+
export declare function canDispatchConductorSend(event: SessionEvent, autonomousTurns: number, maxTurns: number): boolean;
|
|
31
|
+
/** conductor send 完了後の `autonomousTurns`(オペレータ入力でリセット)。 */
|
|
32
|
+
export declare function autonomousTurnsAfterConductorSend(event: SessionEvent, autonomousTurns: number): number;
|
|
33
|
+
/** 束 dispatch 後の `autonomousTurns`(束に operator が含まれればリセット)。 */
|
|
34
|
+
export declare function autonomousTurnsAfterConductorBatch(events: SessionEvent[], autonomousTurns: number): number;
|
|
35
|
+
export declare function buildIssueLoopStopInput(input: {
|
|
36
|
+
autonomousTurns: number;
|
|
37
|
+
maxTurns: number;
|
|
38
|
+
lastSendResult: ConductorSendResult;
|
|
39
|
+
dispatchesThisTurn: number;
|
|
40
|
+
workerSession: WorkerSession;
|
|
41
|
+
permissionPipeline: PermissionPipeline;
|
|
42
|
+
openQuestions: OpenQuestionRegistry;
|
|
43
|
+
continueOnConductorError: boolean;
|
|
44
|
+
}): IssueLoopStopInput;
|
|
45
|
+
//# sourceMappingURL=session-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-policy.d.ts","sourceRoot":"","sources":["../../src/conductor/session-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,OAAO,GACP,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,yCAAyC;AACzC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAWtE;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAGrB;AAED,uCAAuC;AACvC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAWT;AAED,2DAA2D;AAC3D,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,MAAM,CAKR;AAED,+DAA+D;AAC/D,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,YAAY,EAAE,EACtB,eAAe,EAAE,MAAM,GACtB,MAAM,CAKR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,mBAAmB,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,oBAAoB,CAAC;IACpC,wBAAwB,EAAE,OAAO,CAAC;CACnC,GAAG,kBAAkB,CAWrB"}
|