@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,37 @@
|
|
|
1
|
+
import { EscalationUnavailableError } from './escalation-unavailable-error.js';
|
|
2
|
+
export const ESCALATION_RESPONSE_ENV = 'ENSEMBLE_ESCALATION_RESPONSE';
|
|
3
|
+
export function readEscalationEnvFallback() {
|
|
4
|
+
const value = process.env[ESCALATION_RESPONSE_ENV]?.trim();
|
|
5
|
+
return value || undefined;
|
|
6
|
+
}
|
|
7
|
+
export function parseEnvInquiryResponse(raw, responseType) {
|
|
8
|
+
const answer = raw.trim();
|
|
9
|
+
if (responseType === 'yes_no') {
|
|
10
|
+
const normalized = answer.toLowerCase();
|
|
11
|
+
const approved = normalized === 'y' ||
|
|
12
|
+
normalized === 'yes' ||
|
|
13
|
+
normalized === 'true' ||
|
|
14
|
+
normalized === '1';
|
|
15
|
+
return { answer, approved };
|
|
16
|
+
}
|
|
17
|
+
return { answer };
|
|
18
|
+
}
|
|
19
|
+
export function resolveHumanInquiryFromEnv(request) {
|
|
20
|
+
const fallback = readEscalationEnvFallback();
|
|
21
|
+
if (fallback === undefined)
|
|
22
|
+
return undefined;
|
|
23
|
+
return parseEnvInquiryResponse(fallback, request.responseType);
|
|
24
|
+
}
|
|
25
|
+
export function escalationUnavailableMessage() {
|
|
26
|
+
return ('Human inquiry is unavailable in non-interactive mode. ' +
|
|
27
|
+
`Set ${ESCALATION_RESPONSE_ENV} or run ensemble issue in a TTY.`);
|
|
28
|
+
}
|
|
29
|
+
export function createEnvFallbackHumanInquiryHandler() {
|
|
30
|
+
return (request) => {
|
|
31
|
+
const fromEnv = resolveHumanInquiryFromEnv(request);
|
|
32
|
+
if (fromEnv)
|
|
33
|
+
return fromEnv;
|
|
34
|
+
throw new EscalationUnavailableError(escalationUnavailableMessage());
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=resolve-human-inquiry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-human-inquiry.js","sourceRoot":"","sources":["../../src/escalation/resolve-human-inquiry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,MAAM,UAAU,yBAAyB;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,YAAiD;IAEjD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,QAAQ,GACZ,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,KAAK;YACpB,UAAU,KAAK,MAAM;YACrB,UAAU,KAAK,GAAG,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CACL,wDAAwD;QACxD,OAAO,uBAAuB,kCAAkC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC;IAGlD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,IAAI,0BAA0B,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-git.d.ts","sourceRoot":"","sources":["../../src/git/run-git.ts"],"names":[],"mappings":"AAKA,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB7C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
const execFileAsync = promisify(execFile);
|
|
4
|
+
export async function runGit(args, cwd) {
|
|
5
|
+
try {
|
|
6
|
+
const result = await execFileAsync('git', args, {
|
|
7
|
+
cwd,
|
|
8
|
+
encoding: 'utf8',
|
|
9
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
10
|
+
});
|
|
11
|
+
return { stdout: result.stdout, stderr: result.stderr };
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
const err = error;
|
|
15
|
+
const detail = err.stderr?.trim() || err.message;
|
|
16
|
+
throw new Error(`git ${args.join(' ')} failed in ${cwd}: ${detail}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=run-git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-git.js","sourceRoot":"","sources":["../../src/git/run-git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAc,EACd,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;YAC9C,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAGX,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface DebounceBufferOptions<T> {
|
|
2
|
+
debounceMs: number;
|
|
3
|
+
onFlush: (items: T[]) => void;
|
|
4
|
+
shutdownSignal?: AbortSignal;
|
|
5
|
+
}
|
|
6
|
+
/** 連続到着をまとめて 1 回だけ flush するバッファ。 */
|
|
7
|
+
export declare class DebounceBuffer<T> {
|
|
8
|
+
private readonly debounceMs;
|
|
9
|
+
private readonly onFlush;
|
|
10
|
+
private readonly shutdownSignal?;
|
|
11
|
+
private items;
|
|
12
|
+
private timer;
|
|
13
|
+
private stopped;
|
|
14
|
+
constructor(options: DebounceBufferOptions<T>);
|
|
15
|
+
push(item: T): void;
|
|
16
|
+
pushMany(items: T[]): void;
|
|
17
|
+
flush(): void;
|
|
18
|
+
stop(): void;
|
|
19
|
+
get pendingCount(): number;
|
|
20
|
+
private scheduleFlush;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=debounce-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounce-buffer.d.ts","sourceRoot":"","sources":["../../src/github/debounce-buffer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,oCAAoC;AACpC,qBAAa,cAAc,CAAC,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAc;IAC9C,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAS7C,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAMnB,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI;IAM1B,KAAK,IAAI,IAAI;IAWb,IAAI,IAAI,IAAI;IASZ,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** 連続到着をまとめて 1 回だけ flush するバッファ。 */
|
|
2
|
+
export class DebounceBuffer {
|
|
3
|
+
debounceMs;
|
|
4
|
+
onFlush;
|
|
5
|
+
shutdownSignal;
|
|
6
|
+
items = [];
|
|
7
|
+
timer;
|
|
8
|
+
stopped = false;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.debounceMs = options.debounceMs;
|
|
11
|
+
this.onFlush = options.onFlush;
|
|
12
|
+
this.shutdownSignal = options.shutdownSignal;
|
|
13
|
+
this.shutdownSignal?.addEventListener('abort', () => {
|
|
14
|
+
this.flush();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
push(item) {
|
|
18
|
+
if (this.stopped)
|
|
19
|
+
return;
|
|
20
|
+
this.items.push(item);
|
|
21
|
+
this.scheduleFlush();
|
|
22
|
+
}
|
|
23
|
+
pushMany(items) {
|
|
24
|
+
if (this.stopped || items.length === 0)
|
|
25
|
+
return;
|
|
26
|
+
this.items.push(...items);
|
|
27
|
+
this.scheduleFlush();
|
|
28
|
+
}
|
|
29
|
+
flush() {
|
|
30
|
+
if (this.timer !== undefined) {
|
|
31
|
+
clearTimeout(this.timer);
|
|
32
|
+
this.timer = undefined;
|
|
33
|
+
}
|
|
34
|
+
if (this.items.length === 0)
|
|
35
|
+
return;
|
|
36
|
+
const batch = this.items;
|
|
37
|
+
this.items = [];
|
|
38
|
+
this.onFlush(batch);
|
|
39
|
+
}
|
|
40
|
+
stop() {
|
|
41
|
+
this.stopped = true;
|
|
42
|
+
this.flush();
|
|
43
|
+
if (this.timer !== undefined) {
|
|
44
|
+
clearTimeout(this.timer);
|
|
45
|
+
this.timer = undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
get pendingCount() {
|
|
49
|
+
return this.items.length;
|
|
50
|
+
}
|
|
51
|
+
scheduleFlush() {
|
|
52
|
+
if (this.timer !== undefined) {
|
|
53
|
+
clearTimeout(this.timer);
|
|
54
|
+
}
|
|
55
|
+
this.timer = setTimeout(() => {
|
|
56
|
+
this.timer = undefined;
|
|
57
|
+
this.flush();
|
|
58
|
+
}, this.debounceMs);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=debounce-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounce-buffer.js","sourceRoot":"","sources":["../../src/github/debounce-buffer.ts"],"names":[],"mappings":"AAMA,oCAAoC;AACpC,MAAM,OAAO,cAAc;IACR,UAAU,CAAS;IACnB,OAAO,CAAuB;IAC9B,cAAc,CAAe;IACtC,KAAK,GAAQ,EAAE,CAAC;IAChB,KAAK,CAA4C;IACjD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,OAAiC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAO;QACV,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GitHubMonitorCursor } from './github-monitor-cursor.js';
|
|
2
|
+
import type { GitHubUpdateItem } from './github-update-types.js';
|
|
3
|
+
import { runGh } from './run-gh.js';
|
|
4
|
+
export interface FetchGitHubUpdatesInput {
|
|
5
|
+
issueUrl: string;
|
|
6
|
+
cursor: GitHubMonitorCursor;
|
|
7
|
+
/** true のときカーソルのみ進め、更新は返さない(カーソル空の新規セッション初回 poll のみ)。 */
|
|
8
|
+
bootstrapOnly?: boolean;
|
|
9
|
+
cwd?: string;
|
|
10
|
+
runGhFn?: typeof runGh;
|
|
11
|
+
}
|
|
12
|
+
export interface FetchGitHubUpdatesResult {
|
|
13
|
+
updates: GitHubUpdateItem[];
|
|
14
|
+
cursor: GitHubMonitorCursor;
|
|
15
|
+
/** いずれかの PR で CI が pending。poll 間隔短縮の判断材料。 */
|
|
16
|
+
hasPendingCi: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function fetchGitHubUpdates(input: FetchGitHubUpdatesInput): Promise<FetchGitHubUpdatesResult>;
|
|
19
|
+
//# sourceMappingURL=fetch-github-updates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-github-updates.d.ts","sourceRoot":"","sources":["../../src/github/fetch-github-updates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,4BAA4B,CAAC;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;CACvB;AA2CD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CA0CnC"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { parseIssueUrl } from '../issue/issue-ref.js';
|
|
2
|
+
import { normalizeGitHubMonitorCursor } from './github-monitor-cursor.js';
|
|
3
|
+
import { runGh } from './run-gh.js';
|
|
4
|
+
const BODY_PREVIEW_MAX = 280;
|
|
5
|
+
export async function fetchGitHubUpdates(input) {
|
|
6
|
+
const gh = input.runGhFn ?? runGh;
|
|
7
|
+
const issue = parseIssueUrl(input.issueUrl);
|
|
8
|
+
const cursor = normalizeGitHubMonitorCursor(input.cursor);
|
|
9
|
+
const updates = [];
|
|
10
|
+
let hasPendingCi = false;
|
|
11
|
+
const issueComments = await fetchIssueComments(gh, issue, input.cwd);
|
|
12
|
+
const { updates: commentUpdates, lastId } = collectIssueCommentUpdates(issueComments, cursor.lastIssueCommentId, input.bootstrapOnly ?? false);
|
|
13
|
+
updates.push(...commentUpdates);
|
|
14
|
+
if (lastId !== undefined) {
|
|
15
|
+
cursor.lastIssueCommentId = lastId;
|
|
16
|
+
}
|
|
17
|
+
const pullRequests = await fetchLinkedPullRequests(gh, issue, input.cwd);
|
|
18
|
+
if (!cursor.pullRequests) {
|
|
19
|
+
cursor.pullRequests = {};
|
|
20
|
+
}
|
|
21
|
+
for (const pr of pullRequests) {
|
|
22
|
+
const prKey = String(pr.number);
|
|
23
|
+
const prCursor = cursor.pullRequests[prKey] ?? {};
|
|
24
|
+
const prResult = await fetchPullRequestUpdates({
|
|
25
|
+
gh,
|
|
26
|
+
issue,
|
|
27
|
+
pr,
|
|
28
|
+
prCursor,
|
|
29
|
+
bootstrapOnly: input.bootstrapOnly ?? false,
|
|
30
|
+
cwd: input.cwd,
|
|
31
|
+
});
|
|
32
|
+
updates.push(...prResult.updates);
|
|
33
|
+
cursor.pullRequests[prKey] = prResult.cursor;
|
|
34
|
+
if (prResult.hasPendingCi) {
|
|
35
|
+
hasPendingCi = true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return { updates, cursor, hasPendingCi };
|
|
39
|
+
}
|
|
40
|
+
async function fetchIssueComments(gh, issue, cwd) {
|
|
41
|
+
const stdout = await gh([
|
|
42
|
+
'api',
|
|
43
|
+
`repos/${issue.owner}/${issue.repo}/issues/${issue.number}/comments`,
|
|
44
|
+
'--paginate',
|
|
45
|
+
], { cwd });
|
|
46
|
+
return JSON.parse(stdout);
|
|
47
|
+
}
|
|
48
|
+
function collectIssueCommentUpdates(comments, lastSeenId, bootstrapOnly) {
|
|
49
|
+
if (comments.length === 0) {
|
|
50
|
+
return { updates: [], lastId: lastSeenId };
|
|
51
|
+
}
|
|
52
|
+
const sorted = [...comments].sort((a, b) => a.id - b.id);
|
|
53
|
+
const lastNumeric = lastSeenId ? Number.parseInt(lastSeenId, 10) : undefined;
|
|
54
|
+
const newComments = lastNumeric === undefined
|
|
55
|
+
? sorted
|
|
56
|
+
: sorted.filter((comment) => comment.id > lastNumeric);
|
|
57
|
+
const lastId = String(sorted[sorted.length - 1].id);
|
|
58
|
+
if (bootstrapOnly || newComments.length === 0) {
|
|
59
|
+
return { updates: [], lastId };
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
updates: newComments.map((comment) => ({
|
|
63
|
+
id: `issue-comment:${comment.id}`,
|
|
64
|
+
kind: 'issue.comment',
|
|
65
|
+
summary: `Issue コメント(@${comment.user.login})`,
|
|
66
|
+
url: comment.html_url,
|
|
67
|
+
author: comment.user.login,
|
|
68
|
+
bodyPreview: previewBody(comment.body),
|
|
69
|
+
})),
|
|
70
|
+
lastId,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async function fetchLinkedPullRequests(gh, issue, cwd) {
|
|
74
|
+
try {
|
|
75
|
+
const stdout = await gh([
|
|
76
|
+
'search',
|
|
77
|
+
'prs',
|
|
78
|
+
String(issue.number),
|
|
79
|
+
'--repo',
|
|
80
|
+
`${issue.owner}/${issue.repo}`,
|
|
81
|
+
'--json',
|
|
82
|
+
'number,title,url,state',
|
|
83
|
+
'--limit',
|
|
84
|
+
'20',
|
|
85
|
+
], { cwd });
|
|
86
|
+
const results = JSON.parse(stdout);
|
|
87
|
+
return results.filter((pr) => pr.state === 'OPEN' || pr.state === 'open');
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async function fetchPullRequestUpdates(input) {
|
|
94
|
+
const updates = [];
|
|
95
|
+
const cursor = {
|
|
96
|
+
lastReviewId: input.prCursor.lastReviewId,
|
|
97
|
+
lastReviewCommentId: input.prCursor.lastReviewCommentId,
|
|
98
|
+
pendingCheckNames: [...(input.prCursor.pendingCheckNames ?? [])],
|
|
99
|
+
notifiedCheckNames: [...(input.prCursor.notifiedCheckNames ?? [])],
|
|
100
|
+
};
|
|
101
|
+
const reviews = await fetchReviews(input.gh, input.issue, input.pr.number, input.cwd);
|
|
102
|
+
const reviewResult = collectReviewUpdates(reviews, cursor.lastReviewId, input.bootstrapOnly, input.pr.number);
|
|
103
|
+
updates.push(...reviewResult.updates);
|
|
104
|
+
if (reviewResult.lastId !== undefined) {
|
|
105
|
+
cursor.lastReviewId = reviewResult.lastId;
|
|
106
|
+
}
|
|
107
|
+
const reviewComments = await fetchReviewComments(input.gh, input.issue, input.pr.number, input.cwd);
|
|
108
|
+
const reviewCommentResult = collectReviewCommentUpdates(reviewComments, cursor.lastReviewCommentId, input.bootstrapOnly, input.pr.number);
|
|
109
|
+
updates.push(...reviewCommentResult.updates);
|
|
110
|
+
if (reviewCommentResult.lastId !== undefined) {
|
|
111
|
+
cursor.lastReviewCommentId = reviewCommentResult.lastId;
|
|
112
|
+
}
|
|
113
|
+
const checkRuns = await fetchStatusCheckRollup(input.gh, input.issue, input.pr.number, input.cwd);
|
|
114
|
+
const ciResult = collectCiUpdates({
|
|
115
|
+
checkRuns,
|
|
116
|
+
pendingCheckNames: cursor.pendingCheckNames ?? [],
|
|
117
|
+
notifiedCheckNames: cursor.notifiedCheckNames ?? [],
|
|
118
|
+
bootstrapOnly: input.bootstrapOnly,
|
|
119
|
+
prNumber: input.pr.number,
|
|
120
|
+
});
|
|
121
|
+
updates.push(...ciResult.updates);
|
|
122
|
+
cursor.pendingCheckNames = ciResult.pendingCheckNames;
|
|
123
|
+
cursor.notifiedCheckNames = ciResult.notifiedCheckNames;
|
|
124
|
+
return {
|
|
125
|
+
updates,
|
|
126
|
+
cursor,
|
|
127
|
+
hasPendingCi: ciResult.hasPendingCi,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
async function fetchReviews(gh, issue, prNumber, cwd) {
|
|
131
|
+
const stdout = await gh([
|
|
132
|
+
'api',
|
|
133
|
+
`repos/${issue.owner}/${issue.repo}/pulls/${prNumber}/reviews`,
|
|
134
|
+
'--paginate',
|
|
135
|
+
], { cwd });
|
|
136
|
+
return JSON.parse(stdout);
|
|
137
|
+
}
|
|
138
|
+
async function fetchReviewComments(gh, issue, prNumber, cwd) {
|
|
139
|
+
const stdout = await gh([
|
|
140
|
+
'api',
|
|
141
|
+
`repos/${issue.owner}/${issue.repo}/pulls/${prNumber}/comments`,
|
|
142
|
+
'--paginate',
|
|
143
|
+
], { cwd });
|
|
144
|
+
return JSON.parse(stdout);
|
|
145
|
+
}
|
|
146
|
+
async function fetchStatusCheckRollup(gh, issue, prNumber, cwd) {
|
|
147
|
+
const stdout = await gh([
|
|
148
|
+
'pr',
|
|
149
|
+
'view',
|
|
150
|
+
String(prNumber),
|
|
151
|
+
'--repo',
|
|
152
|
+
`${issue.owner}/${issue.repo}`,
|
|
153
|
+
'--json',
|
|
154
|
+
'statusCheckRollup',
|
|
155
|
+
], { cwd });
|
|
156
|
+
const data = JSON.parse(stdout);
|
|
157
|
+
const rollup = data.statusCheckRollup;
|
|
158
|
+
if (Array.isArray(rollup)) {
|
|
159
|
+
return rollup;
|
|
160
|
+
}
|
|
161
|
+
return [];
|
|
162
|
+
}
|
|
163
|
+
function collectReviewUpdates(reviews, lastSeenId, bootstrapOnly, prNumber) {
|
|
164
|
+
const submitted = reviews.filter((review) => review.submitted_at);
|
|
165
|
+
if (submitted.length === 0) {
|
|
166
|
+
return { updates: [], lastId: lastSeenId };
|
|
167
|
+
}
|
|
168
|
+
const sorted = [...submitted].sort((a, b) => a.id - b.id);
|
|
169
|
+
const lastNumeric = lastSeenId ? Number.parseInt(lastSeenId, 10) : undefined;
|
|
170
|
+
const newReviews = lastNumeric === undefined
|
|
171
|
+
? sorted
|
|
172
|
+
: sorted.filter((review) => review.id > lastNumeric);
|
|
173
|
+
const lastId = String(sorted[sorted.length - 1].id);
|
|
174
|
+
if (bootstrapOnly || newReviews.length === 0) {
|
|
175
|
+
return { updates: [], lastId };
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
updates: newReviews.map((review) => ({
|
|
179
|
+
id: `pr-review:${review.id}`,
|
|
180
|
+
kind: 'pr.review',
|
|
181
|
+
summary: `PR #${prNumber} レビュー(@${review.user.login}・${review.state})`,
|
|
182
|
+
url: review.html_url,
|
|
183
|
+
author: review.user.login,
|
|
184
|
+
bodyPreview: previewBody(review.body),
|
|
185
|
+
prNumber,
|
|
186
|
+
})),
|
|
187
|
+
lastId,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function collectReviewCommentUpdates(comments, lastSeenId, bootstrapOnly, prNumber) {
|
|
191
|
+
if (comments.length === 0) {
|
|
192
|
+
return { updates: [], lastId: lastSeenId };
|
|
193
|
+
}
|
|
194
|
+
const sorted = [...comments].sort((a, b) => a.id - b.id);
|
|
195
|
+
const lastNumeric = lastSeenId ? Number.parseInt(lastSeenId, 10) : undefined;
|
|
196
|
+
const newComments = lastNumeric === undefined
|
|
197
|
+
? sorted
|
|
198
|
+
: sorted.filter((comment) => comment.id > lastNumeric);
|
|
199
|
+
const lastId = String(sorted[sorted.length - 1].id);
|
|
200
|
+
if (bootstrapOnly || newComments.length === 0) {
|
|
201
|
+
return { updates: [], lastId };
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
updates: newComments.map((comment) => ({
|
|
205
|
+
id: `pr-review-comment:${comment.id}`,
|
|
206
|
+
kind: 'pr.review_comment',
|
|
207
|
+
summary: `PR #${prNumber} インラインコメント(@${comment.user.login}・${comment.path})`,
|
|
208
|
+
url: comment.html_url,
|
|
209
|
+
author: comment.user.login,
|
|
210
|
+
bodyPreview: previewBody(comment.body),
|
|
211
|
+
prNumber,
|
|
212
|
+
})),
|
|
213
|
+
lastId,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function collectCiUpdates(input) {
|
|
217
|
+
const updates = [];
|
|
218
|
+
const pendingNow = new Set();
|
|
219
|
+
const previousPending = new Set(input.pendingCheckNames);
|
|
220
|
+
const notified = new Set(input.notifiedCheckNames);
|
|
221
|
+
const hadPreviousSnapshot = previousPending.size > 0;
|
|
222
|
+
for (const check of input.checkRuns) {
|
|
223
|
+
const name = check.name;
|
|
224
|
+
const status = check.status.toUpperCase();
|
|
225
|
+
if (isPendingCheckStatus(status)) {
|
|
226
|
+
pendingNow.add(name);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
if (status !== 'COMPLETED') {
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
const conclusion = (check.conclusion ?? 'UNKNOWN').toUpperCase();
|
|
233
|
+
if (!hadPreviousSnapshot || !previousPending.has(name)) {
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (notified.has(name)) {
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (input.bootstrapOnly) {
|
|
240
|
+
notified.add(name);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
updates.push({
|
|
244
|
+
id: `ci:${input.prNumber}:${name}:${conclusion}`,
|
|
245
|
+
kind: 'ci.completed',
|
|
246
|
+
summary: `PR #${input.prNumber} CI 完了(${name}・${conclusion})`,
|
|
247
|
+
url: check.detailsUrl,
|
|
248
|
+
prNumber: input.prNumber,
|
|
249
|
+
checkName: name,
|
|
250
|
+
checkConclusion: conclusion,
|
|
251
|
+
});
|
|
252
|
+
notified.add(name);
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
updates,
|
|
256
|
+
pendingCheckNames: [...pendingNow],
|
|
257
|
+
notifiedCheckNames: [...notified],
|
|
258
|
+
hasPendingCi: pendingNow.size > 0,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function isPendingCheckStatus(status) {
|
|
262
|
+
return (status === 'QUEUED' ||
|
|
263
|
+
status === 'IN_PROGRESS' ||
|
|
264
|
+
status === 'PENDING' ||
|
|
265
|
+
status === 'WAITING');
|
|
266
|
+
}
|
|
267
|
+
function previewBody(body) {
|
|
268
|
+
const trimmed = body.trim().replace(/\s+/g, ' ');
|
|
269
|
+
if (trimmed.length <= BODY_PREVIEW_MAX) {
|
|
270
|
+
return trimmed;
|
|
271
|
+
}
|
|
272
|
+
return `${trimmed.slice(0, BODY_PREVIEW_MAX)}…`;
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=fetch-github-updates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-github-updates.js","sourceRoot":"","sources":["../../src/github/fetch-github-updates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IssueContext } from './issue-context.js';
|
|
2
|
+
/**
|
|
3
|
+
* Issue 文脈を conductor 初回 send 用 Markdown(セクション + YAML メタ)に整形する。
|
|
4
|
+
* objective の Issue 番号と対応する正本。URL は base objective に載るためここでは繰り返さない。
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatIssueContextForPrompt(context: IssueContext): string;
|
|
7
|
+
/** Issue メタデータと comments 索引を YAML ブロックに整形する。 */
|
|
8
|
+
export declare function formatIssueContextYaml(context: IssueContext): string;
|
|
9
|
+
//# sourceMappingURL=format-issue-context-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-issue-context-prompt.d.ts","sourceRoot":"","sources":["../../src/github/format-issue-context-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAkBzE;AAED,gDAAgD;AAChD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAapE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import yaml from 'js-yaml';
|
|
2
|
+
/**
|
|
3
|
+
* Issue 文脈を conductor 初回 send 用 Markdown(セクション + YAML メタ)に整形する。
|
|
4
|
+
* objective の Issue 番号と対応する正本。URL は base objective に載るためここでは繰り返さない。
|
|
5
|
+
*/
|
|
6
|
+
export function formatIssueContextForPrompt(context) {
|
|
7
|
+
const sections = [
|
|
8
|
+
'Issue の正本(title / body / comments)。objective の Issue 番号と対応する。',
|
|
9
|
+
'',
|
|
10
|
+
'## Description',
|
|
11
|
+
'',
|
|
12
|
+
context.body.trim() || '(empty)',
|
|
13
|
+
];
|
|
14
|
+
if (context.comments.length > 0) {
|
|
15
|
+
sections.push('', '## Comments');
|
|
16
|
+
for (const comment of context.comments) {
|
|
17
|
+
sections.push('', formatCommentSection(comment));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
sections.push('', formatIssueContextYaml(context));
|
|
21
|
+
return sections.join('\n');
|
|
22
|
+
}
|
|
23
|
+
/** Issue メタデータと comments 索引を YAML ブロックに整形する。 */
|
|
24
|
+
export function formatIssueContextYaml(context) {
|
|
25
|
+
const data = {
|
|
26
|
+
number: context.issue.number,
|
|
27
|
+
title: context.title,
|
|
28
|
+
state: context.state,
|
|
29
|
+
labels: context.labels,
|
|
30
|
+
comments: context.comments.map((comment) => ({
|
|
31
|
+
author: comment.author,
|
|
32
|
+
createdAt: comment.createdAt,
|
|
33
|
+
body: comment.body,
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
return fencedYaml('issue.context', data);
|
|
37
|
+
}
|
|
38
|
+
function formatCommentSection(comment) {
|
|
39
|
+
return [
|
|
40
|
+
`### @${comment.author} (${comment.createdAt})`,
|
|
41
|
+
'',
|
|
42
|
+
comment.body,
|
|
43
|
+
].join('\n');
|
|
44
|
+
}
|
|
45
|
+
function fencedYaml(label, data) {
|
|
46
|
+
return [
|
|
47
|
+
'```yaml',
|
|
48
|
+
`# ${label}`,
|
|
49
|
+
yaml.dump(data, { lineWidth: 120 }).trimEnd(),
|
|
50
|
+
'```',
|
|
51
|
+
].join('\n');
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=format-issue-context-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-issue-context-prompt.js","sourceRoot":"","sources":["../../src/github/format-issue-context-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAqB;IAC/D,MAAM,QAAQ,GAAa;QACzB,+DAA+D;QAC/D,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS;KACjC,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,sBAAsB,CAAC,OAAqB;IAC1D,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;KACJ,CAAC;IACF,OAAO,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAqB;IACjD,OAAO;QACL,QAAQ,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG;QAC/C,EAAE;QACF,OAAO,CAAC,IAAI;KACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAa;IAC9C,OAAO;QACL,SAAS;QACT,KAAK,KAAK,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7C,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** PR 単位の GitHub 監視カーソル。 */
|
|
2
|
+
export interface PullRequestMonitorCursor {
|
|
3
|
+
lastReviewId?: string;
|
|
4
|
+
lastReviewCommentId?: string;
|
|
5
|
+
/** 前回 poll 時点で pending だった check 名。 */
|
|
6
|
+
pendingCheckNames?: string[];
|
|
7
|
+
/** 完了通知済みの check 名(重複 wakeup 防止)。 */
|
|
8
|
+
notifiedCheckNames?: string[];
|
|
9
|
+
}
|
|
10
|
+
/** sidecar に永続化する GitHub 監視カーソル。 */
|
|
11
|
+
export interface GitHubMonitorCursor {
|
|
12
|
+
/** 最後に処理した Issue コメント ID(文字列)。 */
|
|
13
|
+
lastIssueCommentId?: string;
|
|
14
|
+
/** PR 番号(文字列キー)ごとのカーソル。 */
|
|
15
|
+
pullRequests?: Record<string, PullRequestMonitorCursor>;
|
|
16
|
+
}
|
|
17
|
+
export declare function emptyGitHubMonitorCursor(): GitHubMonitorCursor;
|
|
18
|
+
export declare function normalizeGitHubMonitorCursor(cursor?: GitHubMonitorCursor): GitHubMonitorCursor;
|
|
19
|
+
/** 新規セッション初回 poll の bootstrap 対象か(sidecar 復元済みなら false)。 */
|
|
20
|
+
export declare function isEmptyGitHubMonitorCursor(cursor: GitHubMonitorCursor): boolean;
|
|
21
|
+
//# sourceMappingURL=github-monitor-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-monitor-cursor.d.ts","sourceRoot":"","sources":["../../src/github/github-monitor-cursor.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CACzD;AAED,wBAAgB,wBAAwB,IAAI,mBAAmB,CAE9D;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,CAAC,EAAE,mBAAmB,GAC3B,mBAAmB,CAKrB;AAED,4DAA4D;AAC5D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAe/E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function emptyGitHubMonitorCursor() {
|
|
2
|
+
return { pullRequests: {} };
|
|
3
|
+
}
|
|
4
|
+
export function normalizeGitHubMonitorCursor(cursor) {
|
|
5
|
+
return {
|
|
6
|
+
lastIssueCommentId: cursor?.lastIssueCommentId,
|
|
7
|
+
pullRequests: { ...(cursor?.pullRequests ?? {}) },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/** 新規セッション初回 poll の bootstrap 対象か(sidecar 復元済みなら false)。 */
|
|
11
|
+
export function isEmptyGitHubMonitorCursor(cursor) {
|
|
12
|
+
if (cursor.lastIssueCommentId) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
for (const pr of Object.values(cursor.pullRequests ?? {})) {
|
|
16
|
+
if (pr.lastReviewId ||
|
|
17
|
+
pr.lastReviewCommentId ||
|
|
18
|
+
(pr.pendingCheckNames?.length ?? 0) > 0 ||
|
|
19
|
+
(pr.notifiedCheckNames?.length ?? 0) > 0) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=github-monitor-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-monitor-cursor.js","sourceRoot":"","sources":["../../src/github/github-monitor-cursor.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAA4B;IAE5B,OAAO;QACL,kBAAkB,EAAE,MAAM,EAAE,kBAAkB;QAC9C,YAAY,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,0BAA0B,CAAC,MAA2B;IACpE,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1D,IACE,EAAE,CAAC,YAAY;YACf,EAAE,CAAC,mBAAmB;YACtB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YACvC,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EACxC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type GitHubMonitorCursor } from './github-monitor-cursor.js';
|
|
2
|
+
import type { GitHubUpdatePayload } from './github-update-types.js';
|
|
3
|
+
import { runGh } from './run-gh.js';
|
|
4
|
+
export declare const DEFAULT_GITHUB_MONITOR_DEBOUNCE_MS = 30000;
|
|
5
|
+
export declare const DEFAULT_GITHUB_MONITOR_POLL_INTERVAL_MS = 60000;
|
|
6
|
+
export declare const DEFAULT_GITHUB_MONITOR_ACTIVE_POLL_INTERVAL_MS = 15000;
|
|
7
|
+
export interface GitHubMonitorOptions {
|
|
8
|
+
issueUrl: string;
|
|
9
|
+
cwd?: string;
|
|
10
|
+
cursor?: GitHubMonitorCursor;
|
|
11
|
+
debounceMs?: number;
|
|
12
|
+
pollIntervalMs?: number;
|
|
13
|
+
activePollIntervalMs?: number;
|
|
14
|
+
onUpdate: (payload: GitHubUpdatePayload) => void;
|
|
15
|
+
onCursorChange?: (cursor: GitHubMonitorCursor) => void;
|
|
16
|
+
onPollError?: (error: unknown) => void;
|
|
17
|
+
shutdownSignal?: AbortSignal;
|
|
18
|
+
runGhFn?: typeof runGh;
|
|
19
|
+
}
|
|
20
|
+
export interface GitHubMonitor {
|
|
21
|
+
start(): void;
|
|
22
|
+
stop(): Promise<void>;
|
|
23
|
+
flush(): void;
|
|
24
|
+
getCursor(): GitHubMonitorCursor;
|
|
25
|
+
}
|
|
26
|
+
export declare function createGitHubMonitor(options: GitHubMonitorOptions): GitHubMonitor;
|
|
27
|
+
//# sourceMappingURL=github-monitor.d.ts.map
|