lastlight 0.1.8 → 0.2.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/README.md +265 -118
- package/agent-context/rules.md +62 -9
- package/agent-context/security.md +69 -0
- package/config/default.yaml +89 -0
- package/deploy/.env.production.example +20 -2
- package/deploy/entrypoint.sh +16 -17
- package/deploy/native/README.md +160 -0
- package/deploy/native/install.sh +110 -0
- package/deploy/native/lastlight.env.example +95 -0
- package/deploy/native/lastlight.service +50 -0
- package/deploy/sandbox-entrypoint.sh +59 -42
- package/dist/admin/auth.d.ts +1 -1
- package/dist/admin/auth.js +3 -1
- package/dist/admin/auth.js.map +1 -1
- package/dist/admin/chat-session-reader.d.ts +11 -14
- package/dist/admin/chat-session-reader.js +27 -51
- package/dist/admin/chat-session-reader.js.map +1 -1
- package/dist/admin/docker.d.ts +37 -0
- package/dist/admin/docker.js +86 -1
- package/dist/admin/docker.js.map +1 -1
- package/dist/admin/index.js +38 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/log-search.test.d.ts +1 -0
- package/dist/admin/log-search.test.js +78 -0
- package/dist/admin/log-search.test.js.map +1 -0
- package/dist/admin/routes.d.ts +52 -3
- package/dist/admin/routes.js +780 -63
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/routes.test.js +680 -14
- package/dist/admin/routes.test.js.map +1 -1
- package/dist/admin/server-logs.test.d.ts +1 -0
- package/dist/admin/server-logs.test.js +58 -0
- package/dist/admin/server-logs.test.js.map +1 -0
- package/dist/admin/sessions.d.ts +26 -39
- package/dist/admin/sessions.js +86 -310
- package/dist/admin/sessions.js.map +1 -1
- package/dist/admin/sessions.test.d.ts +1 -0
- package/dist/admin/sessions.test.js +78 -0
- package/dist/admin/sessions.test.js.map +1 -0
- package/dist/admin/version.d.ts +15 -0
- package/dist/admin/version.js +73 -0
- package/dist/admin/version.js.map +1 -0
- package/dist/admin/version.test.d.ts +1 -0
- package/dist/admin/version.test.js +71 -0
- package/dist/admin/version.test.js.map +1 -0
- package/dist/cli-config.d.ts +55 -0
- package/dist/cli-config.js +119 -0
- package/dist/cli-config.js.map +1 -0
- package/dist/cli-config.test.d.ts +1 -0
- package/dist/cli-config.test.js +92 -0
- package/dist/cli-config.test.js.map +1 -0
- package/dist/cli-format.d.ts +19 -0
- package/dist/cli-format.js +107 -0
- package/dist/cli-format.js.map +1 -0
- package/dist/cli-server.d.ts +73 -0
- package/dist/cli-server.js +347 -0
- package/dist/cli-server.js.map +1 -0
- package/dist/cli-server.test.d.ts +1 -0
- package/dist/cli-server.test.js +38 -0
- package/dist/cli-server.test.js.map +1 -0
- package/dist/cli-timeline.d.ts +35 -0
- package/dist/cli-timeline.js +373 -0
- package/dist/cli-timeline.js.map +1 -0
- package/dist/cli-timeline.test.d.ts +1 -0
- package/dist/cli-timeline.test.js +104 -0
- package/dist/cli-timeline.test.js.map +1 -0
- package/dist/cli.d.ts +0 -19
- package/dist/cli.js +910 -194
- package/dist/cli.js.map +1 -1
- package/dist/config-overlay.test.d.ts +1 -0
- package/dist/config-overlay.test.js +112 -0
- package/dist/config-overlay.test.js.map +1 -0
- package/dist/config-resolve.d.ts +28 -0
- package/dist/config-resolve.js +47 -0
- package/dist/config-resolve.js.map +1 -0
- package/dist/config-resolve.test.d.ts +1 -0
- package/dist/config-resolve.test.js +68 -0
- package/dist/config-resolve.test.js.map +1 -0
- package/dist/config.d.ts +62 -49
- package/dist/config.js +452 -76
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +201 -32
- package/dist/config.test.js.map +1 -1
- package/dist/connectors/github-webhook.js +83 -5
- package/dist/connectors/github-webhook.js.map +1 -1
- package/dist/connectors/github-webhook.test.d.ts +1 -0
- package/dist/connectors/github-webhook.test.js +156 -0
- package/dist/connectors/github-webhook.test.js.map +1 -0
- package/dist/connectors/messaging/session-manager.d.ts +18 -0
- package/dist/connectors/messaging/session-manager.js +83 -2
- package/dist/connectors/messaging/session-manager.js.map +1 -1
- package/dist/connectors/messaging/session-manager.test.d.ts +1 -0
- package/dist/connectors/messaging/session-manager.test.js +144 -0
- package/dist/connectors/messaging/session-manager.test.js.map +1 -0
- package/dist/connectors/slack/connector.d.ts +9 -0
- package/dist/connectors/slack/connector.js +15 -0
- package/dist/connectors/slack/connector.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.js +81 -0
- package/dist/connectors/slack/mrkdwn.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.test.js +49 -0
- package/dist/connectors/slack/mrkdwn.test.js.map +1 -1
- package/dist/connectors/types.d.ts +1 -1
- package/dist/cron/fanout.d.ts +33 -0
- package/dist/cron/fanout.js +55 -0
- package/dist/cron/fanout.js.map +1 -0
- package/dist/cron/fanout.test.d.ts +1 -0
- package/dist/cron/fanout.test.js +73 -0
- package/dist/cron/fanout.test.js.map +1 -0
- package/dist/cron/jobs.d.ts +5 -0
- package/dist/cron/jobs.js +10 -3
- package/dist/cron/jobs.js.map +1 -1
- package/dist/cron/scheduler.d.ts +12 -0
- package/dist/cron/scheduler.js +27 -1
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/engine/agent-executor.d.ts +158 -0
- package/dist/engine/agent-executor.js +1140 -0
- package/dist/engine/agent-executor.js.map +1 -0
- package/dist/engine/agent-executor.test.d.ts +1 -0
- package/dist/engine/agent-executor.test.js +395 -0
- package/dist/engine/agent-executor.test.js.map +1 -0
- package/dist/engine/chat-runner.d.ts +123 -0
- package/dist/engine/chat-runner.js +379 -0
- package/dist/engine/chat-runner.js.map +1 -0
- package/dist/engine/chat-runner.test.d.ts +1 -0
- package/dist/engine/chat-runner.test.js +104 -0
- package/dist/engine/chat-runner.test.js.map +1 -0
- package/dist/engine/chat-skills.d.ts +45 -0
- package/dist/engine/chat-skills.js +184 -0
- package/dist/engine/chat-skills.js.map +1 -0
- package/dist/engine/chat-skills.test.d.ts +1 -0
- package/dist/engine/chat-skills.test.js +20 -0
- package/dist/engine/chat-skills.test.js.map +1 -0
- package/dist/engine/chat.d.ts +20 -23
- package/dist/engine/chat.js +251 -155
- package/dist/engine/chat.js.map +1 -1
- package/dist/engine/chat.test.d.ts +1 -0
- package/dist/engine/chat.test.js +42 -0
- package/dist/engine/chat.test.js.map +1 -0
- package/dist/engine/classifier.d.ts +35 -2
- package/dist/engine/classifier.js +170 -31
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/classifier.test.d.ts +1 -0
- package/dist/engine/classifier.test.js +115 -0
- package/dist/engine/classifier.test.js.map +1 -0
- package/dist/engine/dispatcher.d.ts +60 -0
- package/dist/engine/dispatcher.js +601 -0
- package/dist/engine/dispatcher.js.map +1 -0
- package/dist/engine/dispatcher.test.d.ts +1 -0
- package/dist/engine/dispatcher.test.js +511 -0
- package/dist/engine/dispatcher.test.js.map +1 -0
- package/dist/engine/event-shim.d.ts +117 -0
- package/dist/engine/event-shim.js +435 -0
- package/dist/engine/event-shim.js.map +1 -0
- package/dist/engine/event-shim.test.d.ts +1 -0
- package/dist/engine/event-shim.test.js +194 -0
- package/dist/engine/event-shim.test.js.map +1 -0
- package/dist/engine/git-auth.d.ts +13 -17
- package/dist/engine/git-auth.js +99 -42
- package/dist/engine/git-auth.js.map +1 -1
- package/dist/engine/git-auth.test.d.ts +1 -0
- package/dist/engine/git-auth.test.js +117 -0
- package/dist/engine/git-auth.test.js.map +1 -0
- package/dist/engine/github-app-client.d.ts +7 -0
- package/dist/engine/github-app-client.js +16 -0
- package/dist/engine/github-app-client.js.map +1 -0
- package/dist/engine/github-app-client.test.d.ts +1 -0
- package/dist/engine/github-app-client.test.js +44 -0
- package/dist/engine/github-app-client.test.js.map +1 -0
- package/dist/engine/github-tools.d.ts +12 -0
- package/dist/engine/github-tools.js +261 -0
- package/dist/engine/github-tools.js.map +1 -0
- package/dist/engine/github.d.ts +1027 -43
- package/dist/engine/github.js +153 -14
- package/dist/engine/github.js.map +1 -1
- package/dist/engine/llm.d.ts +47 -0
- package/dist/engine/llm.js +221 -0
- package/dist/engine/llm.js.map +1 -0
- package/dist/engine/llm.test.d.ts +1 -0
- package/dist/engine/llm.test.js +189 -0
- package/dist/engine/llm.test.js.map +1 -0
- package/dist/engine/profiles.d.ts +249 -0
- package/dist/engine/profiles.js +42 -0
- package/dist/engine/profiles.js.map +1 -0
- package/dist/engine/router.d.ts +12 -6
- package/dist/engine/router.js +339 -81
- package/dist/engine/router.js.map +1 -1
- package/dist/engine/router.test.js +428 -78
- package/dist/engine/router.test.js.map +1 -1
- package/dist/engine/screen.d.ts +41 -0
- package/dist/engine/screen.js +93 -0
- package/dist/engine/screen.js.map +1 -0
- package/dist/engine/screen.test.d.ts +1 -0
- package/dist/engine/screen.test.js +82 -0
- package/dist/engine/screen.test.js.map +1 -0
- package/dist/index.js +423 -437
- package/dist/index.js.map +1 -1
- package/dist/managed-repos.d.ts +7 -9
- package/dist/managed-repos.js +12 -15
- package/dist/managed-repos.js.map +1 -1
- package/dist/managed-repos.test.js +24 -19
- package/dist/managed-repos.test.js.map +1 -1
- package/dist/notify/index.d.ts +15 -0
- package/dist/notify/index.js +6 -0
- package/dist/notify/index.js.map +1 -0
- package/dist/notify/model.d.ts +57 -0
- package/dist/notify/model.js +89 -0
- package/dist/notify/model.js.map +1 -0
- package/dist/notify/model.test.d.ts +1 -0
- package/dist/notify/model.test.js +109 -0
- package/dist/notify/model.test.js.map +1 -0
- package/dist/notify/notifier.d.ts +17 -0
- package/dist/notify/notifier.js +87 -0
- package/dist/notify/notifier.js.map +1 -0
- package/dist/notify/notifier.test.d.ts +1 -0
- package/dist/notify/notifier.test.js +100 -0
- package/dist/notify/notifier.test.js.map +1 -0
- package/dist/notify/render.d.ts +21 -0
- package/dist/notify/render.js +59 -0
- package/dist/notify/render.js.map +1 -0
- package/dist/notify/render.test.d.ts +1 -0
- package/dist/notify/render.test.js +65 -0
- package/dist/notify/render.test.js.map +1 -0
- package/dist/notify/transports/github.d.ts +26 -0
- package/dist/notify/transports/github.js +26 -0
- package/dist/notify/transports/github.js.map +1 -0
- package/dist/notify/transports/slack.d.ts +26 -0
- package/dist/notify/transports/slack.js +28 -0
- package/dist/notify/transports/slack.js.map +1 -0
- package/dist/notify/transports.test.d.ts +1 -0
- package/dist/notify/transports.test.js +71 -0
- package/dist/notify/transports.test.js.map +1 -0
- package/dist/notify/types.d.ts +95 -0
- package/dist/notify/types.js +16 -0
- package/dist/notify/types.js.map +1 -0
- package/dist/sandbox/docker-compose.test.d.ts +1 -0
- package/dist/sandbox/docker-compose.test.js +128 -0
- package/dist/sandbox/docker-compose.test.js.map +1 -0
- package/dist/sandbox/docker.d.ts +97 -9
- package/dist/sandbox/docker.js +192 -41
- package/dist/sandbox/docker.js.map +1 -1
- package/dist/sandbox/docker.test.d.ts +1 -0
- package/dist/sandbox/docker.test.js +137 -0
- package/dist/sandbox/docker.test.js.map +1 -0
- package/dist/sandbox/egress-allowlist.d.ts +69 -0
- package/dist/sandbox/egress-allowlist.js +164 -0
- package/dist/sandbox/egress-allowlist.js.map +1 -0
- package/dist/sandbox/egress-allowlist.test.d.ts +1 -0
- package/dist/sandbox/egress-allowlist.test.js +65 -0
- package/dist/sandbox/egress-allowlist.test.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.d.ts +127 -0
- package/dist/sandbox/egress-firewall-config.js +434 -0
- package/dist/sandbox/egress-firewall-config.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.test.d.ts +1 -0
- package/dist/sandbox/egress-firewall-config.test.js +244 -0
- package/dist/sandbox/egress-firewall-config.test.js.map +1 -0
- package/dist/sandbox/images.d.ts +23 -0
- package/dist/sandbox/images.js +55 -0
- package/dist/sandbox/images.js.map +1 -0
- package/dist/sandbox/index.d.ts +82 -3
- package/dist/sandbox/index.js +223 -93
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/index.test.d.ts +1 -0
- package/dist/sandbox/index.test.js +157 -0
- package/dist/sandbox/index.test.js.map +1 -0
- package/dist/session-log.d.ts +63 -0
- package/dist/session-log.js +290 -0
- package/dist/session-log.js.map +1 -0
- package/dist/session-log.test.d.ts +1 -0
- package/dist/session-log.test.js +85 -0
- package/dist/session-log.test.js.map +1 -0
- package/dist/setup.d.ts +31 -12
- package/dist/setup.js +516 -174
- package/dist/setup.js.map +1 -1
- package/dist/setup.test.js +138 -6
- package/dist/setup.test.js.map +1 -1
- package/dist/state/approval-store.d.ts +86 -0
- package/dist/state/approval-store.js +140 -0
- package/dist/state/approval-store.js.map +1 -0
- package/dist/state/build-assets.d.ts +50 -0
- package/dist/state/build-assets.js +154 -0
- package/dist/state/build-assets.js.map +1 -0
- package/dist/state/build-assets.test.d.ts +1 -0
- package/dist/state/build-assets.test.js +106 -0
- package/dist/state/build-assets.test.js.map +1 -0
- package/dist/state/db.d.ts +65 -333
- package/dist/state/db.js +112 -835
- package/dist/state/db.js.map +1 -1
- package/dist/state/db.test.js +127 -91
- package/dist/state/db.test.js.map +1 -1
- package/dist/state/execution-store.d.ts +257 -0
- package/dist/state/execution-store.js +527 -0
- package/dist/state/execution-store.js.map +1 -0
- package/dist/state/migrate.d.ts +15 -0
- package/dist/state/migrate.js +175 -0
- package/dist/state/migrate.js.map +1 -0
- package/dist/state/workflow-run-store.d.ts +195 -0
- package/dist/state/workflow-run-store.js +363 -0
- package/dist/state/workflow-run-store.js.map +1 -0
- package/dist/state/workflow-run-store.test.d.ts +1 -0
- package/dist/state/workflow-run-store.test.js +264 -0
- package/dist/state/workflow-run-store.test.js.map +1 -0
- package/dist/telemetry/index.d.ts +38 -0
- package/dist/telemetry/index.js +253 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/index.test.d.ts +1 -0
- package/dist/telemetry/index.test.js +73 -0
- package/dist/telemetry/index.test.js.map +1 -0
- package/dist/telemetry/pi-events.d.ts +12 -0
- package/dist/telemetry/pi-events.js +134 -0
- package/dist/telemetry/pi-events.js.map +1 -0
- package/dist/telemetry/pi-events.test.d.ts +1 -0
- package/dist/telemetry/pi-events.test.js +69 -0
- package/dist/telemetry/pi-events.test.js.map +1 -0
- package/dist/workflows/dag.d.ts +13 -1
- package/dist/workflows/dag.js +7 -3
- package/dist/workflows/dag.js.map +1 -1
- package/dist/workflows/dag.test.js +22 -0
- package/dist/workflows/dag.test.js.map +1 -1
- package/dist/workflows/golden-build.test.d.ts +1 -0
- package/dist/workflows/golden-build.test.js +45 -0
- package/dist/workflows/golden-build.test.js.map +1 -0
- package/dist/workflows/loader-overlay.test.d.ts +1 -0
- package/dist/workflows/loader-overlay.test.js +101 -0
- package/dist/workflows/loader-overlay.test.js.map +1 -0
- package/dist/workflows/loader.d.ts +36 -11
- package/dist/workflows/loader.js +311 -87
- package/dist/workflows/loader.js.map +1 -1
- package/dist/workflows/loader.test.js +114 -10
- package/dist/workflows/loader.test.js.map +1 -1
- package/dist/workflows/loop-eval.js +2 -0
- package/dist/workflows/loop-eval.js.map +1 -1
- package/dist/workflows/loop-eval.test.js +14 -0
- package/dist/workflows/loop-eval.test.js.map +1 -1
- package/dist/workflows/phase-executor.d.ts +145 -0
- package/dist/workflows/phase-executor.js +691 -0
- package/dist/workflows/phase-executor.js.map +1 -0
- package/dist/workflows/phase-executor.test.d.ts +1 -0
- package/dist/workflows/phase-executor.test.js +434 -0
- package/dist/workflows/phase-executor.test.js.map +1 -0
- package/dist/workflows/phase-ref.d.ts +44 -0
- package/dist/workflows/phase-ref.js +78 -0
- package/dist/workflows/phase-ref.js.map +1 -0
- package/dist/workflows/phase-ref.test.d.ts +1 -0
- package/dist/workflows/phase-ref.test.js +24 -0
- package/dist/workflows/phase-ref.test.js.map +1 -0
- package/dist/workflows/resume.d.ts +5 -11
- package/dist/workflows/resume.js +88 -7
- package/dist/workflows/resume.js.map +1 -1
- package/dist/workflows/runner.d.ts +34 -27
- package/dist/workflows/runner.js +252 -930
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/runner.test.js +346 -35
- package/dist/workflows/runner.test.js.map +1 -1
- package/dist/workflows/schema.d.ts +52 -10
- package/dist/workflows/schema.js +147 -7
- package/dist/workflows/schema.js.map +1 -1
- package/dist/workflows/simple.d.ts +67 -3
- package/dist/workflows/simple.js +248 -87
- package/dist/workflows/simple.js.map +1 -1
- package/dist/workflows/simple.test.d.ts +1 -0
- package/dist/workflows/simple.test.js +107 -0
- package/dist/workflows/simple.test.js.map +1 -0
- package/dist/workflows/templates.d.ts +29 -0
- package/dist/workflows/templates.js +42 -4
- package/dist/workflows/templates.js.map +1 -1
- package/dist/workflows/templates.test.js +103 -0
- package/dist/workflows/templates.test.js.map +1 -1
- package/dist/workflows/triggers.d.ts +21 -0
- package/dist/workflows/triggers.js +44 -0
- package/dist/workflows/triggers.js.map +1 -0
- package/dist/workflows/verdict.d.ts +19 -0
- package/dist/workflows/verdict.js +30 -0
- package/dist/workflows/verdict.js.map +1 -0
- package/dist/workflows/verdict.test.d.ts +1 -0
- package/dist/workflows/verdict.test.js +44 -0
- package/dist/workflows/verdict.test.js.map +1 -0
- package/dist/worktree/manager.d.ts +1 -1
- package/dist/worktree/manager.js +14 -14
- package/dist/worktree/manager.js.map +1 -1
- package/dist/worktree/manager.test.d.ts +1 -0
- package/dist/worktree/manager.test.js +87 -0
- package/dist/worktree/manager.test.js.map +1 -0
- package/docker-compose.yml +206 -5
- package/package.json +19 -7
- package/sandbox.Dockerfile +97 -18
- package/skills/README.md +40 -0
- package/skills/browser-qa/SKILL.md +193 -0
- package/skills/browser-qa/scripts/agent-browser.mjs +380 -0
- package/skills/building/SKILL.md +95 -0
- package/skills/chat/SKILL.md +30 -11
- package/skills/code-review/SKILL.md +59 -0
- package/skills/debug-production/SKILL.md +108 -0
- package/skills/demo/SKILL.md +194 -0
- package/skills/demo/scripts/compose-demo.sh +205 -0
- package/skills/issue-answer/SKILL.md +90 -0
- package/skills/issue-comment/SKILL.md +38 -24
- package/skills/issue-triage/SKILL.md +103 -37
- package/skills/issue-triage/references/AGENT-BRIEF.md +61 -0
- package/skills/pr-comment/SKILL.md +64 -0
- package/skills/pr-review/SKILL.md +65 -49
- package/skills/qa-test/SKILL.md +97 -0
- package/skills/repo-health/SKILL.md +48 -45
- package/skills/security-feedback/SKILL.md +173 -0
- package/skills/security-feedback/references/templates.md +77 -0
- package/skills/security-review/SKILL.md +213 -0
- package/skills/security-review/references/issue-format.md +302 -0
- package/skills/verify/SKILL.md +118 -0
- package/workflows/answer.yaml +37 -0
- package/workflows/build.yaml +32 -22
- package/workflows/cron-security.yaml +6 -0
- package/workflows/demo.yaml +55 -0
- package/workflows/explore.yaml +9 -0
- package/workflows/pr-comment.yaml +16 -0
- package/workflows/pr-fix.yaml +3 -0
- package/workflows/pr-review.yaml +4 -1
- package/workflows/prompts/answer.md +67 -0
- package/workflows/prompts/architect.md +24 -7
- package/workflows/prompts/demo.md +100 -0
- package/workflows/prompts/executor.md +29 -20
- package/workflows/prompts/explore-ask.md +51 -22
- package/workflows/prompts/explore-publish.md +2 -2
- package/workflows/prompts/explore-read.md +24 -10
- package/workflows/prompts/explore-synthesize.md +15 -8
- package/workflows/prompts/fix.md +9 -10
- package/workflows/prompts/guardrails.md +26 -8
- package/workflows/prompts/pr-fix.md +6 -7
- package/workflows/prompts/pr.md +11 -10
- package/workflows/prompts/qa-browser.md +95 -0
- package/workflows/prompts/qa-synth.md +44 -0
- package/workflows/prompts/qa-test.md +60 -0
- package/workflows/prompts/re-reviewer.md +8 -9
- package/workflows/prompts/reviewer.md +10 -9
- package/workflows/prompts/verify-browser.md +93 -0
- package/workflows/prompts/verify-synth.md +44 -0
- package/workflows/prompts/verify.md +63 -0
- package/workflows/qa-test.yaml +87 -0
- package/workflows/security-feedback.yaml +25 -0
- package/workflows/security-review.yaml +29 -0
- package/workflows/verify.yaml +85 -0
- package/deploy/mcp-config.tmpl.json +0 -14
- package/dist/cron/rate-limits.d.ts +0 -26
- package/dist/cron/rate-limits.js +0 -193
- package/dist/cron/rate-limits.js.map +0 -1
- package/dist/engine/executor.d.ts +0 -75
- package/dist/engine/executor.js +0 -292
- package/dist/engine/executor.js.map +0 -1
- package/mcp-github-app/package.json +0 -18
- package/mcp-github-app/src/auth.js +0 -66
- package/mcp-github-app/src/github.js +0 -371
- package/mcp-github-app/src/index.js +0 -534
- package/skills/devops/webhook-subscriptions/SKILL.md +0 -180
- package/skills/github/DESCRIPTION.md +0 -3
- package/skills/github/codebase-inspection/SKILL.md +0 -115
- package/skills/github/github-auth/SKILL.md +0 -54
- package/skills/github/github-auth/scripts/gh-env.sh +0 -66
- package/skills/github/github-code-review/SKILL.md +0 -480
- package/skills/github/github-code-review/references/review-output-template.md +0 -74
- package/skills/github/github-issues/SKILL.md +0 -369
- package/skills/github/github-issues/templates/bug-report.md +0 -35
- package/skills/github/github-issues/templates/feature-request.md +0 -31
- package/skills/github/github-pr-workflow/SKILL.md +0 -395
- package/skills/github/github-pr-workflow/references/ci-troubleshooting.md +0 -183
- package/skills/github/github-pr-workflow/references/conventional-commits.md +0 -71
- package/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +0 -35
- package/skills/github/github-pr-workflow/templates/pr-body-feature.md +0 -33
- package/skills/github/github-repo-management/SKILL.md +0 -515
- package/skills/github/github-repo-management/references/github-api-cheatsheet.md +0 -161
- package/skills/github-orchestrator/SKILL.md +0 -103
- package/skills/mcp/DESCRIPTION.md +0 -3
- package/skills/mcp/mcporter/SKILL.md +0 -122
- package/skills/mcp/native-mcp/SKILL.md +0 -356
- package/skills/software-development/architect/SKILL.md +0 -154
- package/skills/software-development/assure-guardrails/SKILL.md +0 -239
- package/skills/software-development/plan/SKILL.md +0 -64
- package/skills/software-development/requesting-code-review/SKILL.md +0 -291
- package/skills/software-development/subagent-driven-development/SKILL.md +0 -433
- package/skills/software-development/systematic-debugging/SKILL.md +0 -366
- package/skills/software-development/test-driven-development/SKILL.md +0 -342
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { EmitterRecord } from "agentic-pi";
|
|
2
|
+
/**
|
|
3
|
+
* Translates agentic-pi's JSONL event stream into Claude-SDK-style envelope
|
|
4
|
+
* jsonl on disk, so the dashboard's `SessionReader` /
|
|
5
|
+
* `ChatSessionReader` (`src/admin/`) keeps working unchanged.
|
|
6
|
+
*
|
|
7
|
+
* agentic-pi event → envelope mapping (see agentic-pi/src/emitter.ts and
|
|
8
|
+
* survey in ~/.claude/plans/ok-i-want-noble-sphinx.md):
|
|
9
|
+
*
|
|
10
|
+
* session → header (no envelope line; pins the on-disk
|
|
11
|
+
* path), followed by a `user` line carrying
|
|
12
|
+
* the initial prompt.
|
|
13
|
+
* message_end (assistant) → `assistant` envelope with content (text +
|
|
14
|
+
* tool_use blocks).
|
|
15
|
+
* tool_execution_end → `user` envelope with a `tool_result` block.
|
|
16
|
+
* usage_snapshot → `result` envelope (cost / tokens / turns).
|
|
17
|
+
* fatal_error → `assistant` envelope with isApiErrorMessage.
|
|
18
|
+
*
|
|
19
|
+
* Tool naming: agentic-pi names its github tools `github_*`. Earlier
|
|
20
|
+
* (OpenCode + MCP), tool names were rewritten to `mcp_github_*` before
|
|
21
|
+
* reaching the dashboard, and the dashboard's tool-family classifier
|
|
22
|
+
* already accepts the bare `github_` prefix as a github tool. We pass
|
|
23
|
+
* tool names through unchanged.
|
|
24
|
+
*/
|
|
25
|
+
export interface AgenticShimOptions {
|
|
26
|
+
/** Root sessions dir — contains the `projects/<slug>/` tree. */
|
|
27
|
+
homeDir: string;
|
|
28
|
+
/** Project-dir slug, e.g. "-home-agent-workspace" or "-app". */
|
|
29
|
+
projectSlug: string;
|
|
30
|
+
/** Model id surfaced on assistant envelopes. */
|
|
31
|
+
model?: string;
|
|
32
|
+
/** Original user prompt — written as the first envelope. */
|
|
33
|
+
initialPrompt: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ShimResultEnvelope {
|
|
36
|
+
finalText: string;
|
|
37
|
+
turns: number;
|
|
38
|
+
costUsd: number;
|
|
39
|
+
inputTokens: number;
|
|
40
|
+
outputTokens: number;
|
|
41
|
+
cacheReadInputTokens: number;
|
|
42
|
+
cacheCreationInputTokens: number;
|
|
43
|
+
stopReason: string;
|
|
44
|
+
durationMs: number;
|
|
45
|
+
/**
|
|
46
|
+
* Provider-level error (e.g. OpenAI insufficient_quota) extracted from
|
|
47
|
+
* the last assistant message. When set, an `isApiErrorMessage` envelope
|
|
48
|
+
* is appended before the `result` line so the dashboard renders the
|
|
49
|
+
* cause inline instead of showing a silent "success".
|
|
50
|
+
*/
|
|
51
|
+
apiErrorMessage?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare class AgenticShim {
|
|
54
|
+
private opts;
|
|
55
|
+
private sessionLog;
|
|
56
|
+
private sessionId;
|
|
57
|
+
private writeChain;
|
|
58
|
+
private initialWritten;
|
|
59
|
+
/**
|
|
60
|
+
* Tool calls we have already emitted a `tool_use` block for via
|
|
61
|
+
* `message_end`. Keyed by tool-call id so the matching
|
|
62
|
+
* `tool_execution_end` event can emit the paired `tool_result` block.
|
|
63
|
+
*/
|
|
64
|
+
private seenToolCalls;
|
|
65
|
+
constructor(opts: AgenticShimOptions);
|
|
66
|
+
get isInitialized(): boolean;
|
|
67
|
+
/** Feed one parsed agentic-pi event. */
|
|
68
|
+
feed(record: EmitterRecord): void;
|
|
69
|
+
/**
|
|
70
|
+
* Append a `result` envelope mirroring the existing Claude-stream
|
|
71
|
+
* `result` line. Same shape as the legacy opencode-shim.
|
|
72
|
+
*/
|
|
73
|
+
finalize(result: ShimResultEnvelope): void;
|
|
74
|
+
/**
|
|
75
|
+
* Bootstrap a stub envelope when no `session` record was observed (the
|
|
76
|
+
* run died before agentic-pi got far enough to emit one). Returns the
|
|
77
|
+
* synthetic id actually used for the on-disk file so the caller can
|
|
78
|
+
* record it on the executions row.
|
|
79
|
+
*/
|
|
80
|
+
finalizeWithFallback(result: ShimResultEnvelope, fallbackSessionId: string, errorMessage?: string): Promise<string | null>;
|
|
81
|
+
flush(): Promise<void>;
|
|
82
|
+
private openSession;
|
|
83
|
+
private translate;
|
|
84
|
+
/**
|
|
85
|
+
* Mirror an agentic-pi `extension_status` event (file-search / github /
|
|
86
|
+
* web-search) as a `system` envelope near the top of the session log, so
|
|
87
|
+
* the raw JSONL shows which extensions were active. The dashboard's
|
|
88
|
+
* SessionReader ignores unknown envelope types, so this is render-safe.
|
|
89
|
+
*/
|
|
90
|
+
private translateExtensionStatus;
|
|
91
|
+
/**
|
|
92
|
+
* Mirror agentic-pi's gated `skills_status` event as a `system` envelope in
|
|
93
|
+
* the session log — the skill-loading counterpart to
|
|
94
|
+
* {@link translateExtensionStatus}. Records which skills the agent had
|
|
95
|
+
* available. SessionReader ignores unknown envelope types, so render-safe.
|
|
96
|
+
*/
|
|
97
|
+
private translateSkillsStatus;
|
|
98
|
+
/**
|
|
99
|
+
* Surface pi-coding-agent's auto-retry pause as a `system` breadcrumb so
|
|
100
|
+
* rate-limit / transient-error backoffs are visible in the session timeline
|
|
101
|
+
* (the dashboard renders role-based `system` lines via MetaMessage). Emitted
|
|
102
|
+
* as a role-based line — unlike `extension_status`'s `type: "system"` shape,
|
|
103
|
+
* which the reader drops — so it actually renders.
|
|
104
|
+
*/
|
|
105
|
+
private translateAutoRetryStart;
|
|
106
|
+
/**
|
|
107
|
+
* Pair to {@link translateAutoRetryStart}: a successful recovery, or a
|
|
108
|
+
* give-up (when `finalError` is present).
|
|
109
|
+
*/
|
|
110
|
+
private translateAutoRetryEnd;
|
|
111
|
+
private translateMessageEnd;
|
|
112
|
+
private translateToolEnd;
|
|
113
|
+
private translateFatal;
|
|
114
|
+
private appendLines;
|
|
115
|
+
}
|
|
116
|
+
export declare function safeStringify(v: unknown): string;
|
|
117
|
+
export declare function truncateForLog(s: string, maxBytes?: number): string;
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import { SessionLog } from "../session-log.js";
|
|
2
|
+
export class AgenticShim {
|
|
3
|
+
opts;
|
|
4
|
+
sessionLog;
|
|
5
|
+
sessionId = null;
|
|
6
|
+
writeChain = Promise.resolve();
|
|
7
|
+
initialWritten = false;
|
|
8
|
+
/**
|
|
9
|
+
* Tool calls we have already emitted a `tool_use` block for via
|
|
10
|
+
* `message_end`. Keyed by tool-call id so the matching
|
|
11
|
+
* `tool_execution_end` event can emit the paired `tool_result` block.
|
|
12
|
+
*/
|
|
13
|
+
seenToolCalls = new Set();
|
|
14
|
+
constructor(opts) {
|
|
15
|
+
this.opts = opts;
|
|
16
|
+
this.sessionLog = new SessionLog(opts.homeDir);
|
|
17
|
+
}
|
|
18
|
+
get isInitialized() {
|
|
19
|
+
return this.sessionId !== null;
|
|
20
|
+
}
|
|
21
|
+
/** Feed one parsed agentic-pi event. */
|
|
22
|
+
feed(record) {
|
|
23
|
+
if (!record || typeof record !== "object")
|
|
24
|
+
return;
|
|
25
|
+
const sessionId = typeof record.sessionId === "string"
|
|
26
|
+
? record.sessionId
|
|
27
|
+
: record.type === "session" && typeof record.id === "string"
|
|
28
|
+
? record.id
|
|
29
|
+
: null;
|
|
30
|
+
// The `session` header is the first record and carries the id without
|
|
31
|
+
// a `sessionId` field. Subsequent records all have `sessionId`.
|
|
32
|
+
if (record.type === "session" && typeof record.id === "string") {
|
|
33
|
+
this.openSession(record.id);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!sessionId)
|
|
37
|
+
return;
|
|
38
|
+
if (!this.sessionId)
|
|
39
|
+
this.openSession(sessionId);
|
|
40
|
+
if (!this.sessionId)
|
|
41
|
+
return;
|
|
42
|
+
const ts = isoTimestamp(record.timestamp);
|
|
43
|
+
if (!this.initialWritten) {
|
|
44
|
+
this.initialWritten = true;
|
|
45
|
+
this.appendLines([
|
|
46
|
+
{
|
|
47
|
+
type: "user",
|
|
48
|
+
message: { role: "user", content: this.opts.initialPrompt },
|
|
49
|
+
timestamp: ts,
|
|
50
|
+
sessionId,
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
const out = this.translate(record, ts, sessionId);
|
|
55
|
+
if (out.length)
|
|
56
|
+
this.appendLines(out);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Append a `result` envelope mirroring the existing Claude-stream
|
|
60
|
+
* `result` line. Same shape as the legacy opencode-shim.
|
|
61
|
+
*/
|
|
62
|
+
finalize(result) {
|
|
63
|
+
if (!this.sessionId)
|
|
64
|
+
return;
|
|
65
|
+
const ts = new Date().toISOString();
|
|
66
|
+
const lines = [];
|
|
67
|
+
if (result.apiErrorMessage) {
|
|
68
|
+
lines.push({
|
|
69
|
+
type: "assistant",
|
|
70
|
+
isApiErrorMessage: true,
|
|
71
|
+
error: result.apiErrorMessage,
|
|
72
|
+
timestamp: ts,
|
|
73
|
+
sessionId: this.sessionId,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
lines.push({
|
|
77
|
+
type: "result",
|
|
78
|
+
subtype: result.stopReason === "success" ? "success" : result.stopReason,
|
|
79
|
+
result: result.finalText,
|
|
80
|
+
num_turns: result.turns,
|
|
81
|
+
total_cost_usd: result.costUsd,
|
|
82
|
+
total_input_tokens: result.inputTokens,
|
|
83
|
+
total_output_tokens: result.outputTokens,
|
|
84
|
+
total_cache_read_input_tokens: result.cacheReadInputTokens,
|
|
85
|
+
total_cache_creation_input_tokens: result.cacheCreationInputTokens,
|
|
86
|
+
duration_ms: result.durationMs,
|
|
87
|
+
timestamp: ts,
|
|
88
|
+
});
|
|
89
|
+
this.appendLines(lines);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Bootstrap a stub envelope when no `session` record was observed (the
|
|
93
|
+
* run died before agentic-pi got far enough to emit one). Returns the
|
|
94
|
+
* synthetic id actually used for the on-disk file so the caller can
|
|
95
|
+
* record it on the executions row.
|
|
96
|
+
*/
|
|
97
|
+
async finalizeWithFallback(result, fallbackSessionId, errorMessage) {
|
|
98
|
+
if (!this.sessionId) {
|
|
99
|
+
this.openSession(fallbackSessionId);
|
|
100
|
+
const safeId = this.sessionId;
|
|
101
|
+
if (!safeId) {
|
|
102
|
+
await this.flush();
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const ts = new Date().toISOString();
|
|
106
|
+
const bootstrap = [];
|
|
107
|
+
if (!this.initialWritten) {
|
|
108
|
+
this.initialWritten = true;
|
|
109
|
+
bootstrap.push({
|
|
110
|
+
type: "user",
|
|
111
|
+
message: { role: "user", content: this.opts.initialPrompt },
|
|
112
|
+
timestamp: ts,
|
|
113
|
+
sessionId: safeId,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (errorMessage) {
|
|
117
|
+
bootstrap.push({
|
|
118
|
+
type: "assistant",
|
|
119
|
+
isApiErrorMessage: true,
|
|
120
|
+
error: errorMessage,
|
|
121
|
+
timestamp: ts,
|
|
122
|
+
sessionId: safeId,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (bootstrap.length > 0)
|
|
126
|
+
this.appendLines(bootstrap);
|
|
127
|
+
this.finalize(result);
|
|
128
|
+
await this.flush();
|
|
129
|
+
return safeId;
|
|
130
|
+
}
|
|
131
|
+
this.finalize(result);
|
|
132
|
+
await this.flush();
|
|
133
|
+
return this.sessionId;
|
|
134
|
+
}
|
|
135
|
+
async flush() {
|
|
136
|
+
await this.writeChain;
|
|
137
|
+
}
|
|
138
|
+
openSession(sessionId) {
|
|
139
|
+
const safeId = this.sessionLog.normalizeSessionId(sessionId);
|
|
140
|
+
if (!safeId)
|
|
141
|
+
return;
|
|
142
|
+
this.sessionId = safeId;
|
|
143
|
+
}
|
|
144
|
+
translate(r, ts, sessionId) {
|
|
145
|
+
switch (r.type) {
|
|
146
|
+
case "message_end":
|
|
147
|
+
return this.translateMessageEnd(r, ts, sessionId);
|
|
148
|
+
case "tool_execution_end":
|
|
149
|
+
return this.translateToolEnd(r, ts, sessionId);
|
|
150
|
+
case "extension_status":
|
|
151
|
+
return this.translateExtensionStatus(r, ts, sessionId);
|
|
152
|
+
case "skills_status":
|
|
153
|
+
return this.translateSkillsStatus(r, ts, sessionId);
|
|
154
|
+
case "auto_retry_start":
|
|
155
|
+
return this.translateAutoRetryStart(r, ts, sessionId);
|
|
156
|
+
case "auto_retry_end":
|
|
157
|
+
return this.translateAutoRetryEnd(r, ts, sessionId);
|
|
158
|
+
case "fatal_error":
|
|
159
|
+
return this.translateFatal(r, ts, sessionId);
|
|
160
|
+
default:
|
|
161
|
+
return [];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Mirror an agentic-pi `extension_status` event (file-search / github /
|
|
166
|
+
* web-search) as a `system` envelope near the top of the session log, so
|
|
167
|
+
* the raw JSONL shows which extensions were active. The dashboard's
|
|
168
|
+
* SessionReader ignores unknown envelope types, so this is render-safe.
|
|
169
|
+
*/
|
|
170
|
+
translateExtensionStatus(r, ts, sessionId) {
|
|
171
|
+
if (typeof r.extension !== "string")
|
|
172
|
+
return [];
|
|
173
|
+
return [
|
|
174
|
+
{
|
|
175
|
+
type: "system",
|
|
176
|
+
subtype: "extension_status",
|
|
177
|
+
extension: r.extension,
|
|
178
|
+
status: r.status,
|
|
179
|
+
...(r.mode !== undefined ? { mode: r.mode } : {}),
|
|
180
|
+
...(r.provider !== undefined ? { provider: r.provider } : {}),
|
|
181
|
+
...(r.toolCount !== undefined ? { toolCount: r.toolCount } : {}),
|
|
182
|
+
...(r.reason !== undefined ? { reason: r.reason } : {}),
|
|
183
|
+
timestamp: ts,
|
|
184
|
+
sessionId,
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Mirror agentic-pi's gated `skills_status` event as a `system` envelope in
|
|
190
|
+
* the session log — the skill-loading counterpart to
|
|
191
|
+
* {@link translateExtensionStatus}. Records which skills the agent had
|
|
192
|
+
* available. SessionReader ignores unknown envelope types, so render-safe.
|
|
193
|
+
*/
|
|
194
|
+
translateSkillsStatus(r, ts, sessionId) {
|
|
195
|
+
if (typeof r.status !== "string")
|
|
196
|
+
return [];
|
|
197
|
+
return [
|
|
198
|
+
{
|
|
199
|
+
type: "system",
|
|
200
|
+
subtype: "skills_status",
|
|
201
|
+
status: r.status,
|
|
202
|
+
...(r.discovered !== undefined ? { discovered: r.discovered } : {}),
|
|
203
|
+
...(Array.isArray(r.skills) ? { skills: r.skills } : {}),
|
|
204
|
+
...(Array.isArray(r.mappedPaths) ? { mappedPaths: r.mappedPaths } : {}),
|
|
205
|
+
...(r.noSkills !== undefined ? { noSkills: r.noSkills } : {}),
|
|
206
|
+
timestamp: ts,
|
|
207
|
+
sessionId,
|
|
208
|
+
},
|
|
209
|
+
];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Surface pi-coding-agent's auto-retry pause as a `system` breadcrumb so
|
|
213
|
+
* rate-limit / transient-error backoffs are visible in the session timeline
|
|
214
|
+
* (the dashboard renders role-based `system` lines via MetaMessage). Emitted
|
|
215
|
+
* as a role-based line — unlike `extension_status`'s `type: "system"` shape,
|
|
216
|
+
* which the reader drops — so it actually renders.
|
|
217
|
+
*/
|
|
218
|
+
translateAutoRetryStart(r, ts, sessionId) {
|
|
219
|
+
const attempt = typeof r.attempt === "number" ? r.attempt : undefined;
|
|
220
|
+
const maxAttempts = typeof r.maxAttempts === "number" ? r.maxAttempts : undefined;
|
|
221
|
+
const delayMs = typeof r.delayMs === "number" ? r.delayMs : undefined;
|
|
222
|
+
const reason = typeof r.errorMessage === "string" ? r.errorMessage : "transient error";
|
|
223
|
+
const attemptLabel = attempt !== undefined ? ` ${attempt}${maxAttempts !== undefined ? `/${maxAttempts}` : ""}` : "";
|
|
224
|
+
const delayLabel = delayMs !== undefined ? ` in ${Math.round(delayMs / 1000)}s` : "";
|
|
225
|
+
return [
|
|
226
|
+
{
|
|
227
|
+
role: "system",
|
|
228
|
+
subtype: "auto_retry_start",
|
|
229
|
+
content: `⏳ Auto-retry${attemptLabel}${delayLabel} after model error: ${shortReason(reason)}`,
|
|
230
|
+
timestamp: ts,
|
|
231
|
+
sessionId,
|
|
232
|
+
},
|
|
233
|
+
];
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Pair to {@link translateAutoRetryStart}: a successful recovery, or a
|
|
237
|
+
* give-up (when `finalError` is present).
|
|
238
|
+
*/
|
|
239
|
+
translateAutoRetryEnd(r, ts, sessionId) {
|
|
240
|
+
const attempt = typeof r.attempt === "number" ? r.attempt : undefined;
|
|
241
|
+
const finalError = typeof r.finalError === "string" ? r.finalError : undefined;
|
|
242
|
+
const attemptLabel = attempt !== undefined ? ` ${attempt}` : "";
|
|
243
|
+
const content = finalError
|
|
244
|
+
? `❌ Auto-retry gave up after${attemptLabel} attempt(s): ${shortReason(finalError)}`
|
|
245
|
+
: `✓ Auto-retry recovered after${attemptLabel} attempt(s).`;
|
|
246
|
+
return [
|
|
247
|
+
{
|
|
248
|
+
role: "system",
|
|
249
|
+
subtype: "auto_retry_end",
|
|
250
|
+
content,
|
|
251
|
+
timestamp: ts,
|
|
252
|
+
sessionId,
|
|
253
|
+
},
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
translateMessageEnd(r, ts, sessionId) {
|
|
257
|
+
const message = (r.message ?? {});
|
|
258
|
+
if (message.role !== "assistant" || !Array.isArray(message.content)) {
|
|
259
|
+
return [];
|
|
260
|
+
}
|
|
261
|
+
// Pi's content blocks are text / thinking / toolCall. Map toolCall →
|
|
262
|
+
// tool_use, and preserve thinking blocks as `thinking` blocks so the
|
|
263
|
+
// dashboard's reasoning toggle (session-log.ts → AssistantMessage.tsx)
|
|
264
|
+
// can surface the model's reasoning. Redacted/empty thinking is skipped.
|
|
265
|
+
const out = [];
|
|
266
|
+
for (const c of message.content) {
|
|
267
|
+
if (c.type === "text" && typeof c.text === "string") {
|
|
268
|
+
out.push({ type: "text", text: c.text });
|
|
269
|
+
}
|
|
270
|
+
else if (c.type === "thinking" && typeof c.thinking === "string" && c.thinking.length > 0) {
|
|
271
|
+
out.push({ type: "thinking", thinking: c.thinking });
|
|
272
|
+
}
|
|
273
|
+
else if (c.type === "toolCall") {
|
|
274
|
+
const id = typeof c.id === "string" ? c.id : null;
|
|
275
|
+
const name = typeof c.name === "string" ? c.name : null;
|
|
276
|
+
if (!id || !name)
|
|
277
|
+
continue;
|
|
278
|
+
this.seenToolCalls.add(id);
|
|
279
|
+
out.push({
|
|
280
|
+
type: "tool_use",
|
|
281
|
+
id,
|
|
282
|
+
name,
|
|
283
|
+
input: c.arguments ?? {},
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
if (out.length === 0)
|
|
288
|
+
return [];
|
|
289
|
+
// Carry pi's per-message usage onto the envelope in Claude-SDK shape
|
|
290
|
+
// (input_tokens / output_tokens / cache_*). This is the only
|
|
291
|
+
// compaction-proof source of usage — pi's terminal `usage_snapshot`
|
|
292
|
+
// recomputes from the post-compaction message window and reports zero
|
|
293
|
+
// once a phase auto-compacts. Per-message records are written at
|
|
294
|
+
// finalization, before any compaction rebuild. Keeping them here also
|
|
295
|
+
// lets Claude-style transcript analyzers cost the session directly.
|
|
296
|
+
const assistantMessage = {
|
|
297
|
+
role: "assistant",
|
|
298
|
+
model: this.opts.model,
|
|
299
|
+
content: out,
|
|
300
|
+
};
|
|
301
|
+
const usage = shimUsage(message.usage);
|
|
302
|
+
if (usage)
|
|
303
|
+
assistantMessage.usage = usage;
|
|
304
|
+
return [
|
|
305
|
+
{
|
|
306
|
+
type: "assistant",
|
|
307
|
+
message: assistantMessage,
|
|
308
|
+
timestamp: ts,
|
|
309
|
+
sessionId,
|
|
310
|
+
},
|
|
311
|
+
];
|
|
312
|
+
}
|
|
313
|
+
translateToolEnd(r, ts, sessionId) {
|
|
314
|
+
const id = typeof r.toolCallId === "string"
|
|
315
|
+
? r.toolCallId
|
|
316
|
+
: typeof r.id === "string"
|
|
317
|
+
? r.id
|
|
318
|
+
: null;
|
|
319
|
+
if (!id)
|
|
320
|
+
return [];
|
|
321
|
+
// If we never saw the matching tool_use in a message_end, skip — a
|
|
322
|
+
// result without a use block confuses the dashboard renderer.
|
|
323
|
+
if (!this.seenToolCalls.has(id))
|
|
324
|
+
return [];
|
|
325
|
+
const raw = r.result ?? r.output ?? r.error ?? "";
|
|
326
|
+
const rawString = typeof raw === "string" ? raw : safeStringify(raw);
|
|
327
|
+
const content = truncateForLog(rawString);
|
|
328
|
+
const block = {
|
|
329
|
+
type: "tool_result",
|
|
330
|
+
tool_use_id: id,
|
|
331
|
+
content,
|
|
332
|
+
};
|
|
333
|
+
if (r.isError === true)
|
|
334
|
+
block.is_error = true;
|
|
335
|
+
return [
|
|
336
|
+
{
|
|
337
|
+
type: "user",
|
|
338
|
+
message: { role: "user", content: [block] },
|
|
339
|
+
timestamp: ts,
|
|
340
|
+
sessionId,
|
|
341
|
+
},
|
|
342
|
+
];
|
|
343
|
+
}
|
|
344
|
+
translateFatal(r, ts, sessionId) {
|
|
345
|
+
const err = (r.error ?? {});
|
|
346
|
+
const msg = err.message ?? err.name ?? "fatal error";
|
|
347
|
+
return [
|
|
348
|
+
{
|
|
349
|
+
type: "assistant",
|
|
350
|
+
isApiErrorMessage: true,
|
|
351
|
+
error: String(msg),
|
|
352
|
+
timestamp: ts,
|
|
353
|
+
sessionId,
|
|
354
|
+
},
|
|
355
|
+
];
|
|
356
|
+
}
|
|
357
|
+
appendLines(lines) {
|
|
358
|
+
this.writeChain = this.writeChain
|
|
359
|
+
.then(async () => {
|
|
360
|
+
if (!this.sessionId)
|
|
361
|
+
return;
|
|
362
|
+
await this.sessionLog.appendEnvelopeLines({ projectSlug: this.opts.projectSlug, sessionId: this.sessionId }, lines);
|
|
363
|
+
})
|
|
364
|
+
.catch((err) => {
|
|
365
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
366
|
+
console.warn(`[shim] failed to append jsonl: ${msg}`);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Translate pi's per-message `usage` ({ input, output, cacheRead, cacheWrite,
|
|
372
|
+
* … }) into the Claude-SDK assistant-message usage shape. Returns undefined
|
|
373
|
+
* when the record carries no usage so we don't write an all-zero block.
|
|
374
|
+
*/
|
|
375
|
+
function shimUsage(raw) {
|
|
376
|
+
if (!raw || typeof raw !== "object")
|
|
377
|
+
return undefined;
|
|
378
|
+
const num = (v) => typeof v === "number" && Number.isFinite(v) ? v : 0;
|
|
379
|
+
const usage = {
|
|
380
|
+
input_tokens: num(raw.input),
|
|
381
|
+
output_tokens: num(raw.output),
|
|
382
|
+
cache_read_input_tokens: num(raw.cacheRead),
|
|
383
|
+
cache_creation_input_tokens: num(raw.cacheWrite),
|
|
384
|
+
};
|
|
385
|
+
if (usage.input_tokens === 0 &&
|
|
386
|
+
usage.output_tokens === 0 &&
|
|
387
|
+
usage.cache_read_input_tokens === 0 &&
|
|
388
|
+
usage.cache_creation_input_tokens === 0) {
|
|
389
|
+
return undefined;
|
|
390
|
+
}
|
|
391
|
+
return usage;
|
|
392
|
+
}
|
|
393
|
+
function isoTimestamp(raw) {
|
|
394
|
+
if (typeof raw === "number" && Number.isFinite(raw)) {
|
|
395
|
+
return new Date(raw).toISOString();
|
|
396
|
+
}
|
|
397
|
+
if (typeof raw === "string") {
|
|
398
|
+
const d = new Date(raw);
|
|
399
|
+
if (!Number.isNaN(d.getTime()))
|
|
400
|
+
return d.toISOString();
|
|
401
|
+
}
|
|
402
|
+
return new Date().toISOString();
|
|
403
|
+
}
|
|
404
|
+
export function safeStringify(v) {
|
|
405
|
+
try {
|
|
406
|
+
return JSON.stringify(v);
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
return String(v);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
/** Collapse an error string to a single short line for a system breadcrumb. */
|
|
413
|
+
function shortReason(reason) {
|
|
414
|
+
const oneLine = reason.replace(/\s+/g, " ").trim();
|
|
415
|
+
return oneLine.length > 200 ? `${oneLine.slice(0, 197)}…` : oneLine;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Cap on the size of a single tool_result content string written to the
|
|
419
|
+
* envelope jsonl. A `Read` on a multi-megabyte file or a `Bash` with huge
|
|
420
|
+
* stdout would otherwise bloat both the in-memory write queue and the
|
|
421
|
+
* on-disk session log. Anything past this is replaced with a marker. The
|
|
422
|
+
* raw tool result still exists wherever the tool wrote it (workspace file,
|
|
423
|
+
* sandbox stdout) — we just don't mirror it into the session jsonl.
|
|
424
|
+
*
|
|
425
|
+
* 64KB matches the rough rendering budget of the dashboard tool-result
|
|
426
|
+
* panel; anything larger would have been truncated for display anyway.
|
|
427
|
+
*/
|
|
428
|
+
const TOOL_RESULT_MAX_BYTES = 64 * 1024;
|
|
429
|
+
export function truncateForLog(s, maxBytes = TOOL_RESULT_MAX_BYTES) {
|
|
430
|
+
if (s.length <= maxBytes)
|
|
431
|
+
return s;
|
|
432
|
+
const dropped = s.length - maxBytes;
|
|
433
|
+
return `${s.slice(0, maxBytes)}\n…[truncated ${dropped} chars]`;
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=event-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-shim.js","sourceRoot":"","sources":["../../src/engine/event-shim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|