@bastani/atomic 0.9.14-alpha.1 → 0.9.14-alpha.2
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/CHANGELOG.md +46 -0
- package/README.md +3 -3
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/package.json +3 -3
- package/dist/builtin/subagents/CHANGELOG.md +14 -0
- package/dist/builtin/subagents/README.md +6 -4
- package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
- package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
- package/dist/builtin/subagents/agents/debugger.md +1 -1
- package/dist/builtin/subagents/agents/worker.md +1 -1
- package/dist/builtin/subagents/package.json +6 -5
- package/dist/builtin/subagents/src/agents/agent-discovery.ts +17 -11
- package/dist/builtin/subagents/src/agents/agent-loaders.ts +115 -43
- package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +10 -8
- package/dist/builtin/subagents/src/agents/agent-management.ts +8 -7
- package/dist/builtin/subagents/src/agents/agent-overrides.ts +2 -2
- package/dist/builtin/subagents/src/agents/agent-scope.ts +1 -1
- package/dist/builtin/subagents/src/agents/agent-selection.ts +1 -1
- package/dist/builtin/subagents/src/agents/agent-serializer.ts +24 -3
- package/dist/builtin/subagents/src/agents/agent-types.ts +3 -1
- package/dist/builtin/subagents/src/agents/agents.ts +7 -5
- package/dist/builtin/subagents/src/agents/frontmatter.ts +67 -22
- package/dist/builtin/subagents/src/agents/identity.ts +1 -1
- package/dist/builtin/subagents/src/agents/skills-paths.ts +1 -1
- package/dist/builtin/subagents/src/agents/skills.ts +64 -6
- package/dist/builtin/subagents/src/extension/config.ts +1 -1
- package/dist/builtin/subagents/src/extension/control-notices.ts +2 -2
- package/dist/builtin/subagents/src/extension/doctor.ts +15 -5
- package/dist/builtin/subagents/src/extension/fanout-child.ts +12 -12
- package/dist/builtin/subagents/src/extension/index.ts +23 -23
- package/dist/builtin/subagents/src/extension/notification-content.ts +1 -1
- package/dist/builtin/subagents/src/extension/schemas.ts +1 -1
- package/dist/builtin/subagents/src/extension/startup-maintenance.ts +3 -3
- package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +3 -3
- package/dist/builtin/subagents/src/intercom/result-intercom.ts +1 -1
- package/dist/builtin/subagents/src/intercom/supervisor-authorization.ts +1 -1
- package/dist/builtin/subagents/src/runs/foreground/completion-notification.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +1 -1
- package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +3 -3
- package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +1 -1
- package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +1 -1
- package/dist/builtin/subagents/src/runs/foreground/execution.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +27 -11
- package/dist/builtin/subagents/src/runs/foreground/notify.ts +3 -3
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +11 -11
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +3 -3
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +15 -14
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +19 -19
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +14 -13
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +9 -9
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +7 -7
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +6 -6
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +24 -23
- package/dist/builtin/subagents/src/runs/inprocess/control-registry.ts +1 -1
- package/dist/builtin/subagents/src/runs/inprocess/control-status.ts +3 -3
- package/dist/builtin/subagents/src/runs/inprocess/index.ts +3 -3
- package/dist/builtin/subagents/src/runs/inprocess/prompt-behavior.ts +17 -8
- package/dist/builtin/subagents/src/runs/inprocess/runner.ts +60 -12
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-api.ts +8 -8
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-control.ts +3 -3
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-core.ts +4 -4
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +4 -4
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-registry.ts +5 -5
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-rendering.ts +3 -3
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +3 -3
- package/dist/builtin/subagents/src/runs/inprocess.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +3 -3
- package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +2 -2
- package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/single-output.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +1 -1
- package/dist/builtin/subagents/src/shared/artifacts.ts +2 -2
- package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +1 -1
- package/dist/builtin/subagents/src/shared/fast-mode.ts +1 -1
- package/dist/builtin/subagents/src/shared/formatters.ts +2 -2
- package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -1
- package/dist/builtin/subagents/src/shared/model-resolution.ts +1 -1
- package/dist/builtin/subagents/src/shared/session-tokens.ts +1 -1
- package/dist/builtin/subagents/src/shared/settings.ts +4 -4
- package/dist/builtin/subagents/src/shared/status-format.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-config.ts +16 -4
- package/dist/builtin/subagents/src/shared/types-depth.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-nested.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-output.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-results.ts +1 -1
- package/dist/builtin/subagents/src/shared/types-runtime.ts +1 -1
- package/dist/builtin/subagents/src/shared/types.ts +6 -6
- package/dist/builtin/subagents/src/shared/utils.ts +3 -3
- package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +1 -1
- package/dist/builtin/subagents/src/slash/slash-bridge.ts +3 -3
- package/dist/builtin/subagents/src/slash/slash-commands.ts +6 -6
- package/dist/builtin/subagents/src/slash/slash-live-state.ts +3 -3
- package/dist/builtin/subagents/src/tui/render-event-formatting.ts +2 -2
- package/dist/builtin/subagents/src/tui/render-layout.ts +1 -1
- package/dist/builtin/subagents/src/tui/render-progress.ts +2 -2
- package/dist/builtin/subagents/src/tui/render-result-compact.ts +7 -7
- package/dist/builtin/subagents/src/tui/render-result.ts +10 -10
- package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -1
- package/dist/builtin/subagents/src/tui/render-status-progress.ts +5 -5
- package/dist/builtin/subagents/src/tui/render.ts +4 -4
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +45 -0
- package/dist/builtin/workflows/README.md +30 -8
- package/dist/builtin/workflows/builtin/adversarial-verification-runner.ts +16 -5
- package/dist/builtin/workflows/builtin/generate-and-filter-runner.ts +12 -4
- package/dist/builtin/workflows/builtin/goal-models.ts +8 -10
- package/dist/builtin/workflows/builtin/index.d.ts +0 -4
- package/dist/builtin/workflows/builtin/loop-until-done-runner.ts +4 -2
- package/dist/builtin/workflows/builtin/open-claude-design-live-protocol.ts +305 -0
- package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +115 -171
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +9 -25
- package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +19 -86
- package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +0 -6
- package/dist/builtin/workflows/builtin/open-claude-design.d.ts +0 -5
- package/dist/builtin/workflows/builtin/open-claude-design.ts +7 -15
- package/dist/builtin/workflows/builtin/ralph-models.ts +24 -29
- package/dist/builtin/workflows/builtin/tournament-runner.ts +6 -3
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/impeccable/SKILL.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/agents/impeccable_asset_producer.toml +25 -31
- package/dist/builtin/workflows/skills/impeccable/agents/impeccable_documenter.toml +1 -0
- package/dist/builtin/workflows/skills/impeccable/agents/impeccable_finish_reviewer.toml +16 -10
- package/dist/builtin/workflows/skills/impeccable/agents/impeccable_manual_edit_applier.toml +2 -2
- package/dist/builtin/workflows/skills/impeccable/reference/android.md +6 -0
- package/dist/builtin/workflows/skills/impeccable/reference/animate.md +3 -0
- package/dist/builtin/workflows/skills/impeccable/reference/bolder.md +3 -1
- package/dist/builtin/workflows/skills/impeccable/reference/craft-floor.md +6 -1
- package/dist/builtin/workflows/skills/impeccable/reference/critique.md +18 -2
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/asset-producer.md +24 -30
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/documenter.md +1 -0
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/finish-reviewer.md +16 -10
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/manual-edit-applier.md +2 -2
- package/dist/builtin/workflows/skills/impeccable/reference/distill.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/doctor.md +1 -0
- package/dist/builtin/workflows/skills/impeccable/reference/document.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/extract.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +12 -6
- package/dist/builtin/workflows/skills/impeccable/reference/init.md +12 -3
- package/dist/builtin/workflows/skills/impeccable/reference/ios.md +6 -0
- package/dist/builtin/workflows/skills/impeccable/reference/live-setup.md +102 -0
- package/dist/builtin/workflows/skills/impeccable/reference/live.md +113 -521
- package/dist/builtin/workflows/skills/impeccable/reference/new-work.md +39 -26
- package/dist/builtin/workflows/skills/impeccable/reference/overdrive.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/polish.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/quieter.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/visualize.md +25 -11
- package/dist/builtin/workflows/skills/impeccable/scripts/concept-seed.mjs +332 -221
- package/dist/builtin/workflows/skills/impeccable/scripts/context-signals.mjs +10 -19
- package/dist/builtin/workflows/skills/impeccable/scripts/context.mjs +91 -38
- package/dist/builtin/workflows/skills/impeccable/scripts/critique-storage.mjs +19 -10
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/browser/injected/index.mjs +56 -6
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/cli/main.mjs +10 -16
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/design-system.mjs +140 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +1174 -694
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns.mjs +1 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +5 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +431 -45
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +10 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +47 -6
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/node/file-system.mjs +23 -22
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/registry/antipatterns.mjs +0 -10
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +384 -384
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/color.mjs +466 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/doctor.mjs +2 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/embed-prompt.mjs +270 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/generate-image.mjs +51 -6
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +70 -10
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +336 -90
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/composition-catalog.mjs +38 -3
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/concept-catalog.mjs +77 -11
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/design-parser.mjs +102 -19
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-config.mjs +44 -59
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/is-generated.mjs +3 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/open-system-browser.mjs +57 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/roll-selection.mjs +369 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/staleness-deep.mjs +31 -3
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/staleness.mjs +73 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/live/accept-css.mjs +617 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/accept-verify.mjs +71 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/browser-script-parts.mjs +29 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/live/event-validation.mjs +54 -7
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/astro.mjs +47 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/detect-utils.mjs +157 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/index.mjs +143 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/journal.mjs +205 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/nextjs.mjs +49 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/nuxt.mjs +170 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/script-src.mjs +26 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/static-html.mjs +26 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/sveltekit.mjs +71 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/tag-strategy.mjs +247 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/tanstack-start.mjs +70 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/frameworks/vite-generic.mjs +42 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/instructions.mjs +169 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/roots.mjs +670 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/session-store.mjs +232 -35
- package/dist/builtin/workflows/skills/impeccable/scripts/live/svelte-ast.mjs +969 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/svelte-component.mjs +621 -74
- package/dist/builtin/workflows/skills/impeccable/scripts/live/sveltekit-adapter.mjs +66 -28
- package/dist/builtin/workflows/skills/impeccable/scripts/live/tanstack-adapter.mjs +12 -12
- package/dist/builtin/workflows/skills/impeccable/scripts/live/ui-surfaces.mjs +75 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live/vocabulary.mjs +135 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +23 -37
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +945 -115
- package/dist/builtin/workflows/skills/impeccable/scripts/live-complete.mjs +33 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/live-copy-edit-agent.mjs +132 -15
- package/dist/builtin/workflows/skills/impeccable/scripts/live-inject.mjs +173 -425
- package/dist/builtin/workflows/skills/impeccable/scripts/live-insert.mjs +2 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/live-poll.mjs +16 -3
- package/dist/builtin/workflows/skills/impeccable/scripts/live-resume.mjs +39 -10
- package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +194 -27
- package/dist/builtin/workflows/skills/impeccable/scripts/live-status.mjs +10 -4
- package/dist/builtin/workflows/skills/impeccable/scripts/live-wrap.mjs +50 -31
- package/dist/builtin/workflows/skills/impeccable/scripts/live.mjs +91 -28
- package/dist/builtin/workflows/skills/impeccable/scripts/pin.mjs +8 -5
- package/dist/builtin/workflows/skills/impeccable/scripts/serve-question.mjs +759 -109
- package/dist/builtin/workflows/src/durable/completed-catalog.ts +10 -0
- package/dist/builtin/workflows/src/durable/dbos-backend.ts +30 -17
- package/dist/builtin/workflows/src/durable/dbos-envelope.ts +14 -0
- package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +60 -57
- package/dist/builtin/workflows/src/durable/dbos-process-owner.ts +87 -0
- package/dist/builtin/workflows/src/durable/dbos-registration-diagnostics.ts +113 -0
- package/dist/builtin/workflows/src/durable/factory.ts +11 -8
- package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +5 -0
- package/dist/builtin/workflows/src/durable/tool-primitive.ts +186 -20
- package/dist/builtin/workflows/src/durable/types.ts +4 -0
- package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +9 -1
- package/dist/builtin/workflows/src/extension/adopt-session-run-state.ts +20 -0
- package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +9 -30
- package/dist/builtin/workflows/src/extension/extension-factory.ts +3 -0
- package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +28 -10
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +2680 -1418
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +4 -1
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +29 -5
- package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +32 -1
- package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +10 -1
- package/dist/builtin/workflows/src/runs/background/job-tracker.ts +10 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +16 -11
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +31 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +41 -10
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +48 -0
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +4 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +45 -12
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +9 -0
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +9 -0
- package/dist/builtin/workflows/src/shared/graph-store-snapshot.ts +14 -2
- package/dist/builtin/workflows/src/shared/prompt-answer.ts +130 -0
- package/dist/builtin/workflows/src/shared/session-scoped-singleton.ts +98 -0
- package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +9 -1
- package/dist/builtin/workflows/src/shared/store-factory.ts +9 -1
- package/dist/builtin/workflows/src/shared/store-public-types.ts +2 -1
- package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +7 -0
- package/dist/builtin/workflows/src/shared/store-types.ts +18 -1
- package/dist/builtin/workflows/src/shared/tool-payload-bounds.ts +576 -0
- package/dist/builtin/workflows/src/tui/graph-theme.ts +8 -1
- package/dist/builtin/workflows/src/tui/graph-view-constants.ts +11 -0
- package/dist/builtin/workflows/src/tui/graph-view-input.ts +100 -5
- package/dist/builtin/workflows/src/tui/graph-view-layout.ts +42 -11
- package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +55 -6
- package/dist/builtin/workflows/src/tui/graph-view-render.ts +71 -6
- package/dist/builtin/workflows/src/tui/graph-view-state.ts +43 -0
- package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +2 -0
- package/dist/builtin/workflows/src/tui/node-card.ts +5 -1
- package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +11 -2
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +36 -10
- package/dist/builtin/workflows/src/tui/switcher.ts +11 -4
- package/dist/builtin/workflows/src/tui/tool-detail.ts +348 -0
- package/dist/builtin/workflows/src/tui/workflow-status.ts +5 -2
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth-check.d.ts +1 -1
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/credential-print.d.ts +1 -1
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/list-models.d.ts +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +9 -0
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +7 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +2 -2
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-export.d.ts +6 -1
- package/dist/core/agent-session-export.d.ts.map +1 -1
- package/dist/core/agent-session-export.js +6 -3
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +6 -4
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +5 -2
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +12 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +31 -10
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-runtime-auth.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-skill-block.d.ts +1 -0
- package/dist/core/agent-session-skill-block.d.ts.map +1 -1
- package/dist/core/agent-session-skill-block.js +18 -2
- package/dist/core/agent-session-skill-block.js.map +1 -1
- package/dist/core/agent-session-state.d.ts.map +1 -1
- package/dist/core/agent-session-state.js +2 -1
- package/dist/core/agent-session-state.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +2 -1
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/atomic-guide-command.js +2 -2
- package/dist/core/atomic-guide-command.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +0 -6
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/cloudflare-gateway-binding.d.ts +11 -0
- package/dist/core/cloudflare-gateway-binding.d.ts.map +1 -0
- package/dist/core/cloudflare-gateway-binding.js +11 -0
- package/dist/core/cloudflare-gateway-binding.js.map +1 -0
- package/dist/core/codex-fast-mode-transport.d.ts +12 -0
- package/dist/core/codex-fast-mode-transport.d.ts.map +1 -0
- package/dist/core/codex-fast-mode-transport.js +130 -0
- package/dist/core/codex-fast-mode-transport.js.map +1 -0
- package/dist/core/codex-fast-mode.d.ts +20 -6
- package/dist/core/codex-fast-mode.d.ts.map +1 -1
- package/dist/core/codex-fast-mode.js +111 -3
- package/dist/core/codex-fast-mode.js.map +1 -1
- package/dist/core/diagnostics.d.ts +4 -0
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/event-bus.d.ts +12 -0
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +22 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/experimental.d.ts +25 -0
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +24 -0
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/export-html/template-js/tree-filter-render.js +4 -3
- package/dist/core/export-html/template.js +4 -3
- package/dist/core/extension-session-state.d.ts +28 -0
- package/dist/core/extension-session-state.d.ts.map +1 -0
- package/dist/core/extension-session-state.js +55 -0
- package/dist/core/extension-session-state.js.map +1 -0
- package/dist/core/extensions/api-types.d.ts +6 -0
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +4 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +16 -10
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +12 -1
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +2 -0
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +8 -0
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +1 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +3 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +3 -0
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +5 -0
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/keybindings.d.ts +24 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +6 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts +5 -0
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +1 -0
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-cli.d.ts +1 -1
- package/dist/core/model-resolver-cli.js.map +1 -1
- package/dist/core/model-resolver-defaults.js +3 -3
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts +1 -1
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/model-resolver-scope.d.ts +1 -1
- package/dist/core/model-resolver-scope.js.map +1 -1
- package/dist/core/model-runtime.d.ts +54 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +96 -13
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/oauth-login.js.map +1 -1
- package/dist/core/project-trust.d.ts +10 -0
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js +12 -0
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/resource-loader-assets.d.ts.map +1 -1
- package/dist/core/resource-loader-assets.js +14 -5
- package/dist/core/resource-loader-assets.js.map +1 -1
- package/dist/core/resource-loader-core.d.ts +3 -0
- package/dist/core/resource-loader-core.d.ts.map +1 -1
- package/dist/core/resource-loader-core.js +5 -0
- package/dist/core/resource-loader-core.js.map +1 -1
- package/dist/core/resource-loader-internals.d.ts +2 -0
- package/dist/core/resource-loader-internals.d.ts.map +1 -1
- package/dist/core/resource-loader-internals.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +2 -0
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-types.d.ts +2 -0
- package/dist/core/resource-loader-types.d.ts.map +1 -1
- package/dist/core/resource-loader-types.js.map +1 -1
- package/dist/core/resource-loader.d.ts +2 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk-types.d.ts +7 -6
- package/dist/core/sdk-types.d.ts.map +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +17 -6
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-core.d.ts +7 -1
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js +11 -2
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +2 -2
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js +6 -4
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/session-manager-list.d.ts.map +1 -1
- package/dist/core/session-manager-list.js +5 -1
- package/dist/core/session-manager-list.js.map +1 -1
- package/dist/core/session-manager-types.d.ts +25 -2
- package/dist/core/session-manager-types.d.ts.map +1 -1
- package/dist/core/session-manager-types.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +8 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-ui-accessors.d.ts +3 -1
- package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-ui-accessors.js +9 -0
- package/dist/core/settings-manager-ui-accessors.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-types.d.ts +4 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/skill-catalog.d.ts +35 -0
- package/dist/core/skill-catalog.d.ts.map +1 -0
- package/dist/core/skill-catalog.js +264 -0
- package/dist/core/skill-catalog.js.map +1 -0
- package/dist/core/skills-async.d.ts.map +1 -1
- package/dist/core/skills-async.js +12 -6
- package/dist/core/skills-async.js.map +1 -1
- package/dist/core/skills.d.ts +2 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +8 -5
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.js +2 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts +4 -2
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +13 -9
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +2 -0
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +2 -0
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +3 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/hashline-engine/format.d.ts +2 -0
- package/dist/core/tools/hashline-engine/format.d.ts.map +1 -1
- package/dist/core/tools/hashline-engine/format.js +4 -2
- package/dist/core/tools/hashline-engine/format.js.map +1 -1
- package/dist/core/tools/hashline-engine/messages.d.ts +2 -0
- package/dist/core/tools/hashline-engine/messages.d.ts.map +1 -1
- package/dist/core/tools/hashline-engine/messages.js +4 -2
- package/dist/core/tools/hashline-engine/messages.js.map +1 -1
- package/dist/core/tools/hashline-engine/parser.d.ts.map +1 -1
- package/dist/core/tools/hashline-engine/parser.js +16 -4
- package/dist/core/tools/hashline-engine/parser.js.map +1 -1
- package/dist/core/tools/hashline-engine/tokenizer.d.ts.map +1 -1
- package/dist/core/tools/hashline-engine/tokenizer.js +37 -27
- package/dist/core/tools/hashline-engine/tokenizer.js.map +1 -1
- package/dist/core/tools/hashline.d.ts.map +1 -1
- package/dist/core/tools/hashline.js +8 -2
- package/dist/core/tools/hashline.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +2 -0
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +8 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/search.d.ts.map +1 -1
- package/dist/core/tools/search.js +2 -0
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/tools/todos.d.ts +3 -12
- package/dist/core/tools/todos.d.ts.map +1 -1
- package/dist/core/tools/todos.js +19 -4
- package/dist/core/tools/todos.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +2 -0
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/main-runtime-api-key.d.ts +1 -1
- package/dist/main-runtime-api-key.js.map +1 -1
- package/dist/main-session-options.d.ts +1 -1
- package/dist/main-session-options.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.js +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.d.ts +8 -0
- package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.js +8 -0
- package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.d.ts +26 -0
- package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.js +38 -0
- package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.d.ts +37 -0
- package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.js +54 -1
- package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.js +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts +4 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +4 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
- package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +7 -0
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +3 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +5 -4
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.js +2 -2
- package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-custom-ui.js +2 -2
- package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +38 -3
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +75 -10
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +7 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
- package/dist/modes/interactive/interactive-model-catalog-startup.d.ts +8 -1
- package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-catalog-startup.js +13 -3
- package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +3 -4
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +6 -0
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-disclosure.js +2 -2
- package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +7 -3
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +7 -1
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +2 -2
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +34 -9
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-tui.d.ts +18 -1
- package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-tui.js +126 -38
- package/dist/modes/interactive/interactive-tui.js.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts +17 -0
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
- package/dist/modes/interactive/model-catalog-refresh.js +84 -0
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +2 -0
- package/dist/modes/interactive/theme/light.json +2 -0
- package/dist/modes/interactive/theme/theme-class.d.ts +12 -3
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +6 -1
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +10 -2
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +23 -10
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.js +1 -0
- package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.d.ts +8 -0
- package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.js +3 -1
- package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +9 -1
- package/dist/modes/json-event.d.ts +6 -1
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +17 -2
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.js +5 -4
- package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/dist/modes/rpc/rpc-responses.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/server/create-harness.d.ts.map +1 -1
- package/dist/server/create-harness.js +11 -0
- package/dist/server/create-harness.js.map +1 -1
- package/dist/utils/abort.d.ts +9 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +19 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +16 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +19 -19
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/custom-provider.md +9 -8
- package/docs/development.md +0 -1
- package/docs/docs.json +0 -1
- package/docs/environment-variables.md +3 -0
- package/docs/extensions.md +73 -2
- package/docs/json.md +3 -1
- package/docs/keybindings.md +7 -3
- package/docs/models/artificial-analysis-index.md +2 -2
- package/docs/models/model-selection.md +32 -23
- package/docs/models/pareto-efficiency.md +25 -24
- package/docs/providers.md +95 -2
- package/docs/quickstart.md +4 -2
- package/docs/rpc.md +21 -7
- package/docs/sdk.md +26 -1
- package/docs/session-format.md +5 -2
- package/docs/settings.md +34 -3
- package/docs/skills.md +16 -1
- package/docs/terminal-setup.md +15 -2
- package/docs/themes.md +22 -4
- package/docs/tools.md +3 -1
- package/docs/tui.md +2 -0
- package/docs/usage.md +5 -4
- package/docs/workflows.md +62 -19
- package/npm-shrinkwrap.json +211 -232
- package/package.json +8 -8
- package/dist/builtin/i-have-adhd/CHANGELOG.md +0 -30
- package/dist/builtin/i-have-adhd/LICENSE +0 -21
- package/dist/builtin/i-have-adhd/README.md +0 -18
- package/dist/builtin/i-have-adhd/index.ts +0 -238
- package/dist/builtin/i-have-adhd/package.json +0 -56
- package/dist/builtin/i-have-adhd/skills/i-have-adhd/SKILL.md +0 -140
- package/dist/builtin/workflows/builtin/open-claude-design-feedback.ts +0 -359
- package/dist/builtin/workflows/skills/impeccable/scripts/live/ui-core.mjs +0 -180
- package/docs/i-have-adhd.md +0 -36
|
@@ -7,13 +7,38 @@
|
|
|
7
7
|
* actual live UI remains the shared plain-DOM browser chrome.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import crypto from 'node:crypto';
|
|
10
11
|
import fs from 'node:fs';
|
|
11
12
|
import path from 'node:path';
|
|
13
|
+
import { resolveProjectPath, writeProjectFileAtomic } from './frameworks/detect-utils.mjs';
|
|
14
|
+
import { buildLiveScriptSrc } from './frameworks/script-src.mjs';
|
|
12
15
|
|
|
13
16
|
export const SVELTE_LIVE_ROOT_COMPONENT = 'src/lib/impeccable/ImpeccableLiveRoot.svelte';
|
|
14
17
|
export const SVELTE_LAYOUT_MARKER_OPEN = '<!-- impeccable-live-svelte-start -->';
|
|
15
18
|
export const SVELTE_LAYOUT_MARKER_CLOSE = '<!-- impeccable-live-svelte-end -->';
|
|
16
19
|
export const SVELTE_ROOT_IMPORT = "import ImpeccableLiveRoot from '$lib/impeccable/ImpeccableLiveRoot.svelte';";
|
|
20
|
+
// Matches the import at ANY revision (or none). [ \t]* bounds only, never
|
|
21
|
+
// \s*: a greedy \s* after the statement swallowed the next line's
|
|
22
|
+
// indentation on removal, leaving a formatting scar in user layouts.
|
|
23
|
+
const SVELTE_ROOT_IMPORT_LINE_RE = /^[ \t]*import ImpeccableLiveRoot from '\$lib\/impeccable\/ImpeccableLiveRoot\.svelte(?:\?[^']*)?';[ \t]*\r?\n?/gm;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The import specifier carries a token-derived revision query. The adapter
|
|
27
|
+
* component embeds the helper token, and Vite (client AND SSR) can keep
|
|
28
|
+
* serving a stale compiled module after the file is rewritten on a helper
|
|
29
|
+
* restart; the browser then requests /live.js with a rotated-out token and
|
|
30
|
+
* gets a 401 with no picker. A changed specifier is a different module id,
|
|
31
|
+
* which no cache survives.
|
|
32
|
+
*/
|
|
33
|
+
export function svelteRootImportLine(rev) {
|
|
34
|
+
if (!rev) return SVELTE_ROOT_IMPORT;
|
|
35
|
+
return "import ImpeccableLiveRoot from '$lib/impeccable/ImpeccableLiveRoot.svelte?impeccable-live=" + rev + "';";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function svelteAdapterRev(token) {
|
|
39
|
+
if (!token) return null;
|
|
40
|
+
return crypto.createHash('sha256').update(String(token)).digest('hex').slice(0, 8);
|
|
41
|
+
}
|
|
17
42
|
|
|
18
43
|
export function detectSvelteKitProject(cwd = process.cwd(), config = null) {
|
|
19
44
|
const appHtml = findSvelteKitAppHtml(cwd, config);
|
|
@@ -46,12 +71,11 @@ export function applySvelteKitLiveAdapter({ cwd = process.cwd(), port, token, co
|
|
|
46
71
|
ensureSvelteLiveRootComponent(cwd, Number(port), token);
|
|
47
72
|
|
|
48
73
|
const layoutRel = detected.layoutFile;
|
|
49
|
-
const layoutAbs =
|
|
50
|
-
fs.mkdirSync(path.dirname(layoutAbs), { recursive: true });
|
|
74
|
+
const layoutAbs = resolveProjectPath(cwd, layoutRel);
|
|
51
75
|
const layoutExisted = fs.existsSync(layoutAbs);
|
|
52
76
|
const before = layoutExisted ? fs.readFileSync(layoutAbs, 'utf-8') : defaultSvelteLayout();
|
|
53
|
-
const after = patchSvelteLayout(before);
|
|
54
|
-
|
|
77
|
+
const after = patchSvelteLayout(before, { rev: svelteAdapterRev(token) });
|
|
78
|
+
writeProjectFileAtomic(cwd, layoutRel, after);
|
|
55
79
|
|
|
56
80
|
return {
|
|
57
81
|
file: layoutRel,
|
|
@@ -66,24 +90,24 @@ export function removeSvelteKitLiveAdapter({ cwd = process.cwd(), config = null
|
|
|
66
90
|
const detected = detectSvelteKitProject(cwd, config);
|
|
67
91
|
if (!detected) return null;
|
|
68
92
|
|
|
69
|
-
const layoutAbs =
|
|
93
|
+
const layoutAbs = resolveProjectPath(cwd, detected.layoutFile, { kind: 'file' });
|
|
70
94
|
let removed = false;
|
|
71
95
|
if (fs.existsSync(layoutAbs)) {
|
|
72
96
|
const before = fs.readFileSync(layoutAbs, 'utf-8');
|
|
73
97
|
const after = unpatchSvelteLayout(before);
|
|
74
98
|
if (after !== before) {
|
|
75
|
-
|
|
99
|
+
writeProjectFileAtomic(cwd, detected.layoutFile, after);
|
|
76
100
|
removed = true;
|
|
77
101
|
}
|
|
78
102
|
}
|
|
79
103
|
|
|
80
|
-
const rootAbs =
|
|
81
|
-
if (fs.existsSync(rootAbs)) {
|
|
104
|
+
const rootAbs = resolveProjectPath(cwd, SVELTE_LIVE_ROOT_COMPONENT, { kind: 'file' });
|
|
105
|
+
if (fs.existsSync(rootAbs) && fs.readFileSync(rootAbs, 'utf-8').includes('impeccable-live-root')) {
|
|
82
106
|
fs.rmSync(rootAbs, { force: true });
|
|
83
107
|
removed = true;
|
|
84
108
|
}
|
|
85
109
|
|
|
86
|
-
pruneEmptyDir(path.dirname(rootAbs),
|
|
110
|
+
pruneEmptyDir(path.dirname(rootAbs), resolveProjectPath(cwd, 'src', { kind: 'directory' }));
|
|
87
111
|
|
|
88
112
|
return {
|
|
89
113
|
file: detected.layoutFile,
|
|
@@ -94,15 +118,27 @@ export function removeSvelteKitLiveAdapter({ cwd = process.cwd(), config = null
|
|
|
94
118
|
};
|
|
95
119
|
}
|
|
96
120
|
|
|
97
|
-
export function patchSvelteLayout(content) {
|
|
121
|
+
export function patchSvelteLayout(content, { rev = null } = {}) {
|
|
98
122
|
let out = String(content || '');
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
123
|
+
const importLine = svelteRootImportLine(rev);
|
|
124
|
+
if (!out.includes(importLine)) {
|
|
125
|
+
// An import at an older revision is replaced in place, keeping its
|
|
126
|
+
// indentation; only a layout with no impeccable import gets an insert.
|
|
127
|
+
let replaced = false;
|
|
128
|
+
out = out.replace(SVELTE_ROOT_IMPORT_LINE_RE, (line) => {
|
|
129
|
+
if (replaced) return '';
|
|
130
|
+
replaced = true;
|
|
131
|
+
const indent = (line.match(/^[ \t]*/) || [''])[0];
|
|
132
|
+
return indent + importLine + '\n';
|
|
133
|
+
});
|
|
134
|
+
if (!replaced) {
|
|
135
|
+
const scriptMatch = out.match(/<script(?:\s[^>]*)?>/i);
|
|
136
|
+
if (scriptMatch) {
|
|
137
|
+
const insertAt = scriptMatch.index + scriptMatch[0].length;
|
|
138
|
+
out = out.slice(0, insertAt) + '\n ' + importLine + out.slice(insertAt);
|
|
139
|
+
} else {
|
|
140
|
+
out = `<script>\n ${importLine}\n</script>\n\n` + out;
|
|
141
|
+
}
|
|
106
142
|
}
|
|
107
143
|
}
|
|
108
144
|
|
|
@@ -131,21 +167,17 @@ export function unpatchSvelteLayout(content) {
|
|
|
131
167
|
'g',
|
|
132
168
|
);
|
|
133
169
|
out = out.replace(blockRe, '$1');
|
|
134
|
-
out = out.replace(
|
|
135
|
-
out = out.replace(/<script>\s*<\/script
|
|
170
|
+
out = out.replace(SVELTE_ROOT_IMPORT_LINE_RE, '');
|
|
171
|
+
out = out.replace(/<script>\s*<\/script>[ \t]*\r?\n?/g, '');
|
|
136
172
|
return out.replace(/\n{3,}/g, '\n\n');
|
|
137
173
|
}
|
|
138
174
|
|
|
139
175
|
export function ensureSvelteLiveRootComponent(cwd, port, token) {
|
|
140
|
-
|
|
141
|
-
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
142
|
-
fs.writeFileSync(file, buildSvelteLiveRootComponent(port, token), 'utf-8');
|
|
143
|
-
return file;
|
|
176
|
+
return writeProjectFileAtomic(cwd, SVELTE_LIVE_ROOT_COMPONENT, buildSvelteLiveRootComponent(port, token));
|
|
144
177
|
}
|
|
145
178
|
|
|
146
179
|
export function buildSvelteLiveRootComponent(port, token) {
|
|
147
|
-
const liveUrl =
|
|
148
|
-
+ (token ? '?token=' + encodeURIComponent(token) : '');
|
|
180
|
+
const liveUrl = buildLiveScriptSrc(port, token);
|
|
149
181
|
return `<script>
|
|
150
182
|
import { onMount } from 'svelte';
|
|
151
183
|
|
|
@@ -193,6 +225,11 @@ export function buildSvelteLiveRootComponent(port, token) {
|
|
|
193
225
|
script.src = LIVE_URL;
|
|
194
226
|
script.async = true;
|
|
195
227
|
script.dataset.impeccableLiveScript = 'true';
|
|
228
|
+
script.onerror = () => console.error(
|
|
229
|
+
'[impeccable] live.js failed to load from ' + LIVE_URL
|
|
230
|
+
+ ' (helper down, or the token rotated while a stale adapter module was cached).'
|
|
231
|
+
+ ' Re-run the live boot, then reload this page.'
|
|
232
|
+
);
|
|
196
233
|
document.head.appendChild(script);
|
|
197
234
|
|
|
198
235
|
return () => {
|
|
@@ -209,11 +246,12 @@ export function buildSvelteLiveRootComponent(port, token) {
|
|
|
209
246
|
function findSvelteKitAppHtml(cwd, config) {
|
|
210
247
|
const files = Array.isArray(config?.files) ? config.files : ['src/app.html'];
|
|
211
248
|
for (const rel of files) {
|
|
212
|
-
if (rel.includes('*')) continue;
|
|
249
|
+
if (typeof rel !== 'string' || rel.includes('*')) continue;
|
|
213
250
|
const normalized = rel.split(path.sep).join('/');
|
|
214
251
|
if (!normalized.endsWith('app.html')) continue;
|
|
215
|
-
|
|
216
|
-
|
|
252
|
+
try {
|
|
253
|
+
if (fs.existsSync(resolveProjectPath(cwd, normalized, { kind: 'file' }))) return normalized;
|
|
254
|
+
} catch { /* unsafe configured paths are not SvelteKit signals */ }
|
|
217
255
|
}
|
|
218
256
|
const fallback = 'src/app.html';
|
|
219
257
|
return fs.existsSync(path.join(cwd, fallback)) ? fallback : null;
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
import fs from 'node:fs';
|
|
21
21
|
import path from 'node:path';
|
|
22
|
-
import { buildLiveScriptSrc } from '
|
|
22
|
+
import { buildLiveScriptSrc } from './frameworks/script-src.mjs';
|
|
23
|
+
import { resolveProjectPath, writeProjectFileAtomic } from './frameworks/detect-utils.mjs';
|
|
23
24
|
|
|
24
25
|
export const TANSTACK_MARKER_OPEN = '{/* impeccable-live-tanstack-start */}';
|
|
25
26
|
export const TANSTACK_MARKER_CLOSE = '{/* impeccable-live-tanstack-end */}';
|
|
@@ -60,8 +61,8 @@ export function applyTanStackLiveAdapter({ cwd = process.cwd(), port, token, pro
|
|
|
60
61
|
throw new Error('TanStack Start live adapter requires a numeric port');
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
// Write the managed mount component.
|
|
64
|
-
const componentAbs =
|
|
64
|
+
// Write the managed mount component inside the canonical project root.
|
|
65
|
+
const componentAbs = resolveProjectPath(cwd, project.componentFile);
|
|
65
66
|
const componentBody = buildTanStackLiveRootComponent(Number(port), token);
|
|
66
67
|
const componentExisted = fs.existsSync(componentAbs);
|
|
67
68
|
if (componentExisted && !isManagedComponent(fs.readFileSync(componentAbs, 'utf-8'))) {
|
|
@@ -72,15 +73,14 @@ export function applyTanStackLiveAdapter({ cwd = process.cwd(), port, token, pro
|
|
|
72
73
|
hint: `${project.componentFile} already exists and is not managed by Impeccable Live`,
|
|
73
74
|
};
|
|
74
75
|
}
|
|
75
|
-
|
|
76
|
-
fs.writeFileSync(componentAbs, componentBody, 'utf-8');
|
|
76
|
+
writeProjectFileAtomic(cwd, project.componentFile, componentBody);
|
|
77
77
|
|
|
78
78
|
// Patch the root document to import + render the mount component.
|
|
79
|
-
const rootAbs =
|
|
79
|
+
const rootAbs = resolveProjectPath(cwd, project.rootRoute, { mustExist: true, kind: 'file' });
|
|
80
80
|
const before = fs.readFileSync(rootAbs, 'utf-8');
|
|
81
81
|
const after = patchTanStackRoot(before, project.componentImport);
|
|
82
82
|
const changed = after !== before;
|
|
83
|
-
if (changed)
|
|
83
|
+
if (changed) writeProjectFileAtomic(cwd, project.rootRoute, after);
|
|
84
84
|
|
|
85
85
|
return {
|
|
86
86
|
file: project.rootRoute,
|
|
@@ -95,22 +95,22 @@ export function removeTanStackLiveAdapter({ cwd = process.cwd(), project = detec
|
|
|
95
95
|
if (!project) return { error: 'tanstack_not_detected' };
|
|
96
96
|
let removed = false;
|
|
97
97
|
|
|
98
|
-
const rootAbs =
|
|
98
|
+
const rootAbs = resolveProjectPath(cwd, project.rootRoute, { kind: 'file' });
|
|
99
99
|
if (fs.existsSync(rootAbs)) {
|
|
100
100
|
const before = fs.readFileSync(rootAbs, 'utf-8');
|
|
101
101
|
const after = unpatchTanStackRoot(before);
|
|
102
102
|
if (after !== before) {
|
|
103
|
-
|
|
103
|
+
writeProjectFileAtomic(cwd, project.rootRoute, after);
|
|
104
104
|
removed = true;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
const componentAbs =
|
|
109
|
-
if (fs.existsSync(componentAbs)) {
|
|
108
|
+
const componentAbs = resolveProjectPath(cwd, project.componentFile, { kind: 'file' });
|
|
109
|
+
if (fs.existsSync(componentAbs) && isManagedComponent(fs.readFileSync(componentAbs, 'utf-8'))) {
|
|
110
110
|
fs.rmSync(componentAbs, { force: true });
|
|
111
111
|
removed = true;
|
|
112
112
|
}
|
|
113
|
-
pruneEmptyDir(path.dirname(componentAbs),
|
|
113
|
+
pruneEmptyDir(path.dirname(componentAbs), resolveProjectPath(cwd, 'src', { kind: 'directory' }));
|
|
114
114
|
|
|
115
115
|
return {
|
|
116
116
|
file: project.rootRoute,
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical inventory of the Live overlay's UI surfaces: one entry per piece of
|
|
3
|
+
* chrome Live mounts on the user's page, with the element ids that make it up.
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth, consumed by:
|
|
6
|
+
* - skill/scripts/live/browser-script-parts.mjs — serializes this into
|
|
7
|
+
* window.__IMPECCABLE_LIVE_UI_SURFACES__ in the /live.js prelude.
|
|
8
|
+
* - skill/scripts/live-browser.js — publishes it on
|
|
9
|
+
* window.__IMPECCABLE_LIVE_CHROME_CORE__ for adapters and E2E probes. That
|
|
10
|
+
* file is served raw and injected as a classic <script>, so it cannot
|
|
11
|
+
* import this module at runtime; it reads the injected global instead, the
|
|
12
|
+
* same path live/vocabulary.mjs already takes for the command palette.
|
|
13
|
+
* - the private impeccable-site repo — site/components/LiveUiGallery.astro
|
|
14
|
+
* and tests/live-ui-lab.test.mjs import LIVE_UI_SURFACES at build time and
|
|
15
|
+
* fail the site build when the Live UI lab has no snapshot for a surface
|
|
16
|
+
* defined here. That guard only guards if it reads this list rather than a
|
|
17
|
+
* copy the site keeps, so this module must stay importable from Node.
|
|
18
|
+
* Renaming a key or the module is a breaking change for that build; the
|
|
19
|
+
* list was briefly inlined into live-browser.js and the site had to parse
|
|
20
|
+
* it back out with a regex.
|
|
21
|
+
*
|
|
22
|
+
* Add a surface here and both the browser bundle and the site lab follow.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/** Id prefix every Live chrome element carries. Mirrored by PREFIX in live-browser.js. */
|
|
26
|
+
export const LIVE_UI_PREFIX = 'impeccable-live';
|
|
27
|
+
|
|
28
|
+
const id = (suffix) => `${LIVE_UI_PREFIX}-${suffix}`;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The mount contract every Live chrome adapter (DOM, Svelte, ...) satisfies.
|
|
32
|
+
* Published alongside the surfaces on __IMPECCABLE_LIVE_CHROME_CORE__.
|
|
33
|
+
*/
|
|
34
|
+
export const LIVE_CHROME_MOUNT_CONTRACT = Object.freeze(['root', 'transport', 'state', 'actions']);
|
|
35
|
+
|
|
36
|
+
export const LIVE_UI_SURFACES = Object.freeze([
|
|
37
|
+
{
|
|
38
|
+
key: 'global-bottom-bar',
|
|
39
|
+
ids: [
|
|
40
|
+
id('global-bar'), id('global-bar-brand'), id('pick-toggle'), id('insert-toggle'),
|
|
41
|
+
id('detect-toggle'), id('detect-badge'), id('design-toggle'), id('page-chat'),
|
|
42
|
+
id('page-chat-input'), id('page-chat-voice'), id('page-chat-send'),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{ key: 'pending-copy-edit-dock', ids: [id('pending-dock')] },
|
|
46
|
+
{
|
|
47
|
+
key: 'element-selection-chrome',
|
|
48
|
+
ids: [
|
|
49
|
+
id('highlight'), id('tooltip'), id('bar'), id('selection-pill'), id('input'),
|
|
50
|
+
id('configure-voice'), id('configure-bar-tooltip'),
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
{ key: 'action-picker', ids: [id('picker')] },
|
|
54
|
+
{ key: 'edit-chrome', ids: [id('edit-badge')] },
|
|
55
|
+
{ key: 'generating-row', ids: [id('bar'), id('shader')] },
|
|
56
|
+
{ key: 'variant-cycling-row', ids: [id('bar'), id('params-panel')] },
|
|
57
|
+
{ key: 'variant-params-panel', ids: [id('params-panel')] },
|
|
58
|
+
{ key: 'saving-confirmed-rows', ids: [id('bar')] },
|
|
59
|
+
{
|
|
60
|
+
key: 'insert-mode-chrome',
|
|
61
|
+
ids: [
|
|
62
|
+
id('insert-line'), id('insert-placeholder'), id('placeholder-resize'), id('insert-input'),
|
|
63
|
+
id('insert-voice'), id('insert-create'), id('insert-create-tooltip'),
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{ key: 'annotation-chrome', ids: [id('annot'), id('annot-svg'), id('annot-pins'), id('annot-clear')] },
|
|
67
|
+
{ key: 'design-system-panel', ids: [id('design-host')] },
|
|
68
|
+
{ key: 'toasts-and-errors', ids: [id('toast'), id('mount-error')] },
|
|
69
|
+
{ key: 'css-isolation-boundary', ids: [id('root')] },
|
|
70
|
+
].map((surface) => Object.freeze({ ...surface, ids: Object.freeze(surface.ids) })));
|
|
71
|
+
|
|
72
|
+
/** Every id any surface owns, de-duplicated, in surface order. */
|
|
73
|
+
export const LIVE_UI_COMPONENT_IDS = Object.freeze([
|
|
74
|
+
...new Set(LIVE_UI_SURFACES.flatMap((surface) => surface.ids)),
|
|
75
|
+
]);
|
|
@@ -34,3 +34,138 @@ export const LIVE_COMMANDS = [
|
|
|
34
34
|
|
|
35
35
|
// Action values accepted by the live event protocol, in palette order.
|
|
36
36
|
export const VISUAL_ACTIONS = LIVE_COMMANDS.map((c) => c.value);
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* ---------------------------------------------------------------------------
|
|
40
|
+
* Protocol vocabulary
|
|
41
|
+
* ---------------------------------------------------------------------------
|
|
42
|
+
* The enums below are the wire contract between the browser overlay, the live
|
|
43
|
+
* helper server, and the durable session journal. They live here rather than in
|
|
44
|
+
* the modules that use them so a value cannot be added to the validator without
|
|
45
|
+
* the store and the server seeing it too.
|
|
46
|
+
*
|
|
47
|
+
* live-browser.js still cannot import this file (it is served raw and injected
|
|
48
|
+
* as an IIFE), so its local phase table repeats the agent-phase names. Anything
|
|
49
|
+
* the server can broadcast must appear in AGENT_PHASES here first.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Phases the live server broadcasts as `agent_phase`, in lifecycle order.
|
|
54
|
+
* Every one of these is emitted by `recordAgentPhase()` in live-server.mjs;
|
|
55
|
+
* the validator rejects anything else, so a typo in a phase name fails loudly
|
|
56
|
+
* instead of quietly ranking as an unknown phase in the browser's progress bar.
|
|
57
|
+
*/
|
|
58
|
+
export const AGENT_PHASES = Object.freeze([
|
|
59
|
+
'picked_up',
|
|
60
|
+
'scaffolding',
|
|
61
|
+
'source_ready',
|
|
62
|
+
'scaffold_fallback',
|
|
63
|
+
'generation_ready',
|
|
64
|
+
'first_reviewable',
|
|
65
|
+
'second_reviewable',
|
|
66
|
+
'all_variants_ready',
|
|
67
|
+
]);
|
|
68
|
+
|
|
69
|
+
/** Event types the helper server accepts from the browser over POST /events. */
|
|
70
|
+
export const CLIENT_EVENT_TYPES = Object.freeze([
|
|
71
|
+
'generate',
|
|
72
|
+
'accept',
|
|
73
|
+
'discard',
|
|
74
|
+
'checkpoint',
|
|
75
|
+
'agent_phase',
|
|
76
|
+
'variant_mounted',
|
|
77
|
+
'variant_mount_failed',
|
|
78
|
+
'exit',
|
|
79
|
+
'prefetch',
|
|
80
|
+
'manual_edits',
|
|
81
|
+
'steer',
|
|
82
|
+
'carbonize_cleanup',
|
|
83
|
+
]);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Event types the durable journal applies. A superset of CLIENT_EVENT_TYPES:
|
|
87
|
+
* the agent-side helpers (live-poll, live-complete) and the server itself
|
|
88
|
+
* append the rest. An event type missing here lands as `unknown_event_type`
|
|
89
|
+
* in the snapshot diagnostics.
|
|
90
|
+
*/
|
|
91
|
+
export const JOURNAL_EVENT_TYPES = Object.freeze([
|
|
92
|
+
'generate',
|
|
93
|
+
'variant_plan',
|
|
94
|
+
'detector_waivers',
|
|
95
|
+
'agent_phase',
|
|
96
|
+
'variants_ready',
|
|
97
|
+
'agent_done',
|
|
98
|
+
'variant_mounted',
|
|
99
|
+
'variant_mount_failed',
|
|
100
|
+
'checkpoint',
|
|
101
|
+
'accept',
|
|
102
|
+
'accept_intent',
|
|
103
|
+
'manual_edit_apply',
|
|
104
|
+
'steer',
|
|
105
|
+
'steer_done',
|
|
106
|
+
'carbonize_cleanup',
|
|
107
|
+
'discard',
|
|
108
|
+
'discarded',
|
|
109
|
+
'complete',
|
|
110
|
+
'agent_error',
|
|
111
|
+
]);
|
|
112
|
+
|
|
113
|
+
/** Phases the session store assigns to a snapshot. */
|
|
114
|
+
export const SESSION_PHASES = Object.freeze([
|
|
115
|
+
'new',
|
|
116
|
+
'generate_requested',
|
|
117
|
+
'variants_ready',
|
|
118
|
+
'carbonize_required',
|
|
119
|
+
'carbonize_cleanup_requested',
|
|
120
|
+
'manual_edit_apply_requested',
|
|
121
|
+
'steer_requested',
|
|
122
|
+
'steer_done',
|
|
123
|
+
'accept_requested',
|
|
124
|
+
'discard_requested',
|
|
125
|
+
'discarded',
|
|
126
|
+
'completed',
|
|
127
|
+
'agent_error',
|
|
128
|
+
]);
|
|
129
|
+
|
|
130
|
+
/** Phases that retire a session from the active list. */
|
|
131
|
+
export const COMPLETED_SESSION_PHASES = Object.freeze(['completed', 'discarded']);
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Phases after which a late generation write is a ghost from a canceled cycle.
|
|
135
|
+
* The store journals such an event as a diagnostic instead of applying it.
|
|
136
|
+
*/
|
|
137
|
+
export const GENERATION_FENCED_SESSION_PHASES = Object.freeze([
|
|
138
|
+
'accept_requested',
|
|
139
|
+
'discard_requested',
|
|
140
|
+
'carbonize_required',
|
|
141
|
+
'completed',
|
|
142
|
+
'discarded',
|
|
143
|
+
]);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* `reason` values carried on checkpoint events. Not validated (an unknown
|
|
147
|
+
* reason is journaled, never rejected) because the reason is diagnostic
|
|
148
|
+
* breadcrumb, not control flow. Two exceptions drive behavior and are split
|
|
149
|
+
* out below.
|
|
150
|
+
*/
|
|
151
|
+
export const CHECKPOINT_REASONS = Object.freeze([
|
|
152
|
+
'generate_started',
|
|
153
|
+
'variants_progress',
|
|
154
|
+
'variants_ready',
|
|
155
|
+
'browser_resumed',
|
|
156
|
+
'browser_resumed_svelte_component',
|
|
157
|
+
'param_changed',
|
|
158
|
+
'variant_anchor_missing',
|
|
159
|
+
'component_preview_anchor_missing',
|
|
160
|
+
'steer_input_focused',
|
|
161
|
+
'steer_submitted',
|
|
162
|
+
'steer_send_failed',
|
|
163
|
+
'steer_done',
|
|
164
|
+
'steer_error',
|
|
165
|
+
]);
|
|
166
|
+
|
|
167
|
+
/** Checkpoint reasons the server reads as variant-publication progress. */
|
|
168
|
+
export const VARIANT_PROGRESS_CHECKPOINT_REASONS = Object.freeze([
|
|
169
|
+
'variants_progress',
|
|
170
|
+
'variants_ready',
|
|
171
|
+
]);
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
inlineSvelteComponentAccept,
|
|
28
28
|
removeSvelteComponentSession,
|
|
29
29
|
} from './live/svelte-component.mjs';
|
|
30
|
+
import { enterLiveRoot } from './live/roots.mjs';
|
|
30
31
|
|
|
31
32
|
const ACCEPT_LOCK_WAIT_MS = 1_000;
|
|
32
33
|
// Mirrors VARIANT_ID_PATTERN in live/event-validation.mjs, which gates the same
|
|
@@ -169,51 +170,35 @@ Output (JSON):
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
if (svelteComponentManifest) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
{
|
|
173
|
+
const { sourceFile, componentDir } = svelteComponentManifest;
|
|
174
|
+
const resultContext = {
|
|
175
|
+
file: sourceFile,
|
|
176
|
+
...(isDiscard ? { carbonize: false } : { sourceFile }),
|
|
177
|
+
previewMode: 'svelte-component',
|
|
178
|
+
componentDir,
|
|
179
|
+
};
|
|
180
|
+
const runOperation = isDiscard
|
|
181
|
+
? () => {
|
|
182
|
+
removeSvelteComponentSession(id, process.cwd());
|
|
183
|
+
return { handled: true, ...resultContext };
|
|
184
|
+
}
|
|
185
|
+
: () => inlineSvelteComponentAccept(
|
|
186
|
+
svelteComponentManifest,
|
|
187
|
+
variantNum,
|
|
188
|
+
paramValues,
|
|
189
|
+
process.cwd(),
|
|
183
190
|
);
|
|
184
|
-
} catch (err) {
|
|
185
|
-
result = operationFailure(err);
|
|
186
|
-
}
|
|
187
|
-
emitResult({
|
|
188
|
-
...result,
|
|
189
|
-
file: svelteComponentManifest.sourceFile,
|
|
190
|
-
carbonize: false,
|
|
191
|
-
previewMode: 'svelte-component',
|
|
192
|
-
componentDir: svelteComponentManifest.componentDir,
|
|
193
|
-
});
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
191
|
|
|
197
192
|
let result;
|
|
198
193
|
try {
|
|
199
194
|
result = withSourceLockSync(
|
|
200
|
-
path.resolve(process.cwd(),
|
|
201
|
-
'
|
|
202
|
-
|
|
203
|
-
svelteComponentManifest,
|
|
204
|
-
variantNum,
|
|
205
|
-
paramValues,
|
|
206
|
-
process.cwd(),
|
|
207
|
-
),
|
|
195
|
+
path.resolve(process.cwd(), sourceFile),
|
|
196
|
+
requestedOperation + ':' + id,
|
|
197
|
+
runOperation,
|
|
208
198
|
{ waitMs: ACCEPT_LOCK_WAIT_MS },
|
|
209
199
|
);
|
|
210
200
|
} catch (err) {
|
|
211
|
-
result = operationFailure(err,
|
|
212
|
-
file: svelteComponentManifest.sourceFile,
|
|
213
|
-
sourceFile: svelteComponentManifest.sourceFile,
|
|
214
|
-
previewMode: 'svelte-component',
|
|
215
|
-
componentDir: svelteComponentManifest.componentDir,
|
|
216
|
-
});
|
|
201
|
+
result = operationFailure(err, resultContext);
|
|
217
202
|
}
|
|
218
203
|
if (result.carbonize) {
|
|
219
204
|
result.todo = 'REQUIRED before next poll: carbonize cleanup in ' + result.file + '. See reference/live.md "Required after accept".';
|
|
@@ -969,6 +954,7 @@ function argVal(args, flag) {
|
|
|
969
954
|
// Auto-execute when run directly
|
|
970
955
|
const _running = process.argv[1];
|
|
971
956
|
if (_running?.endsWith('live-accept.mjs') || _running?.endsWith('live-accept.mjs/')) {
|
|
957
|
+
enterLiveRoot();
|
|
972
958
|
acceptCli();
|
|
973
959
|
}
|
|
974
960
|
|