@joshuafolkken/kit 1.1784.0 → 1.2116.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/.claude/agents/reviewer-verification.md +19 -0
- package/.claude/agents/reviewer.md +19 -0
- package/.claude/settings.json +5 -6
- package/.claude/skills/dependency-update/SKILL.md +9 -10
- package/.claude/skills/workflow-commands/SKILL.md +6 -6
- package/.claude/skills/workflow-commands/background-commands.md +8 -5
- package/.claude/skills/workflow-commands/backlogrun-child.md +3 -1
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-park.md +5 -2
- package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -3
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-steps.md +3 -2
- package/.claude/skills/workflow-commands/backlogrun.md +1 -1
- package/.claude/skills/workflow-commands/chain-rule.md +41 -32
- package/.claude/skills/workflow-commands/delegation.md +6 -6
- package/.claude/skills/workflow-commands/entry-sequence.md +2 -2
- package/.claude/skills/workflow-commands/followup.md +7 -5
- package/.claude/skills/workflow-commands/fullrun-steps.md +6 -6
- package/.claude/skills/workflow-commands/fullrun.md +1 -1
- package/.claude/skills/workflow-commands/issue-comments.md +9 -4
- package/.claude/skills/workflow-commands/issue-fold-existing.md +2 -1
- package/.claude/skills/workflow-commands/kickoff.md +2 -2
- package/.claude/skills/workflow-commands/observation-filing.md +1 -1
- package/.claude/skills/workflow-commands/observation-ledger.md +6 -4
- package/.claude/skills/workflow-commands/pre-gate-cut.md +9 -7
- package/.claude/skills/workflow-commands/prerequisite.md +3 -2
- package/.claude/skills/workflow-commands/retrospective.md +2 -2
- package/.claude/skills/workflow-commands/split-assessment.md +7 -5
- package/.codex/hooks.json +5 -5
- package/.github/actions/setup-pnpm/action.yml +9 -16
- package/.github/dependabot.yml +16 -0
- package/.github/workflows/auto-tag.yml +45 -0
- package/.github/workflows/ci.yml +155 -15
- package/.github/workflows/dependabot-auto-merge.yml +63 -4
- package/.github/workflows/production.yml +8 -0
- package/.github/workflows/publish.yml +60 -45
- package/.vscode/settings.json +19 -0
- package/CLAUDE.md +5 -12
- package/SECURITY.md +2 -2
- package/dist/CLAUDE.md +5 -12
- package/dist/commands/document-read-cli.js +2 -1
- package/dist/commands/document-section-main.js +2 -1
- package/dist/commands/read-set-cli.js +194 -134
- package/dist/commands/run-prep-main.js +9694 -10173
- package/dist/commands/run-step-cli.js +22138 -18285
- package/dist/hooks/audit-provision.js +23 -5
- package/dist/hooks/chunk-3GKE653K.js +6204 -0
- package/dist/hooks/chunk-45CJJOO7.js +1243 -0
- package/dist/hooks/{chunk-CWMBGKYW.js → chunk-5PM2JRGV.js} +2153 -856
- package/dist/hooks/{chunk-WR2KQAYZ.js → chunk-7SIUNQXK.js} +1207 -1470
- package/dist/hooks/{chunk-O2YBIDSI.js → chunk-CQD4LJE6.js} +1682 -1130
- package/dist/hooks/{chunk-VWWCFGWK.js → chunk-OPSRGWFU.js} +1 -1
- package/dist/hooks/{chunk-XGBNSWEI.js → chunk-UJ3FPMMM.js} +132 -49
- package/dist/hooks/chunk-VVNYJWEI.js +30 -0
- package/dist/hooks/chunk-Z6DQJKH3.js +2806 -0
- package/dist/hooks/codex-hook-adapter.js +8 -8
- package/dist/hooks/format-edited.js +4 -5
- package/dist/hooks/inputs.json +386 -360
- package/dist/hooks/pretool-guard.js +7 -6
- package/dist/hooks/session-lang.js +101 -258
- package/dist/hooks/stop-guard.js +1744 -2576
- package/dist/josh.js +7133 -6368
- package/dist/version/index.js +161 -1
- package/eslint/rules/comment-why-only.js +108 -0
- package/package.json +16 -9
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +14 -11
- package/prompts/collaboration-workflow/issue-citation.md +0 -4
- package/prompts/collaboration-workflow/issue-template.md +40 -21
- package/prompts/collaboration-workflow/lane-instructions.md +3 -1
- package/prompts/collaboration-workflow/measurement.md +8 -1
- package/prompts/collaboration-workflow/operating-rules.md +11 -2
- package/prompts/collaboration-workflow/output-bounds.md +6 -2
- package/prompts/collaboration-workflow/plan-comment.md +1 -1
- package/prompts/collaboration-workflow/principles.md +9 -0
- package/prompts/collaboration-workflow/residency.md +3 -2
- package/prompts/collaboration-workflow/rule-delivery.md +13 -1
- package/prompts/collaboration-workflow/upstream-interrupt.md +2 -2
- package/prompts/collaboration-workflow/wip-cap.md +3 -1
- package/prompts/review-rubric.md +8 -0
- package/prompts/review.md +31 -22
- package/prompts/testing-guide.md +1 -0
- package/scripts/agent/agent-argv.ts +14 -16
- package/scripts/agent/agent-provider.ts +138 -0
- package/scripts/agent/agent-role-profile.ts +108 -156
- package/scripts/agent/agent-safe-text.ts +20 -5
- package/scripts/agent/api-usage-limit.ts +65 -0
- package/scripts/agent/claude-agent-argv.ts +19 -9
- package/scripts/agent/codex-agent-argv.ts +118 -22
- package/scripts/agent/usage-limit-reset.ts +179 -0
- package/scripts/auth/claude-token-output.ts +2 -2
- package/scripts/auto-ok/auto-ok-author.ts +53 -0
- package/scripts/auto-ok/auto-ok-cli.ts +20 -9
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-drive-cli.ts +6 -1
- package/scripts/backlog/backlog-drive-hold.ts +3 -3
- package/scripts/backlog/backlog-drive-idle.ts +10 -0
- package/scripts/backlog/backlog-drive-launch-pass.ts +90 -0
- package/scripts/backlog/backlog-drive-launch.ts +8 -2
- package/scripts/backlog/backlog-drive-named-offer.ts +73 -30
- package/scripts/backlog/backlog-drive-named.ts +28 -7
- package/scripts/backlog/backlog-drive-paused.ts +5 -4
- package/scripts/backlog/backlog-drive-restore.ts +11 -3
- package/scripts/backlog/backlog-drive.ts +21 -60
- package/scripts/backlog/backlog-gate-scope.ts +61 -0
- package/scripts/backlog/backlog-measure-close.ts +112 -0
- package/scripts/backlog/backlog-next.ts +39 -49
- package/scripts/backlog/backlog-occupied.ts +2 -2
- package/scripts/backlog/backlog-overlap.ts +42 -8
- package/scripts/backlog/backlog-plan-cli.ts +4 -1
- package/scripts/backlog/backlog-plan-comment.ts +81 -0
- package/scripts/backlog/backlog-plan-read.ts +19 -6
- package/scripts/backlog/backlog-pool.ts +50 -12
- package/scripts/backlog/backlog-rank.ts +60 -13
- package/scripts/backlog/backlog-stalled-detect.ts +2 -1
- package/scripts/backlog/backlog-waves.ts +17 -2
- package/scripts/backlog/backlogrun-launch.ts +7 -4
- package/scripts/cost-runtime/context-cut-payback.ts +27 -25
- package/scripts/cost-runtime/cost-cli.ts +37 -16
- package/scripts/cost-runtime/cost-pricing.ts +9 -0
- package/scripts/cost-runtime/cost-verdict.ts +4 -1
- package/scripts/delegation/delegation-policy.ts +2 -2
- package/scripts/delegation/duplicate-read-guard.ts +1 -0
- package/scripts/delegation/investigation-guard.ts +14 -2
- package/scripts/delegation/investigation-reads.ts +45 -23
- package/scripts/dependabot/dependabot-cooldown.ts +3 -2
- package/scripts/discovery/repo-party.ts +80 -20
- package/scripts/discovery/session-owner-pin.ts +51 -0
- package/scripts/document/capped-print.ts +1 -1
- package/scripts/document/command-reference-line-budget.ts +42 -0
- package/scripts/document/document-byte-budget.ts +17 -7
- package/scripts/document/document-checks.ts +20 -0
- package/scripts/document/document-ratchet-check.ts +101 -0
- package/scripts/document/document-section.ts +1 -0
- package/scripts/document/entry-read-budget.ts +7 -3
- package/scripts/document/issue-citation-budget.ts +94 -0
- package/scripts/epic/epic-cli-argv.ts +2 -2
- package/scripts/epic/epic-fetch.ts +4 -2
- package/scripts/epic/epic-graph.ts +7 -2
- package/scripts/epic/epic-issue.ts +3 -1
- package/scripts/epic/epic-rank.ts +5 -0
- package/scripts/exports/unused-members-check.ts +62 -0
- package/scripts/exports/unused-members-cli.ts +6 -51
- package/scripts/followup/followup-ci-path.ts +67 -0
- package/scripts/followup/followup-coderabbit-retrigger.ts +261 -0
- package/scripts/followup/followup-coderabbit-wait.ts +13 -10
- package/scripts/followup/followup-failed-tests.ts +160 -0
- package/scripts/followup/followup-job-needs.ts +100 -0
- package/scripts/followup/followup-job-rerun.ts +303 -0
- package/scripts/followup/followup-main-move.ts +113 -0
- package/scripts/followup/git-followup-finish.ts +43 -11
- package/scripts/followup/git-followup-pending.ts +3 -3
- package/scripts/followup/git-followup-stages.ts +41 -11
- package/scripts/followup/git-pr-followup-checks.ts +55 -16
- package/scripts/followup/git-pr-followup-wrapup.ts +24 -5
- package/scripts/followup/git-pr-followup.ts +62 -27
- package/scripts/fresh-machine/fresh-machine-script.ts +5 -9
- package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +2 -2
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +2 -2
- package/scripts/gate/busy-average.ts +34 -2
- package/scripts/gate/check-related-pinned.ts +43 -0
- package/scripts/gate/check-related-reuse.ts +64 -0
- package/scripts/gate/check-related-section.ts +57 -0
- package/scripts/gate/check-related-unplanned.ts +34 -0
- package/scripts/gate/check-related.ts +265 -0
- package/scripts/gate/command-memory.ts +1 -1
- package/scripts/gate/core-admission.ts +24 -6
- package/scripts/gate/core-budget-timing.ts +20 -6
- package/scripts/gate/core-budget.ts +40 -11
- package/scripts/gate/core-wait-record.ts +3 -2
- package/scripts/gate/core-wait.ts +25 -2
- package/scripts/gate/core-weights.ts +15 -7
- package/scripts/gate/gate-labels.ts +46 -0
- package/scripts/gate/gate-ledger.ts +14 -6
- package/scripts/gate/gate-plan.ts +103 -58
- package/scripts/gate/gate-report.ts +9 -7
- package/scripts/gate/gate-run-steps.ts +26 -3
- package/scripts/gate/gate-skip.ts +45 -6
- package/scripts/gate/gate-static-group.ts +60 -0
- package/scripts/gate/gate-steps.ts +2 -1
- package/scripts/gate/gate-tree.ts +4 -2
- package/scripts/gate/hook-gate-reuse.ts +19 -2
- package/scripts/gate/metrics-totals.ts +59 -0
- package/scripts/gate/scoped-green.ts +68 -15
- package/scripts/gate/since-green.ts +14 -6
- package/scripts/gate/structural-checks.ts +96 -0
- package/scripts/gate/verification-gate.ts +51 -16
- package/scripts/gate/verification-inputs.ts +21 -6
- package/scripts/gate/verification-tail.ts +52 -0
- package/scripts/gh/gh-author-association.ts +23 -2
- package/scripts/gh/git-ai-review-scan.ts +1 -1
- package/scripts/gh/git-gh-api-path.ts +12 -3
- package/scripts/gh/git-gh-comments-unreadable.ts +36 -0
- package/scripts/gh/git-gh-exec.ts +32 -2
- package/scripts/gh/git-gh-issue-read.ts +4 -2
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +8 -2
- package/scripts/gh/git-gh-issue.ts +12 -5
- package/scripts/gh/git-gh-pr-auto-merge.ts +13 -6
- package/scripts/gh/git-gh-pr-graphql-state.ts +56 -0
- package/scripts/gh/git-gh-pr-read.ts +74 -13
- package/scripts/gh/git-gh-pr-rest.ts +3 -1
- package/scripts/gh/git-gh-pr-snapshot.ts +22 -7
- package/scripts/gh/git-gh-pr-too-large.ts +20 -0
- package/scripts/gh/git-gh-pr.ts +21 -7
- package/scripts/gh/git-gh-retry.ts +141 -0
- package/scripts/gh/git-pr-ai-review.ts +15 -6
- package/scripts/gh/git-pr-checks-eval.ts +3 -0
- package/scripts/gh/git-pr-checks.ts +5 -5
- package/scripts/git/base-tree.ts +30 -0
- package/scripts/git/change-base.ts +4 -10
- package/scripts/git/changed-paths-sync.ts +63 -0
- package/scripts/git/changed-paths.ts +16 -1
- package/scripts/git/git-common-directory.ts +11 -1
- package/scripts/git/git-diff-reads.ts +66 -20
- package/scripts/git/git-error.ts +9 -2
- package/scripts/git/git-schemas.ts +13 -0
- package/scripts/git/git-worktree.ts +13 -0
- package/scripts/git/gone-branch.ts +4 -1
- package/scripts/git/main-merge-budget-conflict.ts +89 -0
- package/scripts/git/main-merge-guard.ts +55 -18
- package/scripts/git/main-merge-regenerate.ts +59 -25
- package/scripts/git/main-merge.ts +53 -5
- package/scripts/git/no-base-checkout.ts +127 -0
- package/scripts/git/stash/git-stash.ts +11 -2
- package/scripts/git/stash/stash-push-cli.ts +10 -0
- package/scripts/hooks/batch-guard.ts +40 -21
- package/scripts/hooks/edited-cspell.ts +37 -11
- package/scripts/hooks/format-edited-file.ts +22 -2
- package/scripts/hooks/lane-plan-guard.ts +50 -0
- package/scripts/hooks/pre-commit-lint-switch.ts +9 -0
- package/scripts/hooks/pre-commit-lint.ts +14 -1
- package/scripts/hooks/pre-push-related-switch.ts +10 -0
- package/scripts/hooks/pre-push-unit.ts +76 -10
- package/scripts/hooks/pretool-guard.ts +2 -0
- package/scripts/hooks/reserved-run.ts +14 -1
- package/scripts/hooks/run-hook.sh +23 -8
- package/scripts/hooks/step-zero-notice.ts +6 -1
- package/scripts/hooks/stop-actions.ts +3 -15
- package/scripts/hooks/stop-guard.ts +7 -6
- package/scripts/init/distributed-paths.ts +1 -0
- package/scripts/init/hook-command-rewrite.ts +5 -1
- package/scripts/init/hook-launch.ts +4 -2
- package/scripts/issue/aggregation-split.ts +52 -0
- package/scripts/issue/defect-origin-line.ts +19 -1
- package/scripts/issue/defect-rate-cli.ts +5 -102
- package/scripts/issue/defect-report.ts +4 -4
- package/scripts/issue/effect-audit-cli.ts +178 -0
- package/scripts/issue/effect-audit.ts +185 -0
- package/scripts/issue/expected-effect-lint.ts +64 -9
- package/scripts/issue/git-next-issues.ts +5 -0
- package/scripts/issue/issue-body-or-comment.ts +38 -4
- package/scripts/issue/issue-cite-cli.ts +1 -3
- package/scripts/issue/issue-classification.ts +1 -0
- package/scripts/issue/issue-closing-pr.ts +8 -1
- package/scripts/issue/issue-evidence-exit.ts +4 -2
- package/scripts/issue/issue-file-cap.ts +58 -0
- package/scripts/issue/issue-file-cli.ts +111 -38
- package/scripts/issue/issue-file-deferral.ts +52 -0
- package/scripts/issue/issue-file-fold.ts +29 -10
- package/scripts/issue/issue-file-interrupt.ts +85 -0
- package/scripts/issue/issue-file-lane-hint.ts +30 -0
- package/scripts/issue/issue-file.ts +43 -6
- package/scripts/issue/issue-labels.ts +19 -2
- package/scripts/issue/issue-lint-cli.ts +27 -2
- package/scripts/issue/issue-measured-cli.ts +13 -35
- package/scripts/issue/issue-measured-close.ts +58 -0
- package/scripts/issue/issue-not-before-label.ts +2 -2
- package/scripts/issue/issue-not-before.ts +4 -1
- package/scripts/issue/issue-priority-cli.ts +60 -0
- package/scripts/issue/issue-priority-raise.ts +55 -0
- package/scripts/issue/issue-priority.ts +174 -43
- package/scripts/issue/issue-rank.ts +21 -4
- package/scripts/issue/issue-read-cli.ts +32 -6
- package/scripts/issue/issue-read.ts +37 -12
- package/scripts/issue/issue-sample-gate.ts +95 -74
- package/scripts/issue/issue-sample-prime.ts +127 -0
- package/scripts/issue/issue-sample-required.ts +57 -0
- package/scripts/issue/issue-sample-source.ts +12 -11
- package/scripts/issue/issue-search.ts +124 -0
- package/scripts/issue/issue-state.ts +13 -1
- package/scripts/issue/issue-template-section.ts +43 -0
- package/scripts/issue/issue-watch-diff.ts +31 -1
- package/scripts/issue/issue-watch-hook.ts +11 -2
- package/scripts/issue/issue-watch.ts +55 -12
- package/scripts/issue/markdown-section.ts +1 -0
- package/scripts/issue/measure-declaration.ts +121 -0
- package/scripts/issue/measure-rerun-cli.ts +7 -70
- package/scripts/issue/plan-consumers-section.ts +22 -1
- package/scripts/issue/reproduction-measure.ts +3 -1
- package/scripts/issue/size-estimate.ts +90 -0
- package/scripts/issue/trusted-measure.ts +84 -0
- package/scripts/josh/command-usage.ts +3 -2
- package/scripts/josh/durable-state-migrate.ts +105 -0
- package/scripts/josh/durable-state.ts +112 -0
- package/scripts/josh/josh-aliases.ts +95 -0
- package/scripts/josh/josh-command-map.ts +1 -82
- package/scripts/josh/josh-commands-agent-hooks.ts +6 -6
- package/scripts/josh/josh-commands-ai.ts +5 -5
- package/scripts/josh/josh-commands-development.ts +59 -58
- package/scripts/josh/josh-commands-issue-write.ts +23 -4
- package/scripts/josh/josh-commands-issue.ts +32 -0
- package/scripts/josh/josh-commands-lane.ts +87 -4
- package/scripts/josh/josh-commands-lint.ts +16 -3
- package/scripts/josh/josh-commands-maintenance.ts +15 -0
- package/scripts/josh/josh-commands-review.ts +41 -6
- package/scripts/josh/josh-commands-ship.ts +56 -8
- package/scripts/josh/josh-commands-test-check.ts +80 -0
- package/scripts/josh/josh-commands-workflow.ts +1 -1
- package/scripts/josh/josh-environment-file.ts +43 -3
- package/scripts/josh/josh-in-process.ts +2 -2
- package/scripts/josh/josh-logic.ts +5 -3
- package/scripts/josh/josh-run.ts +19 -1
- package/scripts/josh/run-record-path.ts +15 -0
- package/scripts/josh/stamp-file.ts +11 -2
- package/scripts/lane/lane-adopt-cli.ts +98 -0
- package/scripts/lane/lane-adopt.ts +208 -0
- package/scripts/lane/lane-await.ts +5 -8
- package/scripts/lane/lane-baseline.ts +123 -0
- package/scripts/lane/lane-breakdown-cli.ts +64 -0
- package/scripts/lane/lane-breakdown-implement.ts +170 -0
- package/scripts/lane/lane-breakdown-laps.ts +107 -0
- package/scripts/lane/lane-breakdown-pinned.ts +76 -0
- package/scripts/lane/lane-breakdown-text.ts +145 -0
- package/scripts/lane/lane-breakdown.ts +239 -0
- package/scripts/lane/lane-check-stats.ts +29 -8
- package/scripts/lane/lane-child-invocation.ts +9 -2
- package/scripts/lane/lane-child-mark-keys.ts +12 -0
- package/scripts/lane/lane-child-marker.ts +20 -1
- package/scripts/lane/lane-ci-path-stats.ts +73 -0
- package/scripts/lane/lane-claim-stats.ts +84 -0
- package/scripts/lane/lane-close.ts +8 -3
- package/scripts/lane/lane-dispatch-log.ts +3 -3
- package/scripts/lane/lane-dispatch.ts +2 -2
- package/scripts/lane/lane-gap-stats.ts +7 -6
- package/scripts/lane/lane-guard-policy.ts +7 -1
- package/scripts/lane/lane-implement-stats.ts +207 -0
- package/scripts/lane/lane-implement-subagents.ts +90 -0
- package/scripts/lane/lane-investigation-switch.ts +16 -0
- package/scripts/lane/lane-ledger-kind.ts +31 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +49 -0
- package/scripts/lane/lane-ledger-schema.ts +119 -36
- package/scripts/lane/lane-ledger-write.ts +257 -0
- package/scripts/lane/lane-ledger.ts +31 -177
- package/scripts/lane/lane-load.ts +1 -1
- package/scripts/lane/lane-measure-cli.ts +176 -59
- package/scripts/lane/lane-net-read.ts +44 -0
- package/scripts/lane/lane-net-time.ts +212 -0
- package/scripts/lane/lane-open.ts +16 -7
- package/scripts/lane/lane-output.ts +2 -4
- package/scripts/lane/lane-overrun-prompt.ts +147 -0
- package/scripts/lane/lane-overrun.ts +274 -0
- package/scripts/lane/lane-paths.ts +24 -1
- package/scripts/lane/lane-pause-cli.ts +4 -1
- package/scripts/lane/lane-paused-spans.ts +97 -0
- package/scripts/lane/lane-plan-check.ts +207 -0
- package/scripts/lane/lane-plan-cli.ts +41 -0
- package/scripts/lane/lane-plan.ts +144 -0
- package/scripts/lane/lane-registry.ts +14 -1
- package/scripts/lane/lane-relaunch.ts +1 -1
- package/scripts/lane/lane-round-one-stats.ts +51 -0
- package/scripts/lane/lane-sampler.ts +23 -4
- package/scripts/lane/lane-session-action.ts +93 -18
- package/scripts/lane/lane-session-broker.ts +49 -21
- package/scripts/lane/lane-session-reread-main.ts +14 -0
- package/scripts/lane/lane-session-reread.ts +51 -0
- package/scripts/lane/lane-ship-lap-stats.ts +74 -0
- package/scripts/lane/lane-sleep.ts +58 -0
- package/scripts/lane/lane-spent.ts +1 -1
- package/scripts/lane/lane-split-stats.ts +28 -0
- package/scripts/lane/lane-stage-stats.ts +13 -1
- package/scripts/lane/lane-state.ts +41 -9
- package/scripts/lane/lane-stats-tables.ts +58 -0
- package/scripts/lane/lane-stats.ts +21 -5
- package/scripts/lane/lane-stop-stats.ts +51 -19
- package/scripts/lane/lane-tail-stats.ts +32 -0
- package/scripts/lane/lane-transcript-calls.ts +67 -10
- package/scripts/lane/lane-transcript-stats.ts +44 -12
- package/scripts/lane/lane-value-cell.ts +72 -0
- package/scripts/lane/lane-value.ts +118 -0
- package/scripts/lane/lane-withdraw-closed.ts +124 -0
- package/scripts/lane/lane-withdraw.ts +108 -31
- package/scripts/lane/lane-yield.ts +85 -0
- package/scripts/lane/openai-lane-ship.ts +12 -11
- package/scripts/lane/openai-lane-supervisor-decision.ts +6 -8
- package/scripts/lane/openai-lane-supervisor-owner.ts +5 -8
- package/scripts/lane/openai-lane-supervisor.ts +5 -4
- package/scripts/lib/poll.ts +38 -9
- package/scripts/lib/settled-together.ts +10 -0
- package/scripts/lib/shell-quote.ts +21 -0
- package/scripts/lib/token-shape.ts +111 -0
- package/scripts/lint/eslint-daemon-sources.ts +79 -0
- package/scripts/lint/eslint-daemon.ts +45 -6
- package/scripts/lint/eslint-warm-cli.ts +7 -0
- package/scripts/lint/eslint-warm.ts +66 -0
- package/scripts/lint/import-graph.ts +141 -11
- package/scripts/lint/lint-gate-scope.ts +2 -2
- package/scripts/lint/lint-parallel.ts +54 -6
- package/scripts/lint/lint-related.ts +154 -33
- package/scripts/lint/rename-cli.ts +179 -0
- package/scripts/lint/rename-identifier.ts +192 -0
- package/scripts/lint/type-only-imports.ts +58 -0
- package/scripts/notify/telegram-notify.ts +12 -3
- package/scripts/observations/observation-record.ts +42 -16
- package/scripts/observations/observations-flush.ts +32 -9
- package/scripts/overrides/overrides-check.ts +9 -1
- package/scripts/release/release-approval-prune.ts +7 -1
- package/scripts/repo/required-checks-logic.ts +4 -1
- package/scripts/repo/ruleset-check.ts +4 -3
- package/scripts/report/markdown-shape.ts +28 -0
- package/scripts/report/report-format-reference.ts +15 -1
- package/scripts/report/report-labels.ts +12 -1
- package/scripts/report/report-lint-child-summary.ts +94 -0
- package/scripts/report/report-lint-cli.ts +26 -7
- package/scripts/report/report-lint.ts +2 -20
- package/scripts/review/prose-stale-cli.ts +88 -0
- package/scripts/review/prose-stale-scan.ts +152 -0
- package/scripts/review/review-attest.ts +73 -23
- package/scripts/review/review-brief-cli.ts +68 -19
- package/scripts/review/review-brief-paths.ts +22 -0
- package/scripts/review/review-brief.ts +14 -7
- package/scripts/review/review-comment-carry.ts +47 -0
- package/scripts/review/review-comment-round.ts +85 -22
- package/scripts/review/review-finding-ledger.ts +109 -7
- package/scripts/review/review-finding-text.ts +43 -0
- package/scripts/review/review-interaction.ts +11 -0
- package/scripts/review/review-lane-handover.ts +68 -0
- package/scripts/review/review-lint-cli.ts +57 -0
- package/scripts/review/review-lint-findings.ts +92 -0
- package/scripts/review/review-lint-sections.ts +80 -0
- package/scripts/review/review-lint.ts +221 -0
- package/scripts/review/review-prior-findings.ts +102 -0
- package/scripts/review/review-readers-scan.ts +4 -2
- package/scripts/review/review-record-cli.ts +177 -54
- package/scripts/review/review-record-code-round.ts +55 -0
- package/scripts/review/review-record-comment.ts +60 -0
- package/scripts/review/review-record-interaction.ts +35 -0
- package/scripts/review/review-record-pinned.ts +108 -0
- package/scripts/review/review-record.ts +25 -1
- package/scripts/review/review-reviewed-tree.ts +307 -0
- package/scripts/review/review-round-one-closure.ts +62 -0
- package/scripts/review/review-round-reuse.ts +106 -0
- package/scripts/review/review-round2-cli.ts +91 -29
- package/scripts/review/review-round2-skip-comment.ts +55 -0
- package/scripts/review/review-round2.ts +24 -8
- package/scripts/review/review-stamps.ts +7 -3
- package/scripts/review/review-stop-log.ts +20 -6
- package/scripts/review/review-stops-cli.ts +2 -1
- package/scripts/review/review-submit-cli.ts +101 -0
- package/scripts/rules/agent-model.ts +1 -1
- package/scripts/rules/bash-triggers.ts +3 -3
- package/scripts/rules/concise-reply.ts +88 -0
- package/scripts/rules/credential-body.ts +77 -0
- package/scripts/rules/decision-oracle.ts +1 -1
- package/scripts/rules/delivered-rules.ts +36 -17
- package/scripts/rules/destructive-command.ts +3 -11
- package/scripts/rules/direct-issue-comment.ts +34 -12
- package/scripts/rules/direct-issue-read.ts +191 -0
- package/scripts/rules/direct-pr-create.ts +4 -24
- package/scripts/rules/early-heartbeat.ts +2 -0
- package/scripts/rules/edit-tool.ts +27 -0
- package/scripts/rules/file-edit-rows.ts +17 -0
- package/scripts/rules/file-rewrite.ts +146 -0
- package/scripts/rules/firing-point.ts +3 -2
- package/scripts/rules/gh-api.ts +128 -7
- package/scripts/rules/gh-repo-selector.ts +84 -0
- package/scripts/rules/git-force.ts +2 -2
- package/scripts/rules/guard-remedy.ts +14 -5
- package/scripts/rules/implementation-cut.ts +61 -28
- package/scripts/rules/investigator-foreground.ts +231 -0
- package/scripts/rules/issue-citation.ts +15 -60
- package/scripts/rules/issue-comments.ts +9 -4
- package/scripts/rules/josh-git-bare.ts +1 -1
- package/scripts/rules/lane-background.ts +41 -13
- package/scripts/rules/lane-direct-tool.ts +107 -9
- package/scripts/rules/lane-interactive-ask.ts +4 -1
- package/scripts/rules/lane-park.ts +4 -2
- package/scripts/rules/lane-spilled-read.ts +90 -0
- package/scripts/rules/lane-split-park.ts +1 -1
- package/scripts/rules/lane-switch-main.ts +4 -4
- package/scripts/rules/last-prompt.ts +20 -47
- package/scripts/rules/oracle-consulted.ts +1 -1
- package/scripts/rules/permission-guards.ts +5 -1
- package/scripts/rules/piped-verification-shapes.ts +110 -0
- package/scripts/rules/piped-verification.ts +67 -17
- package/scripts/rules/poll-loop.ts +72 -9
- package/scripts/rules/pr-merge.ts +5 -5
- package/scripts/rules/pre-gate-cut.ts +3 -3
- package/scripts/rules/protected-files.ts +88 -24
- package/scripts/rules/reply-language.ts +3 -17
- package/scripts/rules/reply-prose.ts +34 -0
- package/scripts/rules/repo-admin.ts +132 -0
- package/scripts/rules/reviewer-foreground.ts +88 -0
- package/scripts/rules/round-one-check-related.ts +120 -0
- package/scripts/rules/rule-body-guard.ts +5 -15
- package/scripts/rules/rule-value-cache.ts +53 -5
- package/scripts/rules/rule-value-candidates.ts +84 -0
- package/scripts/rules/rule-value-cli.ts +59 -11
- package/scripts/rules/rule-value.ts +17 -4
- package/scripts/rules/run-tail-rule.ts +1 -1
- package/scripts/rules/sed-in-place.ts +196 -0
- package/scripts/rules/shell-segments.ts +10 -2
- package/scripts/rules/stop-rule-rows.ts +1 -13
- package/scripts/rules/stop-rules.ts +33 -58
- package/scripts/rules/test-declared-commit.ts +1 -1
- package/scripts/rules/third-party-write.ts +110 -23
- package/scripts/rules/timed-rerun.ts +1 -1
- package/scripts/rules/turn-filings.ts +90 -0
- package/scripts/rules/worktree-guard.ts +22 -7
- package/scripts/run/board/run-board-ending-reason.ts +6 -2
- package/scripts/run/board/run-board-fit.ts +24 -1
- package/scripts/run/board/run-board-found.ts +134 -0
- package/scripts/run/board/run-board-header.ts +8 -0
- package/scripts/run/board/run-board-labels.ts +11 -1
- package/scripts/run/board/run-board-lane-time.ts +1 -0
- package/scripts/run/board/run-board-link.ts +15 -2
- package/scripts/run/board/run-board-notes.ts +7 -1
- package/scripts/run/board/run-board-operation.ts +4 -2
- package/scripts/run/board/run-board-phase.ts +2 -5
- package/scripts/run/board/run-board-plan.ts +1 -1
- package/scripts/run/board/run-board-read.ts +46 -1
- package/scripts/run/board/run-board-reason.ts +20 -8
- package/scripts/run/board/run-board-render-checks.ts +3 -2
- package/scripts/run/board/run-board-render-drawn.ts +11 -0
- package/scripts/run/board/run-board-render-found.ts +157 -0
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-render-legend.ts +19 -0
- package/scripts/run/board/run-board-render-tail.ts +1 -1
- package/scripts/run/board/run-board-render.ts +82 -18
- package/scripts/run/board/run-board-spin.ts +1 -3
- package/scripts/run/board/run-board-status.ts +2 -0
- package/scripts/run/board/run-board-tick.ts +39 -10
- package/scripts/run/carry/run-carry-ended.ts +3 -2
- package/scripts/run/carry/run-carry.ts +3 -2
- package/scripts/run/cut/run-cut-cli.ts +33 -133
- package/scripts/run/cut/run-cut-digest.ts +152 -0
- package/scripts/run/cut/run-cut-handoff.ts +52 -8
- package/scripts/run/cut/run-cut-report.ts +24 -3
- package/scripts/run/cut/run-cut-resume.ts +129 -0
- package/scripts/run/cut/run-cut-review.ts +105 -0
- package/scripts/run/cut/run-cut.ts +18 -7
- package/scripts/run/detached-launch.ts +1 -1
- package/scripts/run/entry/run-entry-cli.ts +88 -19
- package/scripts/run/entry/run-entry-spill.ts +83 -0
- package/scripts/run/entry/run-entry-stop.ts +5 -1
- package/scripts/run/entry/run-entry-trust.ts +91 -0
- package/scripts/run/event/run-event-baseline.ts +56 -0
- package/scripts/run/event/run-event-filed.ts +9 -3
- package/scripts/run/event/run-event-overrun.ts +197 -0
- package/scripts/run/event/run-event-render.ts +4 -0
- package/scripts/run/event/run-event-stream.ts +25 -3
- package/scripts/run/hold/run-stop-notify.ts +3 -8
- package/scripts/run/merge/run-merge-cap.ts +57 -0
- package/scripts/run/merge/run-merge-cli.ts +66 -23
- package/scripts/run/merge/run-merge-outcome.ts +2 -0
- package/scripts/run/merge/run-merge-ship.ts +13 -3
- package/scripts/run/merge/run-merge-signals.ts +40 -23
- package/scripts/run/merge/run-merge-steps.ts +56 -36
- package/scripts/run/merge/run-merge-usage-limit.ts +53 -0
- package/scripts/run/merge/run-merge-withdrawn.ts +53 -0
- package/scripts/run/merge/run-merge.ts +41 -14
- package/scripts/run/review/run-review-cli.ts +306 -20
- package/scripts/run/review/run-review-early-push.ts +121 -0
- package/scripts/run/review/run-review-join-read.ts +94 -0
- package/scripts/run/review/run-review-pinned-accepted.ts +126 -0
- package/scripts/run/review/run-review-pinned-join.ts +216 -0
- package/scripts/run/review/run-review-pinned-steps.ts +383 -0
- package/scripts/run/review/run-review-pinned-tree.ts +37 -0
- package/scripts/run/review/run-review-pinned.ts +53 -0
- package/scripts/run/review/run-review-steps.ts +70 -34
- package/scripts/run/review/run-review.ts +26 -6
- package/scripts/run/run-parent-cut-hook.ts +3 -4
- package/scripts/run/run-prep.ts +1 -0
- package/scripts/run/run-stage-read.ts +2 -6
- package/scripts/run/run-step-cli.ts +17 -5
- package/scripts/run/run-step-lane-plan.ts +27 -0
- package/scripts/run/run-step-section.ts +26 -7
- package/scripts/run/run-step.ts +5 -2
- package/scripts/run/ship/run-ship-args.ts +19 -0
- package/scripts/run/ship/run-ship-brokered-review.ts +106 -0
- package/scripts/run/ship/run-ship-cli.ts +131 -39
- package/scripts/run/ship/run-ship-conflict-probe.ts +59 -0
- package/scripts/run/ship/run-ship-detach.ts +10 -4
- package/scripts/run/ship/run-ship-handover.ts +106 -0
- package/scripts/run/ship/run-ship-infra-retry.ts +16 -1
- package/scripts/run/ship/run-ship-lap.ts +63 -0
- package/scripts/run/ship/run-ship-next.ts +27 -26
- package/scripts/run/ship/run-ship-overlap.ts +8 -3
- package/scripts/run/ship/run-ship-place.ts +9 -2
- package/scripts/run/ship/run-ship-planned.ts +92 -0
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +197 -0
- package/scripts/run/ship/run-ship-pre-detach-timed.ts +7 -8
- package/scripts/run/ship/run-ship-pre-detach.ts +77 -23
- package/scripts/run/ship/run-ship-preflight.ts +16 -4
- package/scripts/run/ship/run-ship-probe.ts +23 -9
- package/scripts/run/ship/run-ship-relaunch-cap.ts +43 -7
- package/scripts/run/ship/run-ship-relaunch.ts +51 -0
- package/scripts/run/ship/run-ship-return.ts +103 -29
- package/scripts/run/ship/run-ship-review-reason.ts +24 -0
- package/scripts/run/ship/run-ship-review-steps.ts +230 -59
- package/scripts/run/ship/run-ship-review.ts +171 -51
- package/scripts/run/ship/run-ship-reviewer.ts +138 -42
- package/scripts/run/ship/run-ship-scoped.ts +39 -10
- package/scripts/run/ship/run-ship-stage.ts +49 -13
- package/scripts/run/ship/run-ship-steps.ts +24 -4
- package/scripts/run/ship/run-ship-stop-cause.ts +43 -2
- package/scripts/run/ship/run-ship-stop-context.ts +50 -13
- package/scripts/run/ship/run-ship-sync.ts +171 -30
- package/scripts/run/ship/run-ship-synced-scope.ts +178 -0
- package/scripts/run/ship/run-ship-wait-cli.ts +145 -0
- package/scripts/run/ship/run-ship-waiter.ts +114 -0
- package/scripts/run/ship/run-ship.ts +16 -2
- package/scripts/run/wake/run-wake-caffeinate.ts +48 -0
- package/scripts/run/wake/run-wake-cli.ts +6 -113
- package/scripts/run/wake/run-wake-code.ts +53 -11
- package/scripts/run/wake/run-wake-driver.ts +5 -3
- package/scripts/run/wake/run-wake-finish.ts +137 -0
- package/scripts/run/wake/run-wake-loop.ts +5 -3
- package/scripts/run/wake/run-wake-ports.ts +11 -3
- package/scripts/run/wake/run-wake-session.ts +2 -0
- package/scripts/run/wake/run-wake.ts +3 -2
- package/scripts/safe-chain/ci-installer-pin.ts +49 -8
- package/scripts/safe-chain/project-config.ts +3 -2
- package/scripts/security/secretlint-scan.ts +42 -9
- package/scripts/security/security-audit-provision-main.ts +9 -1
- package/scripts/security/security-audit-provision.ts +1 -1
- package/scripts/security/security-audit.ts +21 -1
- package/scripts/security/sonar-file.ts +10 -5
- package/scripts/split/split-assess.ts +12 -3
- package/scripts/split/split-early-notice.ts +116 -0
- package/scripts/split/split-measure.ts +20 -2
- package/scripts/split/split-resolution.ts +107 -0
- package/scripts/test/direct-importers.ts +185 -0
- package/scripts/test/pure-files-entries.ts +83 -0
- package/scripts/test/related-heavy-tests.ts +81 -0
- package/scripts/test/test-no-base.ts +88 -0
- package/scripts/test/test-pinned-cache-logic.ts +363 -0
- package/scripts/test/test-pinned-cache.ts +337 -0
- package/scripts/test/test-pinned-emit.ts +49 -0
- package/scripts/test/test-pinned-functions.ts +116 -0
- package/scripts/test/test-pinned-ledger.ts +80 -0
- package/scripts/test/test-pinned-logic.ts +208 -20
- package/scripts/test/test-pinned-main.ts +84 -18
- package/scripts/test/test-pinned-pool.ts +73 -0
- package/scripts/test/test-pinned-probe.ts +254 -0
- package/scripts/test/test-pinned-prune-logic.ts +118 -0
- package/scripts/test/test-pinned-reach.ts +194 -0
- package/scripts/test/test-pinned-record.ts +196 -0
- package/scripts/test/test-pinned-rewire.ts +148 -0
- package/scripts/test/test-pinned-spawn.ts +81 -0
- package/scripts/test/test-pinned-stage.ts +70 -0
- package/scripts/test/test-pinned.ts +258 -47
- package/scripts/test/test-reach-cli.ts +61 -0
- package/scripts/test/test-read-map.ts +35 -11
- package/scripts/test/test-read-recording.ts +17 -5
- package/scripts/test/test-read-trace.ts +26 -8
- package/scripts/test/test-red-logic.ts +46 -7
- package/scripts/test/test-red.ts +34 -14
- package/scripts/test/test-related-claim.ts +37 -0
- package/scripts/test/test-related-main.ts +4 -1
- package/scripts/test/test-related-moved.ts +91 -0
- package/scripts/test/test-related-record.ts +43 -23
- package/scripts/test/test-related-scope.ts +99 -34
- package/scripts/test/test-related-synced.ts +135 -0
- package/scripts/test/test-related-touched.ts +84 -0
- package/scripts/test/test-related.ts +167 -83
- package/scripts/test/test-unit-guard.ts +28 -5
- package/scripts/test/unit-durations.ts +41 -0
- package/scripts/test/unit-worker-share.ts +5 -4
- package/scripts/test/vitest-cache-directory.ts +19 -0
- package/scripts/test/vitest-cli-excludes.ts +14 -0
- package/scripts/test/vitest-failure-summary.ts +111 -0
- package/scripts/test/whole-suite-files.ts +12 -1
- package/scripts/time-runtime/time-batch-guard.ts +42 -4
- package/scripts/time-runtime/time-bundle-call.ts +1 -1
- package/scripts/time-runtime/time-bundles.ts +36 -5
- package/scripts/time-runtime/time-markers.ts +2 -2
- package/scripts/time-runtime/time-search-call.ts +38 -0
- package/scripts/time-runtime/time-shell.ts +1 -1
- package/scripts/time-runtime/time-transcript-line.ts +17 -5
- package/scripts/version/development-engines-verdict.ts +124 -0
- package/scripts/version/latest-corepack.ts +2 -0
- package/templates/gitignore +2 -0
- package/templates/workflows/ci.yml +41 -0
- package/dist/hooks/chunk-AZX4FGQ3.js +0 -207
- package/dist/hooks/chunk-PT5R6UJD.js +0 -7131
- package/dist/hooks/chunk-TUIFS5E7.js +0 -72
- package/dist/hooks/chunk-YCDOIR3I.js +0 -3456
- package/scripts/cost-runtime/context-cut-threshold.ts +0 -11
- package/scripts/rules/filing-cap.ts +0 -139
|
@@ -256,6 +256,7 @@ function read_optional2(file_path) {
|
|
|
256
256
|
}
|
|
257
257
|
var document_section = {
|
|
258
258
|
candidates,
|
|
259
|
+
fenced_flags,
|
|
259
260
|
headings,
|
|
260
261
|
read_optional: read_optional2,
|
|
261
262
|
section,
|
|
@@ -339,7 +340,8 @@ var distributed_paths = {
|
|
|
339
340
|
transform_distributed_paths,
|
|
340
341
|
ensure_claude_md_import,
|
|
341
342
|
remove_claude_md_import,
|
|
342
|
-
CLAUDE_MD_IMPORT_LINE
|
|
343
|
+
CLAUDE_MD_IMPORT_LINE,
|
|
344
|
+
KIT_PACKAGE_PATH_PREFIX
|
|
343
345
|
};
|
|
344
346
|
|
|
345
347
|
// scripts/josh/package-directory.ts
|
|
@@ -492,9 +494,12 @@ function digest(content) {
|
|
|
492
494
|
function account_key() {
|
|
493
495
|
return String(process.getuid?.() ?? "");
|
|
494
496
|
}
|
|
495
|
-
function
|
|
497
|
+
function stamp_name(prefix, root = PACKAGE_DIR, suffix = STAMP_SUFFIX) {
|
|
496
498
|
const key = digest(`${account_key()}${ACCOUNT_KEY_SEPARATOR}${root}`).slice(0, STAMP_KEY_LENGTH);
|
|
497
|
-
return
|
|
499
|
+
return `${prefix}${key}${suffix}`;
|
|
500
|
+
}
|
|
501
|
+
function stamp_path(prefix, root = PACKAGE_DIR, suffix = STAMP_SUFFIX) {
|
|
502
|
+
return path5.join(PLATFORM_TEMP_ROOT, stamp_name(prefix, root, suffix));
|
|
498
503
|
}
|
|
499
504
|
function write_exclusively(target, content) {
|
|
500
505
|
rmSync2(target, { force: true });
|
|
@@ -561,6 +566,7 @@ var stamp_file = {
|
|
|
561
566
|
replace_stamp,
|
|
562
567
|
replace_text_stamp,
|
|
563
568
|
remove_stamp,
|
|
569
|
+
stamp_name,
|
|
564
570
|
stamp_path,
|
|
565
571
|
write_stamp,
|
|
566
572
|
write_text_stamp
|
|
@@ -1062,6 +1068,9 @@ var lane_child_read_set = {
|
|
|
1062
1068
|
costed: costed4
|
|
1063
1069
|
};
|
|
1064
1070
|
|
|
1071
|
+
// scripts/agent/agent-role-profile.ts
|
|
1072
|
+
import { z as z2 } from "zod";
|
|
1073
|
+
|
|
1065
1074
|
// scripts/josh/agent-session-environment.ts
|
|
1066
1075
|
var SESSION_ID_KEY = "CLAUDE_CODE_SESSION_ID";
|
|
1067
1076
|
var AGENT_PID_KEY = "CLAUDE_PID";
|
|
@@ -1145,15 +1154,87 @@ var agent_session_environment = {
|
|
|
1145
1154
|
removed_proxy_environment
|
|
1146
1155
|
};
|
|
1147
1156
|
|
|
1148
|
-
// scripts/agent/agent-
|
|
1157
|
+
// scripts/agent/agent-provider.ts
|
|
1149
1158
|
import { z } from "zod";
|
|
1159
|
+
var EMPTY_LENGTH = 0;
|
|
1160
|
+
var PROVIDER_SCHEMA = z.enum(["anthropic", "openai"]);
|
|
1161
|
+
var ANTHROPIC_PROVIDER = "anthropic";
|
|
1162
|
+
var OPENAI_PROVIDER = "openai";
|
|
1163
|
+
var CODEX_SESSION_KEY = "CODEX_THREAD_ID";
|
|
1164
|
+
function trimmed(value) {
|
|
1165
|
+
const result = value?.trim();
|
|
1166
|
+
return result === void 0 || result.length === EMPTY_LENGTH ? void 0 : result;
|
|
1167
|
+
}
|
|
1168
|
+
function rejection(key, value, expected) {
|
|
1169
|
+
return { kind: "rejected", note: `${key}=${value} ${expected}, so the agent was not started` };
|
|
1170
|
+
}
|
|
1171
|
+
function has_session(environment, keys) {
|
|
1172
|
+
return keys.some((key) => trimmed(environment[key]) !== void 0);
|
|
1173
|
+
}
|
|
1174
|
+
var CONFLICTING_SESSIONS = {
|
|
1175
|
+
kind: "rejected",
|
|
1176
|
+
note: "both Codex and Claude Code sessions were detected"
|
|
1177
|
+
};
|
|
1178
|
+
var HANDED_PROVIDER_KEY = "JOSH_AGENT_PROVIDER";
|
|
1179
|
+
var DEFAULT_PROVIDER = {
|
|
1180
|
+
kind: "provider",
|
|
1181
|
+
provider: ANTHROPIC_PROVIDER,
|
|
1182
|
+
is_default: true
|
|
1183
|
+
};
|
|
1184
|
+
var DEFAULT_NOTICE = ` No agent session or ${HANDED_PROVIDER_KEY} was found, so the provider defaulted to ${ANTHROPIC_PROVIDER} (Claude Code).`;
|
|
1185
|
+
function handed_provider(environment) {
|
|
1186
|
+
const value = trimmed(environment[HANDED_PROVIDER_KEY]);
|
|
1187
|
+
if (value === void 0) return DEFAULT_PROVIDER;
|
|
1188
|
+
const parsed = PROVIDER_SCHEMA.safeParse(value);
|
|
1189
|
+
return parsed.success ? { kind: "provider", provider: parsed.data } : rejection(HANDED_PROVIDER_KEY, value, "is not an allowed provider");
|
|
1190
|
+
}
|
|
1191
|
+
function detected_provider(environment) {
|
|
1192
|
+
const has_codex = has_session(environment, [CODEX_SESSION_KEY]);
|
|
1193
|
+
const has_claude = has_session(environment, agent_session_environment.PARENT_SESSION_KEYS);
|
|
1194
|
+
if (has_codex === has_claude) return has_codex ? CONFLICTING_SESSIONS : void 0;
|
|
1195
|
+
return { kind: "provider", provider: has_codex ? OPENAI_PROVIDER : ANTHROPIC_PROVIDER };
|
|
1196
|
+
}
|
|
1197
|
+
function resolve_provider(environment = process.env) {
|
|
1198
|
+
return detected_provider(environment) ?? handed_provider(environment);
|
|
1199
|
+
}
|
|
1200
|
+
function default_notice(environment = process.env) {
|
|
1201
|
+
const selected = resolve_provider(environment);
|
|
1202
|
+
return selected.kind === "provider" && selected.is_default === true ? DEFAULT_NOTICE : "";
|
|
1203
|
+
}
|
|
1204
|
+
function warn_of_default(environment = process.env) {
|
|
1205
|
+
const notice = default_notice(environment).trim();
|
|
1206
|
+
if (notice !== "") console.error(notice);
|
|
1207
|
+
}
|
|
1208
|
+
function has_completion_callback(environment = process.env) {
|
|
1209
|
+
const selected = resolve_provider(environment);
|
|
1210
|
+
return selected.kind !== "provider" || selected.provider !== OPENAI_PROVIDER;
|
|
1211
|
+
}
|
|
1212
|
+
function handoff_environment(environment = process.env) {
|
|
1213
|
+
const selected = resolve_provider(environment);
|
|
1214
|
+
return selected.kind === "provider" ? { [HANDED_PROVIDER_KEY]: selected.provider } : {};
|
|
1215
|
+
}
|
|
1216
|
+
var agent_provider = {
|
|
1217
|
+
ANTHROPIC_PROVIDER,
|
|
1218
|
+
CODEX_SESSION_KEY,
|
|
1219
|
+
HANDED_PROVIDER_KEY,
|
|
1220
|
+
OPENAI_PROVIDER,
|
|
1221
|
+
PROVIDER_SCHEMA,
|
|
1222
|
+
default_notice,
|
|
1223
|
+
handoff_environment,
|
|
1224
|
+
has_completion_callback,
|
|
1225
|
+
rejection,
|
|
1226
|
+
resolve_provider,
|
|
1227
|
+
trimmed,
|
|
1228
|
+
warn_of_default
|
|
1229
|
+
};
|
|
1150
1230
|
|
|
1151
1231
|
// scripts/agent/agent-safe-text.ts
|
|
1152
1232
|
var FIRST_PRINTABLE_CODE = 32;
|
|
1153
1233
|
var DELETE_CODE = 127;
|
|
1154
1234
|
var FIRST_CODE_POINT = 0;
|
|
1155
|
-
var
|
|
1235
|
+
var EMPTY_LENGTH2 = 0;
|
|
1156
1236
|
var MAX_VALUE_LENGTH = 4096;
|
|
1237
|
+
var MAX_PROMPT_LENGTH = 65536;
|
|
1157
1238
|
var LINE_FEED = "\n";
|
|
1158
1239
|
var SPACE = " ";
|
|
1159
1240
|
function is_control_character(character) {
|
|
@@ -1169,16 +1250,16 @@ function is_never_allowed() {
|
|
|
1169
1250
|
function is_refused(character, is_allowed) {
|
|
1170
1251
|
return is_control_character(character) && !is_allowed(character);
|
|
1171
1252
|
}
|
|
1172
|
-
function is_safe_text(value, is_allowed) {
|
|
1173
|
-
if (value.length ===
|
|
1253
|
+
function is_safe_text(value, is_allowed, max_length) {
|
|
1254
|
+
if (value.length === EMPTY_LENGTH2 || value.length > max_length) return false;
|
|
1174
1255
|
for (const character of value) if (is_refused(character, is_allowed)) return false;
|
|
1175
1256
|
return true;
|
|
1176
1257
|
}
|
|
1177
1258
|
function is_safe_value(value) {
|
|
1178
|
-
return is_safe_text(value, is_never_allowed);
|
|
1259
|
+
return is_safe_text(value, is_never_allowed, MAX_VALUE_LENGTH);
|
|
1179
1260
|
}
|
|
1180
1261
|
function is_safe_prompt(value) {
|
|
1181
|
-
return is_safe_text(value, is_line_feed);
|
|
1262
|
+
return is_safe_text(value, is_line_feed, MAX_PROMPT_LENGTH);
|
|
1182
1263
|
}
|
|
1183
1264
|
function printable_character(character) {
|
|
1184
1265
|
return is_refused(character, is_line_feed) ? SPACE : character;
|
|
@@ -1186,18 +1267,36 @@ function printable_character(character) {
|
|
|
1186
1267
|
function printable(text) {
|
|
1187
1268
|
return Array.from(text, printable_character).join("");
|
|
1188
1269
|
}
|
|
1189
|
-
var agent_safe_text = {
|
|
1270
|
+
var agent_safe_text = {
|
|
1271
|
+
MAX_PROMPT_LENGTH,
|
|
1272
|
+
MAX_VALUE_LENGTH,
|
|
1273
|
+
is_safe_prompt,
|
|
1274
|
+
is_safe_value,
|
|
1275
|
+
printable
|
|
1276
|
+
};
|
|
1190
1277
|
|
|
1191
1278
|
// scripts/agent/agent-role-profile.ts
|
|
1192
|
-
var
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1279
|
+
var {
|
|
1280
|
+
ANTHROPIC_PROVIDER: ANTHROPIC_PROVIDER2,
|
|
1281
|
+
CODEX_SESSION_KEY: CODEX_SESSION_KEY2,
|
|
1282
|
+
HANDED_PROVIDER_KEY: HANDED_PROVIDER_KEY2,
|
|
1283
|
+
OPENAI_PROVIDER: OPENAI_PROVIDER2,
|
|
1284
|
+
PROVIDER_SCHEMA: PROVIDER_SCHEMA2,
|
|
1285
|
+
default_notice: default_notice2,
|
|
1286
|
+
handoff_environment: handoff_environment2,
|
|
1287
|
+
has_completion_callback: has_completion_callback2,
|
|
1288
|
+
rejection: rejection2,
|
|
1289
|
+
resolve_provider: resolve_provider2,
|
|
1290
|
+
trimmed: trimmed2,
|
|
1291
|
+
warn_of_default: warn_of_default2
|
|
1292
|
+
} = agent_provider;
|
|
1293
|
+
var ROLE_SCHEMA = z2.enum(["scheduler", "worker", "reviewer"]);
|
|
1294
|
+
var EFFORT_SCHEMA = z2.enum(["low", "medium", "high", "xhigh", "max"]);
|
|
1295
|
+
var PHASE_SCHEMA = z2.enum(["implementation", "pre-gate"]);
|
|
1296
|
+
var PROFILE_SCHEMA = z2.object({
|
|
1297
|
+
provider: PROVIDER_SCHEMA2.default("anthropic"),
|
|
1199
1298
|
role: ROLE_SCHEMA,
|
|
1200
|
-
model:
|
|
1299
|
+
model: z2.string(),
|
|
1201
1300
|
effort: EFFORT_SCHEMA
|
|
1202
1301
|
});
|
|
1203
1302
|
var SCHEDULER = "scheduler";
|
|
@@ -1205,37 +1304,29 @@ var WORKER = "worker";
|
|
|
1205
1304
|
var REVIEWER = "reviewer";
|
|
1206
1305
|
var IMPLEMENTATION_PHASE = "implementation";
|
|
1207
1306
|
var PRE_GATE_PHASE = "pre-gate";
|
|
1208
|
-
var ANTHROPIC_PROVIDER = "anthropic";
|
|
1209
|
-
var OPENAI_PROVIDER = "openai";
|
|
1210
1307
|
var OPENAI_MODEL = "gpt-6.1-sol";
|
|
1211
1308
|
var ANTHROPIC_MODEL = "claude-opus-5-5";
|
|
1212
|
-
var
|
|
1213
|
-
var
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
role: SCHEDULER,
|
|
1217
|
-
model:
|
|
1218
|
-
effort:
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
role: REVIEWER,
|
|
1224
|
-
model: ANTHROPIC_MODEL,
|
|
1225
|
-
effort: "high"
|
|
1226
|
-
}
|
|
1227
|
-
};
|
|
1228
|
-
var OPENAI_PROFILES = {
|
|
1229
|
-
scheduler: { provider: OPENAI_PROVIDER, role: SCHEDULER, model: OPENAI_MODEL, effort: "medium" },
|
|
1230
|
-
worker: { provider: OPENAI_PROVIDER, role: WORKER, model: OPENAI_MODEL, effort: "medium" },
|
|
1231
|
-
reviewer: { provider: OPENAI_PROVIDER, role: REVIEWER, model: OPENAI_MODEL, effort: "high" }
|
|
1232
|
-
};
|
|
1309
|
+
var REVIEW_EFFORT = "medium";
|
|
1310
|
+
var VERIFICATION_EFFORT = "high";
|
|
1311
|
+
function role_profiles(provider, model) {
|
|
1312
|
+
return {
|
|
1313
|
+
scheduler: { provider, role: SCHEDULER, model, effort: "medium" },
|
|
1314
|
+
worker: { provider, role: WORKER, model, effort: "medium" },
|
|
1315
|
+
reviewer: { provider, role: REVIEWER, model, effort: REVIEW_EFFORT }
|
|
1316
|
+
};
|
|
1317
|
+
}
|
|
1318
|
+
var DEFAULT_PROFILES = role_profiles(ANTHROPIC_PROVIDER2, ANTHROPIC_MODEL);
|
|
1319
|
+
var OPENAI_PROFILES = role_profiles(OPENAI_PROVIDER2, OPENAI_MODEL);
|
|
1233
1320
|
var PROVIDER_PROFILES = { anthropic: DEFAULT_PROFILES, openai: OPENAI_PROFILES };
|
|
1234
1321
|
var FIRST_REVIEW_ROUND = 1;
|
|
1235
1322
|
var VERIFICATION_MODEL = "claude-sonnet-5-5";
|
|
1236
1323
|
var VERIFICATION_PROFILES = {
|
|
1237
|
-
anthropic: {
|
|
1238
|
-
|
|
1324
|
+
anthropic: {
|
|
1325
|
+
...DEFAULT_PROFILES.reviewer,
|
|
1326
|
+
model: VERIFICATION_MODEL,
|
|
1327
|
+
effort: VERIFICATION_EFFORT
|
|
1328
|
+
},
|
|
1329
|
+
openai: { ...OPENAI_PROFILES.reviewer, effort: VERIFICATION_EFFORT }
|
|
1239
1330
|
};
|
|
1240
1331
|
var VERIFICATION_KEYS = {
|
|
1241
1332
|
model: "JOSH_REVIEWER_VERIFICATION_MODEL",
|
|
@@ -1245,6 +1336,9 @@ var SHIP_EFFORT = "low";
|
|
|
1245
1336
|
var PHASE_EFFORT = {
|
|
1246
1337
|
worker: { [PRE_GATE_PHASE]: SHIP_EFFORT }
|
|
1247
1338
|
};
|
|
1339
|
+
var PHASE_MODEL_KEYS = {
|
|
1340
|
+
worker: { [PRE_GATE_PHASE]: "JOSH_WORKER_SHIP_MODEL" }
|
|
1341
|
+
};
|
|
1248
1342
|
var ENV_KEYS = {
|
|
1249
1343
|
scheduler: { model: "JOSH_SCHEDULER_MODEL", effort: "JOSH_SCHEDULER_EFFORT" },
|
|
1250
1344
|
worker: { model: "JOSH_WORKER_MODEL", effort: "JOSH_WORKER_EFFORT" },
|
|
@@ -1252,10 +1346,6 @@ var ENV_KEYS = {
|
|
|
1252
1346
|
};
|
|
1253
1347
|
var LEGACY_WORKER_KEYS = { model: "JOSH_LANE_MODEL", effort: "JOSH_LANE_EFFORT" };
|
|
1254
1348
|
var { MAX_VALUE_LENGTH: MAX_VALUE_LENGTH2, is_safe_prompt: is_safe_prompt2, is_safe_value: is_safe_value2, printable: printable2 } = agent_safe_text;
|
|
1255
|
-
function trimmed(value) {
|
|
1256
|
-
const result = value?.trim();
|
|
1257
|
-
return result === void 0 || result.length === EMPTY_LENGTH2 ? void 0 : result;
|
|
1258
|
-
}
|
|
1259
1349
|
function is_verification(role, round) {
|
|
1260
1350
|
return role === REVIEWER && round !== void 0 && round > FIRST_REVIEW_ROUND;
|
|
1261
1351
|
}
|
|
@@ -1266,90 +1356,55 @@ function override_keys(role, field, round) {
|
|
|
1266
1356
|
}
|
|
1267
1357
|
function override_value(role, field, environment, round) {
|
|
1268
1358
|
const keys = override_keys(role, field, round);
|
|
1269
|
-
const key = keys.find((candidate) =>
|
|
1270
|
-
return key === void 0 ? { key: keys[0], value: void 0 } : { key, value:
|
|
1359
|
+
const key = keys.find((candidate) => trimmed2(environment[candidate]) !== void 0);
|
|
1360
|
+
return key === void 0 ? { key: keys[0], value: void 0 } : { key, value: trimmed2(environment[key]) };
|
|
1271
1361
|
}
|
|
1272
|
-
function
|
|
1273
|
-
|
|
1362
|
+
function phase_entry(table, role, phase) {
|
|
1363
|
+
const parsed = PHASE_SCHEMA.safeParse(phase);
|
|
1364
|
+
return parsed.success ? table[role]?.[parsed.data] : void 0;
|
|
1274
1365
|
}
|
|
1275
|
-
function
|
|
1276
|
-
|
|
1366
|
+
function phase_model(role, provider, phase, environment) {
|
|
1367
|
+
const key = provider === OPENAI_PROVIDER2 ? void 0 : phase_entry(PHASE_MODEL_KEYS, role, phase);
|
|
1368
|
+
if (key === void 0) return void 0;
|
|
1369
|
+
const value = trimmed2(environment[key]);
|
|
1370
|
+
return value === void 0 ? void 0 : { key, value };
|
|
1371
|
+
}
|
|
1372
|
+
function model_override(role, environment, provider, stage) {
|
|
1373
|
+
const phased = phase_model(role, provider, stage.phase, environment);
|
|
1374
|
+
if (phased !== void 0) return phased;
|
|
1375
|
+
return provider === OPENAI_PROVIDER2 ? { key: ENV_KEYS[role].model, value: void 0 } : override_value(role, "model", environment, stage.round);
|
|
1277
1376
|
}
|
|
1278
1377
|
function resolved_effort(override, fallback) {
|
|
1279
1378
|
const parsed = EFFORT_SCHEMA.safeParse(override.value ?? fallback);
|
|
1280
|
-
return parsed.success ? { kind: "effort", effort: parsed.data } :
|
|
1281
|
-
}
|
|
1282
|
-
function has_session(environment, keys) {
|
|
1283
|
-
return keys.some((key) => trimmed(environment[key]) !== void 0);
|
|
1284
|
-
}
|
|
1285
|
-
var CONFLICTING_SESSIONS = {
|
|
1286
|
-
kind: "rejected",
|
|
1287
|
-
note: "both Codex and Claude Code sessions were detected"
|
|
1288
|
-
};
|
|
1289
|
-
var HANDED_PROVIDER_KEY = "JOSH_AGENT_PROVIDER";
|
|
1290
|
-
var DEFAULT_PROVIDER = {
|
|
1291
|
-
kind: "provider",
|
|
1292
|
-
provider: ANTHROPIC_PROVIDER,
|
|
1293
|
-
is_default: true
|
|
1294
|
-
};
|
|
1295
|
-
var DEFAULT_NOTICE = ` No agent session or ${HANDED_PROVIDER_KEY} was found, so the provider defaulted to ${ANTHROPIC_PROVIDER} (Claude Code).`;
|
|
1296
|
-
function handed_provider(environment) {
|
|
1297
|
-
const value = trimmed(environment[HANDED_PROVIDER_KEY]);
|
|
1298
|
-
if (value === void 0) return DEFAULT_PROVIDER;
|
|
1299
|
-
const parsed = PROVIDER_SCHEMA.safeParse(value);
|
|
1300
|
-
return parsed.success ? { kind: "provider", provider: parsed.data } : rejection(HANDED_PROVIDER_KEY, value, "is not an allowed provider");
|
|
1301
|
-
}
|
|
1302
|
-
function detected_provider(environment) {
|
|
1303
|
-
const has_codex = has_session(environment, [CODEX_SESSION_KEY]);
|
|
1304
|
-
const has_claude = has_session(environment, agent_session_environment.PARENT_SESSION_KEYS);
|
|
1305
|
-
if (has_codex === has_claude) return has_codex ? CONFLICTING_SESSIONS : void 0;
|
|
1306
|
-
return { kind: "provider", provider: has_codex ? OPENAI_PROVIDER : ANTHROPIC_PROVIDER };
|
|
1307
|
-
}
|
|
1308
|
-
function resolve_provider(environment = process.env) {
|
|
1309
|
-
return detected_provider(environment) ?? handed_provider(environment);
|
|
1310
|
-
}
|
|
1311
|
-
function default_notice(environment = process.env) {
|
|
1312
|
-
const selected = resolve_provider(environment);
|
|
1313
|
-
return selected.kind === "provider" && selected.is_default === true ? DEFAULT_NOTICE : "";
|
|
1314
|
-
}
|
|
1315
|
-
function warn_of_default(environment = process.env) {
|
|
1316
|
-
const notice = default_notice(environment).trim();
|
|
1317
|
-
if (notice !== "") console.error(notice);
|
|
1318
|
-
}
|
|
1319
|
-
function has_completion_callback(environment = process.env) {
|
|
1320
|
-
const selected = resolve_provider(environment);
|
|
1321
|
-
return selected.kind !== "provider" || selected.provider !== OPENAI_PROVIDER;
|
|
1322
|
-
}
|
|
1323
|
-
function handoff_environment(environment = process.env) {
|
|
1324
|
-
const selected = resolve_provider(environment);
|
|
1325
|
-
return selected.kind === "provider" ? { [HANDED_PROVIDER_KEY]: selected.provider } : {};
|
|
1379
|
+
return parsed.success ? { kind: "effort", effort: parsed.data } : rejection2(override.key, override.value ?? "", "is not an allowed effort");
|
|
1326
1380
|
}
|
|
1327
1381
|
function validate(profile, model_key) {
|
|
1328
1382
|
if (!is_safe_value2(profile.model)) {
|
|
1329
|
-
return
|
|
1383
|
+
return rejection2(model_key, profile.model, "is not a safe model");
|
|
1330
1384
|
}
|
|
1331
1385
|
return { kind: "profile", profile };
|
|
1332
1386
|
}
|
|
1333
1387
|
function phase_effort(role, phase, fallback) {
|
|
1334
|
-
|
|
1335
|
-
if (!parsed.success) return fallback;
|
|
1336
|
-
return PHASE_EFFORT[role]?.[parsed.data] ?? fallback;
|
|
1388
|
+
return phase_entry(PHASE_EFFORT, role, phase) ?? fallback;
|
|
1337
1389
|
}
|
|
1338
1390
|
function overridden_effort(profile, phase, environment) {
|
|
1339
1391
|
const parsed = EFFORT_SCHEMA.safeParse(override_value(profile.role, "effort", environment).value);
|
|
1340
1392
|
return parsed.success ? parsed.data : phase_effort(profile.role, phase, profile.effort);
|
|
1341
1393
|
}
|
|
1342
|
-
function
|
|
1343
|
-
|
|
1394
|
+
function with_phase(profile, phase, environment = process.env) {
|
|
1395
|
+
const effort = overridden_effort(profile, phase, environment);
|
|
1396
|
+
const model = phase_model(profile.role, profile.provider, phase, environment);
|
|
1397
|
+
if (model === void 0) return { kind: "profile", profile: { ...profile, effort } };
|
|
1398
|
+
return validate({ ...profile, model: model.value, effort }, model.key);
|
|
1344
1399
|
}
|
|
1345
1400
|
function stage_defaults(provider, role, round) {
|
|
1346
1401
|
return is_verification(role, round) ? VERIFICATION_PROFILES[provider] : PROVIDER_PROFILES[provider][role];
|
|
1347
1402
|
}
|
|
1348
1403
|
function resolve_stage(role, environment, stage) {
|
|
1349
|
-
const selected =
|
|
1404
|
+
const selected = resolve_provider2(environment);
|
|
1350
1405
|
if (selected.kind === "rejected") return selected;
|
|
1351
1406
|
const defaults = stage_defaults(selected.provider, role, stage.round);
|
|
1352
|
-
const model = model_override(role, environment, selected.provider, stage
|
|
1407
|
+
const model = model_override(role, environment, selected.provider, stage);
|
|
1353
1408
|
const effort = override_value(role, "effort", environment, stage.round);
|
|
1354
1409
|
const resolved = resolved_effort(effort, phase_effort(role, stage.phase, defaults.effort));
|
|
1355
1410
|
if (resolved.kind === "rejected") return resolved;
|
|
@@ -1378,9 +1433,9 @@ function parse(value) {
|
|
|
1378
1433
|
return parsed.success && is_safe_value2(parsed.data.model) ? parsed.data : void 0;
|
|
1379
1434
|
}
|
|
1380
1435
|
var agent_role_profile = {
|
|
1381
|
-
CODEX_SESSION_KEY,
|
|
1436
|
+
CODEX_SESSION_KEY: CODEX_SESSION_KEY2,
|
|
1382
1437
|
DEFAULT_PROFILES,
|
|
1383
|
-
HANDED_PROVIDER_KEY,
|
|
1438
|
+
HANDED_PROVIDER_KEY: HANDED_PROVIDER_KEY2,
|
|
1384
1439
|
IMPLEMENTATION_PHASE,
|
|
1385
1440
|
MAX_VALUE_LENGTH: MAX_VALUE_LENGTH2,
|
|
1386
1441
|
OPENAI_PROFILES,
|
|
@@ -1390,20 +1445,20 @@ var agent_role_profile = {
|
|
|
1390
1445
|
SCHEDULER,
|
|
1391
1446
|
VERIFICATION_PROFILES,
|
|
1392
1447
|
WORKER,
|
|
1393
|
-
default_notice,
|
|
1448
|
+
default_notice: default_notice2,
|
|
1394
1449
|
describe,
|
|
1395
1450
|
describe_review,
|
|
1396
|
-
handoff_environment,
|
|
1397
|
-
has_completion_callback,
|
|
1451
|
+
handoff_environment: handoff_environment2,
|
|
1452
|
+
has_completion_callback: has_completion_callback2,
|
|
1398
1453
|
is_safe_prompt: is_safe_prompt2,
|
|
1399
1454
|
is_safe_value: is_safe_value2,
|
|
1400
1455
|
parse,
|
|
1401
1456
|
printable: printable2,
|
|
1402
1457
|
resolve,
|
|
1403
|
-
resolve_provider,
|
|
1458
|
+
resolve_provider: resolve_provider2,
|
|
1404
1459
|
resolve_review,
|
|
1405
|
-
warn_of_default,
|
|
1406
|
-
|
|
1460
|
+
warn_of_default: warn_of_default2,
|
|
1461
|
+
with_phase
|
|
1407
1462
|
};
|
|
1408
1463
|
|
|
1409
1464
|
// scripts/time-runtime/time-instant.ts
|
|
@@ -1415,30 +1470,30 @@ function parse_instant(raw) {
|
|
|
1415
1470
|
var time_instant = { parse_instant };
|
|
1416
1471
|
|
|
1417
1472
|
// scripts/cost-runtime/cost-usage.ts
|
|
1418
|
-
import { z as
|
|
1419
|
-
var CACHE_CREATION_SCHEMA =
|
|
1420
|
-
ephemeral_1h_input_tokens:
|
|
1421
|
-
ephemeral_5m_input_tokens:
|
|
1473
|
+
import { z as z3 } from "zod";
|
|
1474
|
+
var CACHE_CREATION_SCHEMA = z3.object({
|
|
1475
|
+
ephemeral_1h_input_tokens: z3.number().nullish(),
|
|
1476
|
+
ephemeral_5m_input_tokens: z3.number().nullish()
|
|
1422
1477
|
});
|
|
1423
|
-
var USAGE_SCHEMA =
|
|
1424
|
-
input_tokens:
|
|
1425
|
-
cache_creation_input_tokens:
|
|
1426
|
-
cache_read_input_tokens:
|
|
1427
|
-
output_tokens:
|
|
1428
|
-
output_tokens_details:
|
|
1478
|
+
var USAGE_SCHEMA = z3.object({
|
|
1479
|
+
input_tokens: z3.number(),
|
|
1480
|
+
cache_creation_input_tokens: z3.number().nullish(),
|
|
1481
|
+
cache_read_input_tokens: z3.number().nullish(),
|
|
1482
|
+
output_tokens: z3.number(),
|
|
1483
|
+
output_tokens_details: z3.object({ thinking_tokens: z3.number().nullish() }).nullish(),
|
|
1429
1484
|
cache_creation: CACHE_CREATION_SCHEMA.nullish()
|
|
1430
1485
|
});
|
|
1431
|
-
var MESSAGE_SCHEMA =
|
|
1432
|
-
id:
|
|
1433
|
-
model:
|
|
1486
|
+
var MESSAGE_SCHEMA = z3.object({
|
|
1487
|
+
id: z3.string().nullish(),
|
|
1488
|
+
model: z3.string().nullish(),
|
|
1434
1489
|
usage: USAGE_SCHEMA.nullish()
|
|
1435
1490
|
});
|
|
1436
|
-
var LINE_SCHEMA =
|
|
1437
|
-
type:
|
|
1438
|
-
requestId:
|
|
1439
|
-
uuid:
|
|
1440
|
-
gitBranch:
|
|
1441
|
-
timestamp:
|
|
1491
|
+
var LINE_SCHEMA = z3.object({
|
|
1492
|
+
type: z3.string(),
|
|
1493
|
+
requestId: z3.string().nullish(),
|
|
1494
|
+
uuid: z3.string().nullish(),
|
|
1495
|
+
gitBranch: z3.string().nullish(),
|
|
1496
|
+
timestamp: z3.string().nullish(),
|
|
1442
1497
|
message: MESSAGE_SCHEMA.nullish()
|
|
1443
1498
|
});
|
|
1444
1499
|
var SYNTHETIC_MODEL = "<synthetic>";
|
|
@@ -1602,6 +1657,10 @@ function resolve_price(model) {
|
|
|
1602
1657
|
function cache_read_multiplier(price) {
|
|
1603
1658
|
return price.cache_read_multiplier ?? DEFAULT_CACHE_READ_MULTIPLIER;
|
|
1604
1659
|
}
|
|
1660
|
+
function cache_read_multiplier_of(model) {
|
|
1661
|
+
const price = model === void 0 ? void 0 : resolve_price(model);
|
|
1662
|
+
return price === void 0 ? DEFAULT_CACHE_READ_MULTIPLIER : cache_read_multiplier(price);
|
|
1663
|
+
}
|
|
1605
1664
|
function estimate_cost(totals, price) {
|
|
1606
1665
|
const weighted_input = totals.input_tokens + totals.cache_write_5m_tokens * CACHE_WRITE_5M_MULTIPLIER + totals.cache_write_1h_tokens * CACHE_WRITE_1H_MULTIPLIER + totals.cache_read_tokens * cache_read_multiplier(price);
|
|
1607
1666
|
return (weighted_input * price.input + totals.output_tokens * price.output) / TOKENS_PER_MILLION;
|
|
@@ -1658,6 +1717,7 @@ var cost_pricing = {
|
|
|
1658
1717
|
DEFAULT_CACHE_READ_MULTIPLIER,
|
|
1659
1718
|
LONG_PROMPT_THRESHOLD,
|
|
1660
1719
|
resolve_price,
|
|
1720
|
+
cache_read_multiplier_of,
|
|
1661
1721
|
estimate_cost,
|
|
1662
1722
|
estimate_composition,
|
|
1663
1723
|
cost_by_model,
|