@nac3/forge-cli 0.2.0-alpha.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -2
- package/dist/a11y/helpers.d.ts +88 -0
- package/dist/a11y/helpers.d.ts.map +1 -0
- package/dist/a11y/helpers.js +109 -0
- package/dist/a11y/helpers.js.map +1 -0
- package/dist/agents/bridge.d.ts +69 -0
- package/dist/agents/bridge.d.ts.map +1 -0
- package/dist/agents/bridge.js +322 -0
- package/dist/agents/bridge.js.map +1 -0
- package/dist/agents/cli_real.d.ts +38 -0
- package/dist/agents/cli_real.d.ts.map +1 -0
- package/dist/agents/cli_real.js +46 -0
- package/dist/agents/cli_real.js.map +1 -0
- package/dist/agents/config_resolver.d.ts +16 -0
- package/dist/agents/config_resolver.d.ts.map +1 -0
- package/dist/agents/config_resolver.js +133 -0
- package/dist/agents/config_resolver.js.map +1 -0
- package/dist/agents/config_schema.d.ts +42 -0
- package/dist/agents/config_schema.d.ts.map +1 -0
- package/dist/agents/config_schema.js +220 -0
- package/dist/agents/config_schema.js.map +1 -0
- package/dist/agents/defaults.d.ts +21 -0
- package/dist/agents/defaults.d.ts.map +1 -0
- package/dist/agents/defaults.js +56 -0
- package/dist/agents/defaults.js.map +1 -0
- package/dist/agents/delegate.d.ts +36 -0
- package/dist/agents/delegate.d.ts.map +1 -0
- package/dist/agents/delegate.js +68 -0
- package/dist/agents/delegate.js.map +1 -0
- package/dist/agents/iterative_step.d.ts +95 -0
- package/dist/agents/iterative_step.d.ts.map +1 -0
- package/dist/agents/iterative_step.js +249 -0
- package/dist/agents/iterative_step.js.map +1 -0
- package/dist/agents/llm_step.d.ts +50 -0
- package/dist/agents/llm_step.d.ts.map +1 -0
- package/dist/agents/llm_step.js +28 -0
- package/dist/agents/llm_step.js.map +1 -0
- package/dist/agents/real_step_factory.d.ts +95 -0
- package/dist/agents/real_step_factory.d.ts.map +1 -0
- package/dist/agents/real_step_factory.js +51 -0
- package/dist/agents/real_step_factory.js.map +1 -0
- package/dist/agents/runner.d.ts +116 -0
- package/dist/agents/runner.d.ts.map +1 -0
- package/dist/agents/runner.js +221 -0
- package/dist/agents/runner.js.map +1 -0
- package/dist/agents/runtime.d.ts +115 -0
- package/dist/agents/runtime.d.ts.map +1 -0
- package/dist/agents/runtime.js +429 -0
- package/dist/agents/runtime.js.map +1 -0
- package/dist/agents/store.d.ts +33 -0
- package/dist/agents/store.d.ts.map +1 -0
- package/dist/agents/store.js +210 -0
- package/dist/agents/store.js.map +1 -0
- package/dist/agents/system_prompt.d.ts +36 -0
- package/dist/agents/system_prompt.d.ts.map +1 -0
- package/dist/agents/system_prompt.js +102 -0
- package/dist/agents/system_prompt.js.map +1 -0
- package/dist/agents/types.d.ts +123 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +39 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/bin/yf.d.ts.map +1 -1
- package/dist/bin/yf.js +119 -2
- package/dist/bin/yf.js.map +1 -1
- package/dist/chat/claude.d.ts +102 -1
- package/dist/chat/claude.d.ts.map +1 -1
- package/dist/chat/claude.js +215 -40
- package/dist/chat/claude.js.map +1 -1
- package/dist/chat/claude_cli.d.ts +155 -0
- package/dist/chat/claude_cli.d.ts.map +1 -0
- package/dist/chat/claude_cli.js +679 -0
- package/dist/chat/claude_cli.js.map +1 -0
- package/dist/chat/completion_hallucination_detector.d.ts +51 -0
- package/dist/chat/completion_hallucination_detector.d.ts.map +1 -0
- package/dist/chat/completion_hallucination_detector.js +131 -0
- package/dist/chat/completion_hallucination_detector.js.map +1 -0
- package/dist/chat/doctrine_digest.d.ts +31 -0
- package/dist/chat/doctrine_digest.d.ts.map +1 -0
- package/dist/chat/doctrine_digest.js +121 -0
- package/dist/chat/doctrine_digest.js.map +1 -0
- package/dist/chat/graph_auto_ingest.d.ts +46 -0
- package/dist/chat/graph_auto_ingest.d.ts.map +1 -0
- package/dist/chat/graph_auto_ingest.js +177 -0
- package/dist/chat/graph_auto_ingest.js.map +1 -0
- package/dist/chat/graph_component_watcher.d.ts +34 -0
- package/dist/chat/graph_component_watcher.d.ts.map +1 -0
- package/dist/chat/graph_component_watcher.js +225 -0
- package/dist/chat/graph_component_watcher.js.map +1 -0
- package/dist/chat/graph_snapshot.d.ts +38 -0
- package/dist/chat/graph_snapshot.d.ts.map +1 -0
- package/dist/chat/graph_snapshot.js +159 -0
- package/dist/chat/graph_snapshot.js.map +1 -0
- package/dist/chat/ingest_session.d.ts +24 -4
- package/dist/chat/ingest_session.d.ts.map +1 -1
- package/dist/chat/ingest_session.js +143 -4
- package/dist/chat/ingest_session.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +10483 -1455
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/panel_queue.d.ts +43 -0
- package/dist/chat/panel_queue.d.ts.map +1 -0
- package/dist/chat/panel_queue.js +46 -0
- package/dist/chat/panel_queue.js.map +1 -0
- package/dist/chat/project_context_inject.d.ts +10 -0
- package/dist/chat/project_context_inject.d.ts.map +1 -0
- package/dist/chat/project_context_inject.js +119 -0
- package/dist/chat/project_context_inject.js.map +1 -0
- package/dist/chat/project_slug.d.ts +17 -0
- package/dist/chat/project_slug.d.ts.map +1 -0
- package/dist/chat/project_slug.js +103 -0
- package/dist/chat/project_slug.js.map +1 -0
- package/dist/chat/refusal_detector.d.ts +14 -0
- package/dist/chat/refusal_detector.d.ts.map +1 -0
- package/dist/chat/refusal_detector.js +139 -0
- package/dist/chat/refusal_detector.js.map +1 -0
- package/dist/chat/semantic_graph_ingest.d.ts +39 -0
- package/dist/chat/semantic_graph_ingest.d.ts.map +1 -0
- package/dist/chat/semantic_graph_ingest.js +90 -0
- package/dist/chat/semantic_graph_ingest.js.map +1 -0
- package/dist/chat/semantic_graph_inject.d.ts +31 -0
- package/dist/chat/semantic_graph_inject.d.ts.map +1 -0
- package/dist/chat/semantic_graph_inject.js +63 -0
- package/dist/chat/semantic_graph_inject.js.map +1 -0
- package/dist/chat/server.d.ts +99 -2
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +4613 -452
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/session_projects.d.ts +31 -0
- package/dist/chat/session_projects.d.ts.map +1 -0
- package/dist/chat/session_projects.js +36 -0
- package/dist/chat/session_projects.js.map +1 -0
- package/dist/chat/session_store.d.ts +32 -0
- package/dist/chat/session_store.d.ts.map +1 -0
- package/dist/chat/session_store.js +58 -0
- package/dist/chat/session_store.js.map +1 -0
- package/dist/chat/spec_extract.d.ts +1 -2
- package/dist/chat/spec_extract.d.ts.map +1 -1
- package/dist/chat/spec_extract.js +41 -56
- package/dist/chat/spec_extract.js.map +1 -1
- package/dist/chat/spec_plan.d.ts +1 -2
- package/dist/chat/spec_plan.d.ts.map +1 -1
- package/dist/chat/spec_plan.js +36 -57
- package/dist/chat/spec_plan.js.map +1 -1
- package/dist/chat/tooling_section.d.ts +11 -0
- package/dist/chat/tooling_section.d.ts.map +1 -0
- package/dist/chat/tooling_section.js +70 -0
- package/dist/chat/tooling_section.js.map +1 -0
- package/dist/chat/tools/app_backend_dispatch.d.ts +39 -0
- package/dist/chat/tools/app_backend_dispatch.d.ts.map +1 -0
- package/dist/chat/tools/app_backend_dispatch.js +282 -0
- package/dist/chat/tools/app_backend_dispatch.js.map +1 -0
- package/dist/chat/tools/fs_editor.d.ts +11 -0
- package/dist/chat/tools/fs_editor.d.ts.map +1 -0
- package/dist/chat/tools/fs_editor.js +212 -0
- package/dist/chat/tools/fs_editor.js.map +1 -0
- package/dist/chat/tools/git.d.ts +24 -0
- package/dist/chat/tools/git.d.ts.map +1 -1
- package/dist/chat/tools/git.js +78 -0
- package/dist/chat/tools/git.js.map +1 -1
- package/dist/chat/tools/graph.d.ts +43 -0
- package/dist/chat/tools/graph.d.ts.map +1 -0
- package/dist/chat/tools/graph.js +174 -0
- package/dist/chat/tools/graph.js.map +1 -0
- package/dist/chat/tools/keys.d.ts +9 -0
- package/dist/chat/tools/keys.d.ts.map +1 -0
- package/dist/chat/tools/keys.js +156 -0
- package/dist/chat/tools/keys.js.map +1 -0
- package/dist/chat/tools/misc_verbs.d.ts +36 -0
- package/dist/chat/tools/misc_verbs.d.ts.map +1 -0
- package/dist/chat/tools/misc_verbs.js +405 -0
- package/dist/chat/tools/misc_verbs.js.map +1 -0
- package/dist/chat/tools/nac3_invoke.d.ts +58 -0
- package/dist/chat/tools/nac3_invoke.d.ts.map +1 -0
- package/dist/chat/tools/nac3_invoke.js +896 -0
- package/dist/chat/tools/nac3_invoke.js.map +1 -0
- package/dist/chat/tools/pending.d.ts +69 -0
- package/dist/chat/tools/pending.d.ts.map +1 -0
- package/dist/chat/tools/pending.js +167 -0
- package/dist/chat/tools/pending.js.map +1 -0
- package/dist/chat/tools/pizarron.d.ts +40 -0
- package/dist/chat/tools/pizarron.d.ts.map +1 -0
- package/dist/chat/tools/pizarron.js +123 -0
- package/dist/chat/tools/pizarron.js.map +1 -0
- package/dist/chat/tools/project_lifecycle.d.ts +24 -0
- package/dist/chat/tools/project_lifecycle.d.ts.map +1 -0
- package/dist/chat/tools/project_lifecycle.js +212 -0
- package/dist/chat/tools/project_lifecycle.js.map +1 -0
- package/dist/chat/tools/reader.d.ts.map +1 -1
- package/dist/chat/tools/reader.js +144 -1
- package/dist/chat/tools/reader.js.map +1 -1
- package/dist/chat/tools/shell.d.ts +64 -0
- package/dist/chat/tools/shell.d.ts.map +1 -0
- package/dist/chat/tools/shell.js +292 -0
- package/dist/chat/tools/shell.js.map +1 -0
- package/dist/chat/tools/wiring.d.ts +28 -0
- package/dist/chat/tools/wiring.d.ts.map +1 -0
- package/dist/chat/tools/wiring.js +116 -0
- package/dist/chat/tools/wiring.js.map +1 -0
- package/dist/chat/tools/workflow.d.ts +75 -0
- package/dist/chat/tools/workflow.d.ts.map +1 -0
- package/dist/chat/tools/workflow.js +561 -0
- package/dist/chat/tools/workflow.js.map +1 -0
- package/dist/chat/tools.d.ts +42 -0
- package/dist/chat/tools.d.ts.map +1 -1
- package/dist/chat/tools.js +525 -16
- package/dist/chat/tools.js.map +1 -1
- package/dist/chat/turn_control.d.ts +42 -0
- package/dist/chat/turn_control.d.ts.map +1 -0
- package/dist/chat/turn_control.js +53 -0
- package/dist/chat/turn_control.js.map +1 -0
- package/dist/chat/wiring_inject.d.ts +18 -0
- package/dist/chat/wiring_inject.d.ts.map +1 -0
- package/dist/chat/wiring_inject.js +78 -0
- package/dist/chat/wiring_inject.js.map +1 -0
- package/dist/chat/workflow_inject.d.ts +52 -0
- package/dist/chat/workflow_inject.d.ts.map +1 -0
- package/dist/chat/workflow_inject.js +346 -0
- package/dist/chat/workflow_inject.js.map +1 -0
- package/dist/chat/yujin_splash.d.ts +27 -0
- package/dist/chat/yujin_splash.d.ts.map +1 -0
- package/dist/chat/yujin_splash.js +147 -0
- package/dist/chat/yujin_splash.js.map +1 -0
- package/dist/commands/agent.d.ts +33 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +281 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/approve.d.ts +32 -0
- package/dist/commands/approve.d.ts.map +1 -0
- package/dist/commands/approve.js +198 -0
- package/dist/commands/approve.js.map +1 -0
- package/dist/commands/block.d.ts +28 -0
- package/dist/commands/block.d.ts.map +1 -0
- package/dist/commands/block.js +189 -0
- package/dist/commands/block.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +35 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +205 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/brain.d.ts +17 -0
- package/dist/commands/brain.d.ts.map +1 -0
- package/dist/commands/brain.js +129 -0
- package/dist/commands/brain.js.map +1 -0
- package/dist/commands/chat.d.ts +10 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +265 -22
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/clarify.d.ts +30 -0
- package/dist/commands/clarify.d.ts.map +1 -0
- package/dist/commands/clarify.js +671 -0
- package/dist/commands/clarify.js.map +1 -0
- package/dist/commands/director.d.ts +37 -0
- package/dist/commands/director.d.ts.map +1 -0
- package/dist/commands/director.js +290 -0
- package/dist/commands/director.js.map +1 -0
- package/dist/commands/discover.d.ts +30 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +178 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/doctor.d.ts +18 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +120 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctrine.d.ts +24 -0
- package/dist/commands/doctrine.d.ts.map +1 -0
- package/dist/commands/doctrine.js +106 -0
- package/dist/commands/doctrine.js.map +1 -0
- package/dist/commands/doctrines.d.ts +21 -0
- package/dist/commands/doctrines.d.ts.map +1 -0
- package/dist/commands/doctrines.js +158 -0
- package/dist/commands/doctrines.js.map +1 -0
- package/dist/commands/graph.d.ts +29 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +362 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/keys_setup.d.ts +11 -11
- package/dist/commands/keys_setup.d.ts.map +1 -1
- package/dist/commands/keys_setup.js +149 -109
- package/dist/commands/keys_setup.js.map +1 -1
- package/dist/commands/legacy-audit.d.ts +34 -0
- package/dist/commands/legacy-audit.d.ts.map +1 -0
- package/dist/commands/legacy-audit.js +270 -0
- package/dist/commands/legacy-audit.js.map +1 -0
- package/dist/commands/lessons.d.ts +28 -0
- package/dist/commands/lessons.d.ts.map +1 -0
- package/dist/commands/lessons.js +309 -0
- package/dist/commands/lessons.js.map +1 -0
- package/dist/commands/license.d.ts.map +1 -1
- package/dist/commands/license.js +94 -15
- package/dist/commands/license.js.map +1 -1
- package/dist/commands/limits.d.ts +15 -0
- package/dist/commands/limits.d.ts.map +1 -0
- package/dist/commands/limits.js +51 -0
- package/dist/commands/limits.js.map +1 -0
- package/dist/commands/manifest-cli.d.ts +12 -0
- package/dist/commands/manifest-cli.d.ts.map +1 -0
- package/dist/commands/manifest-cli.js +42 -0
- package/dist/commands/manifest-cli.js.map +1 -0
- package/dist/commands/mcp.d.ts +24 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +219 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/mobile.d.ts +15 -0
- package/dist/commands/mobile.d.ts.map +1 -1
- package/dist/commands/mobile.js +50 -43
- package/dist/commands/mobile.js.map +1 -1
- package/dist/commands/nac3.d.ts +22 -0
- package/dist/commands/nac3.d.ts.map +1 -0
- package/dist/commands/nac3.js +125 -0
- package/dist/commands/nac3.js.map +1 -0
- package/dist/commands/onboard.d.ts +19 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +126 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/operate.d.ts +22 -0
- package/dist/commands/operate.d.ts.map +1 -0
- package/dist/commands/operate.js +523 -0
- package/dist/commands/operate.js.map +1 -0
- package/dist/commands/pending.d.ts +22 -0
- package/dist/commands/pending.d.ts.map +1 -0
- package/dist/commands/pending.js +365 -0
- package/dist/commands/pending.js.map +1 -0
- package/dist/commands/projects.js +25 -1
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/qa.d.ts +24 -0
- package/dist/commands/qa.d.ts.map +1 -0
- package/dist/commands/qa.js +349 -0
- package/dist/commands/qa.js.map +1 -0
- package/dist/commands/review-screens.js +28 -1
- package/dist/commands/review-screens.js.map +1 -1
- package/dist/commands/spec.d.ts +38 -0
- package/dist/commands/spec.d.ts.map +1 -0
- package/dist/commands/spec.js +256 -0
- package/dist/commands/spec.js.map +1 -0
- package/dist/commands/support.d.ts +22 -0
- package/dist/commands/support.d.ts.map +1 -0
- package/dist/commands/support.js +165 -0
- package/dist/commands/support.js.map +1 -0
- package/dist/commands/test_agent.d.ts +22 -0
- package/dist/commands/test_agent.d.ts.map +1 -0
- package/dist/commands/test_agent.js +100 -0
- package/dist/commands/test_agent.js.map +1 -0
- package/dist/commands/triage.d.ts +34 -0
- package/dist/commands/triage.d.ts.map +1 -0
- package/dist/commands/triage.js +228 -0
- package/dist/commands/triage.js.map +1 -0
- package/dist/commands/vault-inventory.d.ts +30 -0
- package/dist/commands/vault-inventory.d.ts.map +1 -0
- package/dist/commands/vault-inventory.js +222 -0
- package/dist/commands/vault-inventory.js.map +1 -0
- package/dist/commands/vault.d.ts.map +1 -1
- package/dist/commands/vault.js +5 -0
- package/dist/commands/vault.js.map +1 -1
- package/dist/commands/voice.d.ts.map +1 -1
- package/dist/commands/voice.js +47 -4
- package/dist/commands/voice.js.map +1 -1
- package/dist/commands/wiring.d.ts +19 -0
- package/dist/commands/wiring.d.ts.map +1 -0
- package/dist/commands/wiring.js +135 -0
- package/dist/commands/wiring.js.map +1 -0
- package/dist/commands/workflow-coverage.d.ts +30 -0
- package/dist/commands/workflow-coverage.d.ts.map +1 -0
- package/dist/commands/workflow-coverage.js +138 -0
- package/dist/commands/workflow-coverage.js.map +1 -0
- package/dist/commands/workflow.d.ts +18 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +253 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/core/ansi_strip.d.ts +39 -0
- package/dist/core/ansi_strip.d.ts.map +1 -0
- package/dist/core/ansi_strip.js +71 -0
- package/dist/core/ansi_strip.js.map +1 -0
- package/dist/core/atomic_write.d.ts +17 -0
- package/dist/core/atomic_write.d.ts.map +1 -0
- package/dist/core/atomic_write.js +51 -0
- package/dist/core/atomic_write.js.map +1 -0
- package/dist/core/audit_log.d.ts +43 -0
- package/dist/core/audit_log.d.ts.map +1 -0
- package/dist/core/audit_log.js +80 -0
- package/dist/core/audit_log.js.map +1 -0
- package/dist/core/brain_config.d.ts +52 -0
- package/dist/core/brain_config.d.ts.map +1 -0
- package/dist/core/brain_config.js +157 -0
- package/dist/core/brain_config.js.map +1 -0
- package/dist/core/budget.d.ts +96 -0
- package/dist/core/budget.d.ts.map +1 -0
- package/dist/core/budget.js +328 -0
- package/dist/core/budget.js.map +1 -0
- package/dist/core/cf_tunnel.d.ts.map +1 -1
- package/dist/core/cf_tunnel.js +8 -2
- package/dist/core/cf_tunnel.js.map +1 -1
- package/dist/core/cost_meter.d.ts +35 -0
- package/dist/core/cost_meter.d.ts.map +1 -0
- package/dist/core/cost_meter.js +111 -0
- package/dist/core/cost_meter.js.map +1 -0
- package/dist/core/cost_router.d.ts +106 -0
- package/dist/core/cost_router.d.ts.map +1 -0
- package/dist/core/cost_router.js +598 -0
- package/dist/core/cost_router.js.map +1 -0
- package/dist/core/desktop_open.d.ts +16 -0
- package/dist/core/desktop_open.d.ts.map +1 -0
- package/dist/core/desktop_open.js +114 -0
- package/dist/core/desktop_open.js.map +1 -0
- package/dist/core/doctrine_resolver.d.ts +23 -0
- package/dist/core/doctrine_resolver.d.ts.map +1 -0
- package/dist/core/doctrine_resolver.js +108 -0
- package/dist/core/doctrine_resolver.js.map +1 -0
- package/dist/core/error_catalog.d.ts +80 -0
- package/dist/core/error_catalog.d.ts.map +1 -0
- package/dist/core/error_catalog.js +168 -0
- package/dist/core/error_catalog.js.map +1 -0
- package/dist/core/error_formatter.d.ts +30 -0
- package/dist/core/error_formatter.d.ts.map +1 -0
- package/dist/core/error_formatter.js +155 -0
- package/dist/core/error_formatter.js.map +1 -0
- package/dist/core/incomplete_detector.d.ts +51 -0
- package/dist/core/incomplete_detector.d.ts.map +1 -0
- package/dist/core/incomplete_detector.js +140 -0
- package/dist/core/incomplete_detector.js.map +1 -0
- package/dist/core/keys_envelope.d.ts.map +1 -1
- package/dist/core/keys_envelope.js +19 -10
- package/dist/core/keys_envelope.js.map +1 -1
- package/dist/core/learnings_client.d.ts +104 -0
- package/dist/core/learnings_client.d.ts.map +1 -0
- package/dist/core/learnings_client.js +262 -0
- package/dist/core/learnings_client.js.map +1 -0
- package/dist/core/limits_config.d.ts +81 -0
- package/dist/core/limits_config.d.ts.map +1 -0
- package/dist/core/limits_config.js +302 -0
- package/dist/core/limits_config.js.map +1 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +3 -0
- package/dist/core/logger.js.map +1 -1
- package/dist/core/pairing.d.ts +7 -0
- package/dist/core/pairing.d.ts.map +1 -1
- package/dist/core/pairing.js +64 -14
- package/dist/core/pairing.js.map +1 -1
- package/dist/core/pilot_setup.d.ts +29 -3
- package/dist/core/pilot_setup.d.ts.map +1 -1
- package/dist/core/pilot_setup.js +130 -3
- package/dist/core/pilot_setup.js.map +1 -1
- package/dist/core/provider_keys.d.ts +35 -0
- package/dist/core/provider_keys.d.ts.map +1 -0
- package/dist/core/provider_keys.js +280 -0
- package/dist/core/provider_keys.js.map +1 -0
- package/dist/core/provider_models.d.ts +27 -0
- package/dist/core/provider_models.d.ts.map +1 -0
- package/dist/core/provider_models.js +169 -0
- package/dist/core/provider_models.js.map +1 -0
- package/dist/core/reasoning_gate.d.ts +72 -0
- package/dist/core/reasoning_gate.d.ts.map +1 -0
- package/dist/core/reasoning_gate.js +205 -0
- package/dist/core/reasoning_gate.js.map +1 -0
- package/dist/core/shell_classifier.d.ts +49 -0
- package/dist/core/shell_classifier.d.ts.map +1 -0
- package/dist/core/shell_classifier.js +159 -0
- package/dist/core/shell_classifier.js.map +1 -0
- package/dist/core/sq_resolver.d.ts +14 -0
- package/dist/core/sq_resolver.d.ts.map +1 -0
- package/dist/core/sq_resolver.js +230 -0
- package/dist/core/sq_resolver.js.map +1 -0
- package/dist/core/truncation_detector.d.ts +68 -0
- package/dist/core/truncation_detector.d.ts.map +1 -0
- package/dist/core/truncation_detector.js +115 -0
- package/dist/core/truncation_detector.js.map +1 -0
- package/dist/core/turn_classifier.d.ts +70 -0
- package/dist/core/turn_classifier.d.ts.map +1 -0
- package/dist/core/turn_classifier.js +324 -0
- package/dist/core/turn_classifier.js.map +1 -0
- package/dist/core/vad_config.d.ts +34 -0
- package/dist/core/vad_config.d.ts.map +1 -0
- package/dist/core/vad_config.js +95 -0
- package/dist/core/vad_config.js.map +1 -0
- package/dist/core/whats_new.d.ts +42 -0
- package/dist/core/whats_new.d.ts.map +1 -0
- package/dist/core/whats_new.js +214 -0
- package/dist/core/whats_new.js.map +1 -0
- package/dist/core/wizard_state.d.ts +15 -0
- package/dist/core/wizard_state.d.ts.map +1 -0
- package/dist/core/wizard_state.js +86 -0
- package/dist/core/wizard_state.js.map +1 -0
- package/dist/deploy/adapter.d.ts +93 -0
- package/dist/deploy/adapter.d.ts.map +1 -0
- package/dist/deploy/adapter.js +42 -0
- package/dist/deploy/adapter.js.map +1 -0
- package/dist/deploy/aws_adapter.d.ts +28 -0
- package/dist/deploy/aws_adapter.d.ts.map +1 -0
- package/dist/deploy/aws_adapter.js +98 -0
- package/dist/deploy/aws_adapter.js.map +1 -0
- package/dist/deploy/cloudflare.d.ts +24 -0
- package/dist/deploy/cloudflare.d.ts.map +1 -0
- package/dist/deploy/cloudflare.js +180 -0
- package/dist/deploy/cloudflare.js.map +1 -0
- package/dist/design/yujin_design_resolver.d.ts +93 -0
- package/dist/design/yujin_design_resolver.d.ts.map +1 -0
- package/dist/design/yujin_design_resolver.js +196 -0
- package/dist/design/yujin_design_resolver.js.map +1 -0
- package/dist/docs/LIMITED_RESPONSIBILITY.md +216 -0
- package/dist/docs/PRIVACY_POLICY.md +169 -0
- package/dist/docs/SQ.md +1397 -0
- package/dist/docs/SQ_BY_STEP.yaml +147 -0
- package/dist/docs/doctrine/accessibility.md +78 -0
- package/dist/docs/doctrine/agent-orchestrator.md +76 -0
- package/dist/docs/doctrine/byok-vs-managed.md +81 -0
- package/dist/docs/doctrine/cost-router-escalation.md +103 -0
- package/dist/docs/doctrine/default-design-system.md +152 -0
- package/dist/docs/doctrine/explain-results.md +90 -0
- package/dist/docs/doctrine/expo-eas-builds.md +177 -0
- package/dist/docs/doctrine/g-doc.md +46 -0
- package/dist/docs/doctrine/gates.md +21 -0
- package/dist/docs/doctrine/language-sovereignty.md +143 -0
- package/dist/docs/doctrine/lessons-workflow.md +68 -0
- package/dist/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
- package/dist/docs/doctrine/nac3-attrs.md +23 -0
- package/dist/docs/doctrine/office-tools.md +122 -0
- package/dist/docs/doctrine/pizarron.md +52 -0
- package/dist/docs/doctrine/r8-modal.md +60 -0
- package/dist/docs/doctrine/safety-refusals.md +73 -0
- package/dist/docs/doctrine/testing-policy.md +211 -0
- package/dist/docs/doctrine/verb-composition.md +84 -0
- package/dist/docs/doctrine/verification-honesty.md +95 -0
- package/dist/docs/doctrine/workflow-kinds.md +69 -0
- package/dist/docs/doctrine/workflow-phases.md +108 -0
- package/dist/docs/doctrine/workflow.md +66 -0
- package/dist/docs/doctrine/yf-commands.md +49 -0
- package/dist/json/query.d.ts +38 -0
- package/dist/json/query.d.ts.map +1 -0
- package/dist/json/query.js +177 -0
- package/dist/json/query.js.map +1 -0
- package/dist/license/auto_sync.d.ts +22 -0
- package/dist/license/auto_sync.d.ts.map +1 -0
- package/dist/license/auto_sync.js +91 -0
- package/dist/license/auto_sync.js.map +1 -0
- package/dist/license/handle_key.d.ts +32 -0
- package/dist/license/handle_key.d.ts.map +1 -0
- package/dist/license/handle_key.js +56 -0
- package/dist/license/handle_key.js.map +1 -0
- package/dist/license/hito4_client.d.ts +7 -0
- package/dist/license/hito4_client.d.ts.map +1 -1
- package/dist/license/hito4_client.js +113 -25
- package/dist/license/hito4_client.js.map +1 -1
- package/dist/license/sync.d.ts +59 -0
- package/dist/license/sync.d.ts.map +1 -0
- package/dist/license/sync.js +148 -0
- package/dist/license/sync.js.map +1 -0
- package/dist/llm/cohere_client.d.ts +81 -0
- package/dist/llm/cohere_client.d.ts.map +1 -0
- package/dist/llm/cohere_client.js +195 -0
- package/dist/llm/cohere_client.js.map +1 -0
- package/dist/llm/deepseek_client.d.ts +63 -0
- package/dist/llm/deepseek_client.d.ts.map +1 -0
- package/dist/llm/deepseek_client.js +188 -0
- package/dist/llm/deepseek_client.js.map +1 -0
- package/dist/llm/gemini_client.d.ts +78 -0
- package/dist/llm/gemini_client.d.ts.map +1 -0
- package/dist/llm/gemini_client.js +192 -0
- package/dist/llm/gemini_client.js.map +1 -0
- package/dist/llm/managed_client.d.ts +70 -0
- package/dist/llm/managed_client.d.ts.map +1 -0
- package/dist/llm/managed_client.js +256 -0
- package/dist/llm/managed_client.js.map +1 -0
- package/dist/llm/mistral_client.d.ts +54 -0
- package/dist/llm/mistral_client.d.ts.map +1 -0
- package/dist/llm/mistral_client.js +174 -0
- package/dist/llm/mistral_client.js.map +1 -0
- package/dist/llm/multi_provider_client.d.ts +57 -0
- package/dist/llm/multi_provider_client.d.ts.map +1 -0
- package/dist/llm/multi_provider_client.js +109 -0
- package/dist/llm/multi_provider_client.js.map +1 -0
- package/dist/llm/openai_client.d.ts +77 -0
- package/dist/llm/openai_client.d.ts.map +1 -0
- package/dist/llm/openai_client.js +200 -0
- package/dist/llm/openai_client.js.map +1 -0
- package/dist/llm/xai_client.d.ts +51 -0
- package/dist/llm/xai_client.d.ts.map +1 -0
- package/dist/llm/xai_client.js +174 -0
- package/dist/llm/xai_client.js.map +1 -0
- package/dist/mcp/blocklist.d.ts +19 -0
- package/dist/mcp/blocklist.d.ts.map +1 -0
- package/dist/mcp/blocklist.js +118 -0
- package/dist/mcp/blocklist.js.map +1 -0
- package/dist/mcp/bridge_registry.d.ts +77 -0
- package/dist/mcp/bridge_registry.d.ts.map +1 -0
- package/dist/mcp/bridge_registry.js +220 -0
- package/dist/mcp/bridge_registry.js.map +1 -0
- package/dist/mcp/config.d.ts +25 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +116 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/forge_panel_server.d.ts +46 -0
- package/dist/mcp/forge_panel_server.d.ts.map +1 -0
- package/dist/mcp/forge_panel_server.js +166 -0
- package/dist/mcp/forge_panel_server.js.map +1 -0
- package/dist/mcp/lan_scan.d.ts +36 -0
- package/dist/mcp/lan_scan.d.ts.map +1 -0
- package/dist/mcp/lan_scan.js +130 -0
- package/dist/mcp/lan_scan.js.map +1 -0
- package/dist/mcp/plan_bridges.d.ts +17 -0
- package/dist/mcp/plan_bridges.d.ts.map +1 -0
- package/dist/mcp/plan_bridges.js +119 -0
- package/dist/mcp/plan_bridges.js.map +1 -0
- package/dist/mcp/protocol_client.d.ts +63 -0
- package/dist/mcp/protocol_client.d.ts.map +1 -0
- package/dist/mcp/protocol_client.js +340 -0
- package/dist/mcp/protocol_client.js.map +1 -0
- package/dist/mcp/state.d.ts +38 -0
- package/dist/mcp/state.d.ts.map +1 -0
- package/dist/mcp/state.js +144 -0
- package/dist/mcp/state.js.map +1 -0
- package/dist/migrate/ai-apply.d.ts.map +1 -1
- package/dist/migrate/ai-apply.js +25 -2
- package/dist/migrate/ai-apply.js.map +1 -1
- package/dist/migrate/ai-decorator.d.ts.map +1 -1
- package/dist/migrate/ai-decorator.js +55 -143
- package/dist/migrate/ai-decorator.js.map +1 -1
- package/dist/nac3/approval_queue.d.ts +44 -0
- package/dist/nac3/approval_queue.d.ts.map +1 -0
- package/dist/nac3/approval_queue.js +105 -0
- package/dist/nac3/approval_queue.js.map +1 -0
- package/dist/nac3/backend_tools.d.ts +89 -0
- package/dist/nac3/backend_tools.d.ts.map +1 -0
- package/dist/nac3/backend_tools.js +271 -0
- package/dist/nac3/backend_tools.js.map +1 -0
- package/dist/nac3/dispatch_log.d.ts +35 -0
- package/dist/nac3/dispatch_log.d.ts.map +1 -0
- package/dist/nac3/dispatch_log.js +126 -0
- package/dist/nac3/dispatch_log.js.map +1 -0
- package/dist/nac3/internal_manifest.d.ts +62 -0
- package/dist/nac3/internal_manifest.d.ts.map +1 -0
- package/dist/nac3/internal_manifest.js +2651 -0
- package/dist/nac3/internal_manifest.js.map +1 -0
- package/dist/nac3/manifest_lazy.d.ts +71 -0
- package/dist/nac3/manifest_lazy.d.ts.map +1 -0
- package/dist/nac3/manifest_lazy.js +141 -0
- package/dist/nac3/manifest_lazy.js.map +1 -0
- package/dist/nac3/verb_tier_map.d.ts +80 -0
- package/dist/nac3/verb_tier_map.d.ts.map +1 -0
- package/dist/nac3/verb_tier_map.js +162 -0
- package/dist/nac3/verb_tier_map.js.map +1 -0
- package/dist/office/excel.d.ts +132 -0
- package/dist/office/excel.d.ts.map +1 -0
- package/dist/office/excel.js +358 -0
- package/dist/office/excel.js.map +1 -0
- package/dist/office/pdf.d.ts +35 -0
- package/dist/office/pdf.d.ts.map +1 -0
- package/dist/office/pdf.js +70 -0
- package/dist/office/pdf.js.map +1 -0
- package/dist/office/word.d.ts +64 -0
- package/dist/office/word.d.ts.map +1 -0
- package/dist/office/word.js +243 -0
- package/dist/office/word.js.map +1 -0
- package/dist/onboarding/concierge_client.d.ts +34 -0
- package/dist/onboarding/concierge_client.d.ts.map +1 -0
- package/dist/onboarding/concierge_client.js +80 -0
- package/dist/onboarding/concierge_client.js.map +1 -0
- package/dist/onboarding/next_step.d.ts +32 -0
- package/dist/onboarding/next_step.d.ts.map +1 -0
- package/dist/onboarding/next_step.js +60 -0
- package/dist/onboarding/next_step.js.map +1 -0
- package/dist/pending/store.d.ts +79 -0
- package/dist/pending/store.d.ts.map +1 -0
- package/dist/pending/store.js +293 -0
- package/dist/pending/store.js.map +1 -0
- package/dist/pending/types.d.ts +131 -0
- package/dist/pending/types.d.ts.map +1 -0
- package/dist/pending/types.js +60 -0
- package/dist/pending/types.js.map +1 -0
- package/dist/qa/brain_matrix/ab_runner.d.ts +44 -0
- package/dist/qa/brain_matrix/ab_runner.d.ts.map +1 -0
- package/dist/qa/brain_matrix/ab_runner.js +144 -0
- package/dist/qa/brain_matrix/ab_runner.js.map +1 -0
- package/dist/qa/brain_matrix/brains.json +80 -0
- package/dist/qa/brain_matrix/compare.d.ts +27 -0
- package/dist/qa/brain_matrix/compare.d.ts.map +1 -0
- package/dist/qa/brain_matrix/compare.js +122 -0
- package/dist/qa/brain_matrix/compare.js.map +1 -0
- package/dist/qa/brain_matrix/fake_brain.d.ts +36 -0
- package/dist/qa/brain_matrix/fake_brain.d.ts.map +1 -0
- package/dist/qa/brain_matrix/fake_brain.js +27 -0
- package/dist/qa/brain_matrix/fake_brain.js.map +1 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_intent.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_announce_no_speak_default.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_consecutive_announces.json +37 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_action.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_open.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_unlabeled_button.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_with_shortcut.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_agent_director_consults_workflow_before_dispatch.json +42 -0
- package/dist/qa/brain_matrix/fixtures/scenario_analyst_extracts_then_returns.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_announce_min_tool_calls.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_app_invoke_happy_path.json +65 -0
- package/dist/qa/brain_matrix/fixtures/scenario_app_no_invent_without_backend.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_app_schema_fail_recover.json +48 -0
- package/dist/qa/brain_matrix/fixtures/scenario_approval_modal_no_redundancy.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_args_redacted_in_audit.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_audit_consumers_intent_en.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_audit_log_on_destructive.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_brain_explains_after_invoke.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_byok_on_managed_brain_overflow.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_byok_required_policy.json +35 -0
- package/dist/qa/brain_matrix/fixtures/scenario_coder_consults_nac_spec_before_writing.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_concise_no_loop.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_consult_nac_spec_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_contradiction_rfp_cost.json +38 -0
- package/dist/qa/brain_matrix/fixtures/scenario_cost_router_attachment_frontier.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_cost_router_escalation_explicit.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_cost_router_idle_reset.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_csv_via_excel_read.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_override_shadcn.json +45 -0
- package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_use_card_template.json +44 -0
- package/dist/qa/brain_matrix/fixtures/scenario_destructive_no_text_confirm.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_diff_explains_changes.json +32 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_delegates_to_analyst.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_no_self_delegation.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_terminal_done_marker.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_after_unknown_intent.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_a11y.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_agent_orchestrator.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_byok_vs_managed.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_cost_router.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_default_design_system.json +50 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_g_doc.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_gates.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_intent_en.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_language_sovereignty.json +53 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_lessons_workflow.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_mcp_lifecycle.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_nac3_attrs.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_office.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_pizarron.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_r8_modal.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_testing_policy.json +55 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_workflow_phases.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_yf_commands.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_explain_results.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_safety_refusals.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_verb_composition.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_eco_defers_complex.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_eco_short_query.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_env_list_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_env_no_secret_leak.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression.json +35 -0
- package/dist/qa/brain_matrix/fixtures/scenario_env_secret_suppression_en.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_append_handles_csv_refusal.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_append_sheet_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_append_then_list.json +34 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_list_sheets_first.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_excel_sheet_named.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_explain_voice_yes.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_explains_forge_error.json +39 -0
- package/dist/qa/brain_matrix/fixtures/scenario_focus_after_modal_open.json +29 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_find_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_find_with_glob.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_mkdir_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_move_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_read_handles_missing.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_fs_stat_before_read.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_generated_app_nac3_default.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_branch_list_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_diff_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_log_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_pull_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_push_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_show_metadata_only.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_status_branch_combo.json +44 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_git_status_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_github_clone_repo_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_github_create_repo_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_id_format_in_reply.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_iterations_idempotent_adenda.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_iterations_query_history.json +29 -0
- package/dist/qa/brain_matrix/fixtures/scenario_iterations_tracker_acknowledge.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_parse_handles_malformed.json +34 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent.json +30 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_parse_intent_en.json +30 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_query_extract.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_json_stringify_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_keys_set_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_keys_status_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_not_conducive_spa_python.json +61 -0
- package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_user_picks_python.json +48 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lazy_complex_verb.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lazy_doctrine_only_when_needed.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lazy_simple_verb.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lesson_recall_overrides.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_restart_app_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_run_app_intent_en.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_lifecycle_stop_app_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_long_doctrine_no_truncate.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_manifest_read_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_manual_open_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_bridge_unreachable_graceful.json +39 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_disabled_bridge_no_verbs.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_discover_tools_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invariant_1_no_verbs.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_destructive_pauses_for_r8.json +42 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_happy_path_writes_pizarron.json +76 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_network_timeout_graceful.json +41 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_two_hop.json +68 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_with_auth_loaded.json +76 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_revoked_token_graceful.json +33 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_intent.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_set_creds_no_token_arg.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_show_tools_before_invoke.json +44 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_toggle_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_multi_turn_clarify_then_act.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_nac3_attrs_doctrine.json +53 -0
- package/dist/qa/brain_matrix/fixtures/scenario_nac3_discover_schemas_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_nac3_required_attr_missing.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_bare_ok_after_destructive.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_global_learnings_no_recall.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_hardcoded_color_use_token.json +47 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_id_leak_in_reply.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_invent_verb.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_loop_after_repeated_fail.json +42 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_password_echo.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_all_current.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_npm_outdated_then_explain.json +35 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_excel_read_intent.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_excel_update_cell_picks_right_verb.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_excel_write_required_args.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_overwrite_explicit.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_word_write_intent.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_panel_open_settings_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_panel_send_message_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pdf_read_intent.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pizarron_clear_tab_explicit_close.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_chart.json +30 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pizarron_for_long_table.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pizarron_read_tab_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_pizarron_render_not_inline.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_read_file.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_verb_over_shell.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_prefer_native_workflow_state.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_project_init_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_project_set_root_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_promote_lesson_after_correction.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_r8_destructive_shell_exec.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_read_then_parse_order.json +36 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_jump_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_bookmark_set_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_for_long_doc.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_list_docs_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_next_block_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_read_section_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_recap_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_reader_search_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_blanket_chmod_777.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_bypass_approval_modal.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_delete_critical_en.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_disable_vault_encryption.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_drop_database.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_force_push_main_en.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_leak_vault_en.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_modify_node_modules.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_skip_hooks_en.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_delete_critical.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_refuses_to_leak_vault.json +18 -0
- package/dist/qa/brain_matrix/fixtures/scenario_respects_global_learnings.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_respects_workflow_gate_g2.json +39 -0
- package/dist/qa/brain_matrix/fixtures/scenario_revoke_lesson_request.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_scaffolder_destructive_pauses_for_approval.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sq9b_deploy_checks_git_status.json +25 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sq9b_install_checks_node_version.json +25 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sq9b_publish_checks_gh_cli.json +25 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sq_rules_active.json +30 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sumie_icon_pick_from_catalog.json +56 -0
- package/dist/qa/brain_matrix/fixtures/scenario_tester_uses_shell_exec_only.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_text_diff_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_truncated_response_retry.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_unknown_command_clarify.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_parse_compose.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_parse_handles_invalid.json +27 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_parse_intent_en.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_parse_then_inspect_query.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_url_then_stringify_order.json +34 -0
- package/dist/qa/brain_matrix/fixtures/scenario_user_just_greets.json +17 -0
- package/dist/qa/brain_matrix/fixtures/scenario_user_overrides_proceeds.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_user_revokes_in_middle.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_voice_open_pizarron.json +21 -0
- package/dist/qa/brain_matrix/fixtures/scenario_word_outline_extraction.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_word_overwrite_explicit.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_word_section_count.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_doctrine.json +53 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_done_specs.json +32 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_intent_capture.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_jump_block.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_phase_v_step_15.json +41 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_run_step_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_set_intent.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_injection.json +32 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_state_recovers_after_clarify.json +25 -0
- package/dist/qa/brain_matrix/fixtures/scenario_workflow_step_1_intake.json +24 -0
- package/dist/qa/brain_matrix/fixtures/scenario_yf_command_doctrine.json +56 -0
- package/dist/qa/brain_matrix/fixtures/scenario_yf_doctrine_list_intent.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_yf_qa_compare_intent.json +17 -0
- package/dist/qa/brain_matrix/invariants.d.ts +18 -0
- package/dist/qa/brain_matrix/invariants.d.ts.map +1 -0
- package/dist/qa/brain_matrix/invariants.js +333 -0
- package/dist/qa/brain_matrix/invariants.js.map +1 -0
- package/dist/qa/brain_matrix/report.d.ts +12 -0
- package/dist/qa/brain_matrix/report.d.ts.map +1 -0
- package/dist/qa/brain_matrix/report.js +131 -0
- package/dist/qa/brain_matrix/report.js.map +1 -0
- package/dist/qa/brain_matrix/runner.d.ts +31 -0
- package/dist/qa/brain_matrix/runner.d.ts.map +1 -0
- package/dist/qa/brain_matrix/runner.js +561 -0
- package/dist/qa/brain_matrix/runner.js.map +1 -0
- package/dist/qa/brain_matrix/types.d.ts +180 -0
- package/dist/qa/brain_matrix/types.d.ts.map +1 -0
- package/dist/qa/brain_matrix/types.js +2 -0
- package/dist/qa/brain_matrix/types.js.map +1 -0
- package/dist/qa/brain_matrix/validate_scenario.d.ts +23 -0
- package/dist/qa/brain_matrix/validate_scenario.d.ts.map +1 -0
- package/dist/qa/brain_matrix/validate_scenario.js +128 -0
- package/dist/qa/brain_matrix/validate_scenario.js.map +1 -0
- package/dist/reader/parsers/epub.d.ts.map +1 -1
- package/dist/reader/parsers/epub.js +6 -1
- package/dist/reader/parsers/epub.js.map +1 -1
- package/dist/relay/board_snapshot.d.ts +69 -0
- package/dist/relay/board_snapshot.d.ts.map +1 -0
- package/dist/relay/board_snapshot.js +149 -0
- package/dist/relay/board_snapshot.js.map +1 -0
- package/dist/relay/command_consumer.d.ts +91 -0
- package/dist/relay/command_consumer.d.ts.map +1 -0
- package/dist/relay/command_consumer.js +129 -0
- package/dist/relay/command_consumer.js.map +1 -0
- package/dist/relay/mock_relay.d.ts +34 -0
- package/dist/relay/mock_relay.d.ts.map +1 -0
- package/dist/relay/mock_relay.js +93 -0
- package/dist/relay/mock_relay.js.map +1 -0
- package/dist/relay/relay_client.d.ts +28 -0
- package/dist/relay/relay_client.d.ts.map +1 -0
- package/dist/relay/relay_client.js +80 -0
- package/dist/relay/relay_client.js.map +1 -0
- package/dist/relay/relay_publisher.d.ts +59 -0
- package/dist/relay/relay_publisher.d.ts.map +1 -0
- package/dist/relay/relay_publisher.js +101 -0
- package/dist/relay/relay_publisher.js.map +1 -0
- package/dist/relay/types.d.ts +54 -0
- package/dist/relay/types.d.ts.map +1 -0
- package/dist/relay/types.js +8 -0
- package/dist/relay/types.js.map +1 -0
- package/dist/semantic_graph/ast_extract.d.ts +20 -0
- package/dist/semantic_graph/ast_extract.d.ts.map +1 -0
- package/dist/semantic_graph/ast_extract.js +208 -0
- package/dist/semantic_graph/ast_extract.js.map +1 -0
- package/dist/semantic_graph/derive.d.ts +48 -0
- package/dist/semantic_graph/derive.d.ts.map +1 -0
- package/dist/semantic_graph/derive.js +604 -0
- package/dist/semantic_graph/derive.js.map +1 -0
- package/dist/semantic_graph/llm_claim.d.ts +21 -0
- package/dist/semantic_graph/llm_claim.d.ts.map +1 -0
- package/dist/semantic_graph/llm_claim.js +164 -0
- package/dist/semantic_graph/llm_claim.js.map +1 -0
- package/dist/semantic_graph/npm_enrich.d.ts +49 -0
- package/dist/semantic_graph/npm_enrich.d.ts.map +1 -0
- package/dist/semantic_graph/npm_enrich.js +173 -0
- package/dist/semantic_graph/npm_enrich.js.map +1 -0
- package/dist/semantic_graph/render.d.ts +28 -0
- package/dist/semantic_graph/render.d.ts.map +1 -0
- package/dist/semantic_graph/render.js +70 -0
- package/dist/semantic_graph/render.js.map +1 -0
- package/dist/semantic_graph/store.d.ts +53 -0
- package/dist/semantic_graph/store.d.ts.map +1 -0
- package/dist/semantic_graph/store.js +382 -0
- package/dist/semantic_graph/store.js.map +1 -0
- package/dist/semantic_graph/types.d.ts +59 -0
- package/dist/semantic_graph/types.d.ts.map +1 -0
- package/dist/semantic_graph/types.js +17 -0
- package/dist/semantic_graph/types.js.map +1 -0
- package/dist/support/github_dispatcher.d.ts +36 -0
- package/dist/support/github_dispatcher.d.ts.map +1 -0
- package/dist/support/github_dispatcher.js +320 -0
- package/dist/support/github_dispatcher.js.map +1 -0
- package/dist/support/reports.d.ts +31 -0
- package/dist/support/reports.d.ts.map +1 -0
- package/dist/support/reports.js +162 -0
- package/dist/support/reports.js.map +1 -0
- package/dist/tasks/supervisor.d.ts +88 -0
- package/dist/tasks/supervisor.d.ts.map +1 -0
- package/dist/tasks/supervisor.js +308 -0
- package/dist/tasks/supervisor.js.map +1 -0
- package/dist/tasks/task_type.d.ts +11 -0
- package/dist/tasks/task_type.d.ts.map +1 -0
- package/dist/tasks/task_type.js +21 -0
- package/dist/tasks/task_type.js.map +1 -0
- package/dist/telemetry/usage.d.ts +67 -0
- package/dist/telemetry/usage.d.ts.map +1 -0
- package/dist/telemetry/usage.js +208 -0
- package/dist/telemetry/usage.js.map +1 -0
- package/dist/test_agent/gemini_user.d.ts +9 -0
- package/dist/test_agent/gemini_user.d.ts.map +1 -0
- package/dist/test_agent/gemini_user.js +58 -0
- package/dist/test_agent/gemini_user.js.map +1 -0
- package/dist/test_agent/profiles.d.ts +23 -0
- package/dist/test_agent/profiles.d.ts.map +1 -0
- package/dist/test_agent/profiles.js +117 -0
- package/dist/test_agent/profiles.js.map +1 -0
- package/dist/test_agent/runner.d.ts +56 -0
- package/dist/test_agent/runner.d.ts.map +1 -0
- package/dist/test_agent/runner.js +134 -0
- package/dist/test_agent/runner.js.map +1 -0
- package/dist/test_agent/target_http.d.ts +22 -0
- package/dist/test_agent/target_http.d.ts.map +1 -0
- package/dist/test_agent/target_http.js +51 -0
- package/dist/test_agent/target_http.js.map +1 -0
- package/dist/test_agent/types.d.ts +117 -0
- package/dist/test_agent/types.d.ts.map +1 -0
- package/dist/test_agent/types.js +22 -0
- package/dist/test_agent/types.js.map +1 -0
- package/dist/vault/store.d.ts.map +1 -1
- package/dist/vault/store.js +20 -2
- package/dist/vault/store.js.map +1 -1
- package/dist/version.d.ts +3 -5
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -5
- package/dist/version.js.map +1 -1
- package/dist/voice/config.d.ts +12 -0
- package/dist/voice/config.d.ts.map +1 -1
- package/dist/voice/config.js +25 -2
- package/dist/voice/config.js.map +1 -1
- package/dist/voice/providers/google.d.ts +9 -0
- package/dist/voice/providers/google.d.ts.map +1 -1
- package/dist/voice/providers/google.js +158 -30
- package/dist/voice/providers/google.js.map +1 -1
- package/dist/voice/router.d.ts +10 -0
- package/dist/voice/router.d.ts.map +1 -1
- package/dist/voice/router.js +39 -20
- package/dist/voice/router.js.map +1 -1
- package/dist/voice/types.d.ts +5 -2
- package/dist/voice/types.d.ts.map +1 -1
- package/dist/voice/types.js.map +1 -1
- package/dist/wiring/discover.d.ts +14 -0
- package/dist/wiring/discover.d.ts.map +1 -0
- package/dist/wiring/discover.js +383 -0
- package/dist/wiring/discover.js.map +1 -0
- package/dist/wiring/store.d.ts +19 -0
- package/dist/wiring/store.d.ts.map +1 -0
- package/dist/wiring/store.js +182 -0
- package/dist/wiring/store.js.map +1 -0
- package/dist/wiring/types.d.ts +61 -0
- package/dist/wiring/types.d.ts.map +1 -0
- package/dist/wiring/types.js +36 -0
- package/dist/wiring/types.js.map +1 -0
- package/dist/workflow/config.d.ts +43 -0
- package/dist/workflow/config.d.ts.map +1 -0
- package/dist/workflow/config.js +199 -0
- package/dist/workflow/config.js.map +1 -0
- package/dist/workflow/definitions.d.ts +60 -0
- package/dist/workflow/definitions.d.ts.map +1 -0
- package/dist/workflow/definitions.js +178 -0
- package/dist/workflow/definitions.js.map +1 -0
- package/dist/workflow/definitions_client.d.ts +12 -0
- package/dist/workflow/definitions_client.d.ts.map +1 -0
- package/dist/workflow/definitions_client.js +81 -0
- package/dist/workflow/definitions_client.js.map +1 -0
- package/dist/workflow/evolution.d.ts +10 -0
- package/dist/workflow/evolution.d.ts.map +1 -0
- package/dist/workflow/evolution.js +62 -0
- package/dist/workflow/evolution.js.map +1 -0
- package/dist/workflow/graph.d.ts +59 -0
- package/dist/workflow/graph.d.ts.map +1 -0
- package/dist/workflow/graph.js +137 -0
- package/dist/workflow/graph.js.map +1 -0
- package/dist/workflow/instances.d.ts +40 -0
- package/dist/workflow/instances.d.ts.map +1 -0
- package/dist/workflow/instances.js +122 -0
- package/dist/workflow/instances.js.map +1 -0
- package/dist/workflow/multi_view.d.ts +27 -0
- package/dist/workflow/multi_view.d.ts.map +1 -0
- package/dist/workflow/multi_view.js +76 -0
- package/dist/workflow/multi_view.js.map +1 -0
- package/dist/workflow/orchestrator.d.ts +111 -0
- package/dist/workflow/orchestrator.d.ts.map +1 -0
- package/dist/workflow/orchestrator.js +241 -0
- package/dist/workflow/orchestrator.js.map +1 -0
- package/dist/workflow/phase_inference.d.ts +56 -0
- package/dist/workflow/phase_inference.d.ts.map +1 -0
- package/dist/workflow/phase_inference.js +107 -0
- package/dist/workflow/phase_inference.js.map +1 -0
- package/dist/workflow/select.d.ts +28 -0
- package/dist/workflow/select.d.ts.map +1 -0
- package/dist/workflow/select.js +38 -0
- package/dist/workflow/select.js.map +1 -0
- package/dist/workflow/state.d.ts +290 -0
- package/dist/workflow/state.d.ts.map +1 -0
- package/dist/workflow/state.js +213 -0
- package/dist/workflow/state.js.map +1 -0
- package/dist/workflow/view.d.ts +47 -0
- package/dist/workflow/view.d.ts.map +1 -0
- package/dist/workflow/view.js +103 -0
- package/dist/workflow/view.js.map +1 -0
- package/docs/SQ.md +1397 -0
- package/docs/SQ_BY_STEP.yaml +147 -0
- package/docs/doctrine/accessibility.md +78 -0
- package/docs/doctrine/agent-orchestrator.md +76 -0
- package/docs/doctrine/byok-vs-managed.md +81 -0
- package/docs/doctrine/cost-router-escalation.md +103 -0
- package/docs/doctrine/default-design-system.md +152 -0
- package/docs/doctrine/explain-results.md +90 -0
- package/docs/doctrine/expo-eas-builds.md +177 -0
- package/docs/doctrine/g-doc.md +46 -0
- package/docs/doctrine/gates.md +21 -0
- package/docs/doctrine/language-sovereignty.md +143 -0
- package/docs/doctrine/lessons-workflow.md +68 -0
- package/docs/doctrine/mcp-bridge-lifecycle.md +75 -0
- package/docs/doctrine/nac3-attrs.md +23 -0
- package/docs/doctrine/office-tools.md +122 -0
- package/docs/doctrine/pizarron.md +52 -0
- package/docs/doctrine/r8-modal.md +60 -0
- package/docs/doctrine/safety-refusals.md +73 -0
- package/docs/doctrine/testing-policy.md +211 -0
- package/docs/doctrine/verb-composition.md +84 -0
- package/docs/doctrine/verification-honesty.md +95 -0
- package/docs/doctrine/workflow-kinds.md +69 -0
- package/docs/doctrine/workflow-phases.md +108 -0
- package/docs/doctrine/workflow.md +66 -0
- package/docs/doctrine/yf-commands.md +49 -0
- package/package.json +20 -3
- package/src/i18n/catalogs/ar.json +223 -86
- package/src/i18n/catalogs/de.json +223 -86
- package/src/i18n/catalogs/en.json +223 -86
- package/src/i18n/catalogs/es.json +223 -86
- package/src/i18n/catalogs/fr.json +223 -86
- package/src/i18n/catalogs/hi.json +223 -86
- package/src/i18n/catalogs/it.json +223 -86
- package/src/i18n/catalogs/ja.json +223 -86
- package/src/i18n/catalogs/pt.json +223 -86
- package/src/i18n/catalogs/zh.json +223 -86
- package/templates/nextjs-app/README.md +48 -0
- package/templates/nextjs-app/next.config.js +8 -0
- package/templates/nextjs-app/package.json +33 -0
- package/templates/nextjs-app/src/app/globals.css +43 -0
- package/templates/nextjs-app/src/app/layout.tsx +29 -0
- package/templates/nextjs-app/src/app/page.tsx +63 -0
- package/templates/nextjs-app/src/nac/manifest.ts +36 -0
- package/templates/nextjs-app/tsconfig.json +21 -0
- package/templates/nextjs-app/yujin.forge.json +11 -0
- package/templates/sumi-context.template.md +57 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yujin Forge -- pending_registry store.
|
|
3
|
+
*
|
|
4
|
+
* One JSON file per project at
|
|
5
|
+
* ~/.yujin-forge/projects/<project_slug>/pending.json
|
|
6
|
+
*
|
|
7
|
+
* Reads are cached in-memory per process for ~5s to avoid disk
|
|
8
|
+
* thrashing when buildSystemPrompt is invoked multiple times per
|
|
9
|
+
* turn. Writes are atomic (write to tempfile + rename) so a crashing
|
|
10
|
+
* process never leaves the registry corrupt.
|
|
11
|
+
*
|
|
12
|
+
* Concurrency model: each `~/.yujin-forge/projects/<slug>/` is owned
|
|
13
|
+
* by exactly one `yf` invocation at a time. We rely on filesystem
|
|
14
|
+
* rename atomicity rather than a lock file; the only readers are
|
|
15
|
+
* `yf chat` and the post-commit hook, and they do not overlap in
|
|
16
|
+
* practice. If they did, the worst case is the last writer wins
|
|
17
|
+
* with no torn writes (since rename is atomic on local filesystems).
|
|
18
|
+
*
|
|
19
|
+
* ASCII-only.
|
|
20
|
+
*/
|
|
21
|
+
import { promises as fs } from 'node:fs';
|
|
22
|
+
import * as path from 'node:path';
|
|
23
|
+
import * as os from 'node:os';
|
|
24
|
+
import { emptyPendingFile, formatPendingId, parsePendingId, } from './types.js';
|
|
25
|
+
const FILE_NAME = 'pending.json';
|
|
26
|
+
/** Resolve the directory that holds per-project Yujin Forge state.
|
|
27
|
+
* Honours XDG_CONFIG_HOME on Linux when present; everywhere else
|
|
28
|
+
* falls back to `~/.yujin-forge`. */
|
|
29
|
+
function configRoot() {
|
|
30
|
+
if (process.env['YUJIN_FORGE_HOME'])
|
|
31
|
+
return process.env['YUJIN_FORGE_HOME'];
|
|
32
|
+
const xdg = process.env['XDG_CONFIG_HOME'];
|
|
33
|
+
if (xdg && process.platform === 'linux')
|
|
34
|
+
return path.join(xdg, 'yujin-forge');
|
|
35
|
+
return path.join(os.homedir(), '.yujin-forge');
|
|
36
|
+
}
|
|
37
|
+
/** Resolve the per-project directory. Caller is responsible for the
|
|
38
|
+
* slug being filesystem-safe (no `..`, no path separators). */
|
|
39
|
+
function projectDir(project_slug) {
|
|
40
|
+
if (!project_slug || project_slug.includes('..') || /[/\\]/.test(project_slug)) {
|
|
41
|
+
throw new Error('pending: invalid project_slug ' + JSON.stringify(project_slug));
|
|
42
|
+
}
|
|
43
|
+
return path.join(configRoot(), 'projects', project_slug);
|
|
44
|
+
}
|
|
45
|
+
function fileFor(project_slug) {
|
|
46
|
+
return path.join(projectDir(project_slug), FILE_NAME);
|
|
47
|
+
}
|
|
48
|
+
/** Read the pending file for a project. Returns an empty file when
|
|
49
|
+
* none exists; never throws ENOENT. Other I/O errors propagate. */
|
|
50
|
+
export async function readPending(project_slug) {
|
|
51
|
+
const f = fileFor(project_slug);
|
|
52
|
+
try {
|
|
53
|
+
const raw = await fs.readFile(f, 'utf-8');
|
|
54
|
+
const parsed = JSON.parse(raw);
|
|
55
|
+
/* Defensive: if the file got hand-edited and lost its envelope,
|
|
56
|
+
* coerce it back to a valid shape rather than crashing. */
|
|
57
|
+
if (!parsed || typeof parsed !== 'object' || parsed.version !== 1
|
|
58
|
+
|| !Array.isArray(parsed.items)) {
|
|
59
|
+
return emptyPendingFile(project_slug);
|
|
60
|
+
}
|
|
61
|
+
if (typeof parsed.next_id !== 'number' || parsed.next_id < 1) {
|
|
62
|
+
parsed.next_id = computeNextId(parsed.items);
|
|
63
|
+
}
|
|
64
|
+
if (parsed.project_slug !== project_slug) {
|
|
65
|
+
parsed.project_slug = project_slug;
|
|
66
|
+
}
|
|
67
|
+
return parsed;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (err instanceof Error && 'code' in err && err.code === 'ENOENT') {
|
|
71
|
+
return emptyPendingFile(project_slug);
|
|
72
|
+
}
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Compute the next available numeric ID from an item array.
|
|
77
|
+
* Used as a fallback when next_id was missing or corrupted. */
|
|
78
|
+
function computeNextId(items) {
|
|
79
|
+
let max = 0;
|
|
80
|
+
for (const it of items) {
|
|
81
|
+
const n = parsePendingId(it.id);
|
|
82
|
+
if (n !== null && n > max)
|
|
83
|
+
max = n;
|
|
84
|
+
}
|
|
85
|
+
return max + 1;
|
|
86
|
+
}
|
|
87
|
+
/** Persist the pending file. Atomic: writes to <file>.tmp then renames. */
|
|
88
|
+
export async function writePending(file) {
|
|
89
|
+
if (file.version !== 1)
|
|
90
|
+
throw new Error('writePending: unsupported version ' + file.version);
|
|
91
|
+
const dir = projectDir(file.project_slug);
|
|
92
|
+
await fs.mkdir(dir, { recursive: true });
|
|
93
|
+
const target = path.join(dir, FILE_NAME);
|
|
94
|
+
const tmp = target + '.tmp';
|
|
95
|
+
const json = JSON.stringify(file, null, 2);
|
|
96
|
+
await fs.writeFile(tmp, json, { encoding: 'utf-8', mode: 0o600 });
|
|
97
|
+
await fs.rename(tmp, target);
|
|
98
|
+
}
|
|
99
|
+
export async function addPending(project_slug, input) {
|
|
100
|
+
if (!input.title || !input.title.trim()) {
|
|
101
|
+
throw new Error('addPending: title is required');
|
|
102
|
+
}
|
|
103
|
+
const validCats = ['user_blocked', 'autopilot', 'clarify', 'bug', 'infra'];
|
|
104
|
+
if (!validCats.includes(input.category)) {
|
|
105
|
+
throw new Error('addPending: invalid category ' + input.category);
|
|
106
|
+
}
|
|
107
|
+
const file = await readPending(project_slug);
|
|
108
|
+
const now = Date.now();
|
|
109
|
+
const item = {
|
|
110
|
+
id: formatPendingId(file.next_id),
|
|
111
|
+
title: input.title.trim(),
|
|
112
|
+
category: input.category,
|
|
113
|
+
priority: clampPriority(input.priority ?? 50),
|
|
114
|
+
created_at: now,
|
|
115
|
+
updated_at: now,
|
|
116
|
+
};
|
|
117
|
+
if (input.body && input.body.trim())
|
|
118
|
+
item.body = input.body;
|
|
119
|
+
if (input.blocker_kind)
|
|
120
|
+
item.blocker_kind = input.blocker_kind;
|
|
121
|
+
if (input.blocker_who && input.blocker_who.trim())
|
|
122
|
+
item.blocker_who = input.blocker_who.trim();
|
|
123
|
+
if (input.related_doc && input.related_doc.trim())
|
|
124
|
+
item.related_doc = input.related_doc.trim();
|
|
125
|
+
if (input.workflow)
|
|
126
|
+
item.workflow = input.workflow;
|
|
127
|
+
file.items.push(item);
|
|
128
|
+
file.next_id = file.next_id + 1;
|
|
129
|
+
await writePending(file);
|
|
130
|
+
return item;
|
|
131
|
+
}
|
|
132
|
+
function clampPriority(n) {
|
|
133
|
+
if (!Number.isFinite(n))
|
|
134
|
+
return 50;
|
|
135
|
+
return Math.max(0, Math.min(100, Math.floor(n)));
|
|
136
|
+
}
|
|
137
|
+
export async function listPending(project_slug, filter = {}) {
|
|
138
|
+
const file = await readPending(project_slug);
|
|
139
|
+
let out = file.items.slice();
|
|
140
|
+
const status = filter.status ?? 'open';
|
|
141
|
+
if (status === 'open')
|
|
142
|
+
out = out.filter((i) => i.closed_at === undefined);
|
|
143
|
+
if (status === 'closed')
|
|
144
|
+
out = out.filter((i) => i.closed_at !== undefined);
|
|
145
|
+
if (filter.category)
|
|
146
|
+
out = out.filter((i) => i.category === filter.category);
|
|
147
|
+
if (filter.blocker_who)
|
|
148
|
+
out = out.filter((i) => i.blocker_who === filter.blocker_who);
|
|
149
|
+
/* Stable sort: priority asc (lower = more critical), then created_at asc. */
|
|
150
|
+
out.sort((a, b) => (a.priority - b.priority) || (a.created_at - b.created_at));
|
|
151
|
+
return out.map((i) => ({ ...i }));
|
|
152
|
+
}
|
|
153
|
+
/** Find one item by id. Returns undefined when not present. */
|
|
154
|
+
export async function findPending(project_slug, id) {
|
|
155
|
+
const file = await readPending(project_slug);
|
|
156
|
+
const it = file.items.find((i) => i.id === id);
|
|
157
|
+
return it ? { ...it } : undefined;
|
|
158
|
+
}
|
|
159
|
+
/** Append-only: agrega una entrada al history del item (una
|
|
160
|
+
* iteracion de la gestion / ciclo evolutivo-correctivo). No exige
|
|
161
|
+
* que el item este abierto. */
|
|
162
|
+
export async function appendPendingHistory(project_slug, id, entry) {
|
|
163
|
+
const file = await readPending(project_slug);
|
|
164
|
+
const it = file.items.find((i) => i.id === id);
|
|
165
|
+
if (!it)
|
|
166
|
+
throw new Error('appendPendingHistory: not found ' + id);
|
|
167
|
+
if (!Array.isArray(it.history))
|
|
168
|
+
it.history = [];
|
|
169
|
+
it.history.push({ at: Date.now(), note: entry.note, kind: entry.kind });
|
|
170
|
+
it.updated_at = Date.now();
|
|
171
|
+
await writePending(file);
|
|
172
|
+
return { ...it };
|
|
173
|
+
}
|
|
174
|
+
/** PND-094 ext -- attach/detach an EXISTING pending to a workflow
|
|
175
|
+
* instance (set its `workflow` link). Used to fold a backlog of real
|
|
176
|
+
* pendings into a brownfield workflow without recreating them. Pass
|
|
177
|
+
* null to detach. */
|
|
178
|
+
export async function setPendingWorkflow(project_slug, id, link) {
|
|
179
|
+
const file = await readPending(project_slug);
|
|
180
|
+
const it = file.items.find((i) => i.id === id);
|
|
181
|
+
if (!it)
|
|
182
|
+
throw new Error('setPendingWorkflow: not found ' + id);
|
|
183
|
+
if (link)
|
|
184
|
+
it.workflow = link;
|
|
185
|
+
else
|
|
186
|
+
delete it.workflow;
|
|
187
|
+
it.updated_at = Date.now();
|
|
188
|
+
await writePending(file);
|
|
189
|
+
return { ...it };
|
|
190
|
+
}
|
|
191
|
+
export async function closePending(project_slug, id, input) {
|
|
192
|
+
const file = await readPending(project_slug);
|
|
193
|
+
const idx = file.items.findIndex((i) => i.id === id);
|
|
194
|
+
if (idx < 0)
|
|
195
|
+
throw new Error('closePending: not found ' + id);
|
|
196
|
+
const it = file.items[idx];
|
|
197
|
+
if (!it)
|
|
198
|
+
throw new Error('closePending: not found ' + id);
|
|
199
|
+
if (it.closed_at !== undefined)
|
|
200
|
+
throw new Error('closePending: already closed ' + id);
|
|
201
|
+
const validReasons = ['shipped', 'obsoleted', 'duplicate', 'rejected'];
|
|
202
|
+
if (!validReasons.includes(input.reason)) {
|
|
203
|
+
throw new Error('closePending: invalid reason ' + input.reason);
|
|
204
|
+
}
|
|
205
|
+
it.closed_at = Date.now();
|
|
206
|
+
it.closed_reason = input.reason;
|
|
207
|
+
if (input.commit && input.commit.trim())
|
|
208
|
+
it.closed_by_commit = input.commit.trim();
|
|
209
|
+
/* Guardar el history de cierre (como se resolvio). */
|
|
210
|
+
if (input.resolution && input.resolution.trim()) {
|
|
211
|
+
if (!Array.isArray(it.history))
|
|
212
|
+
it.history = [];
|
|
213
|
+
it.history.push({ at: it.closed_at, note: input.resolution.trim(), kind: 'resolution' });
|
|
214
|
+
}
|
|
215
|
+
it.updated_at = it.closed_at;
|
|
216
|
+
await writePending(file);
|
|
217
|
+
return { ...it };
|
|
218
|
+
}
|
|
219
|
+
export async function editPending(project_slug, id, input) {
|
|
220
|
+
const file = await readPending(project_slug);
|
|
221
|
+
const idx = file.items.findIndex((i) => i.id === id);
|
|
222
|
+
if (idx < 0)
|
|
223
|
+
throw new Error('editPending: not found ' + id);
|
|
224
|
+
const it = file.items[idx];
|
|
225
|
+
if (!it)
|
|
226
|
+
throw new Error('editPending: not found ' + id);
|
|
227
|
+
if (input.title !== undefined)
|
|
228
|
+
it.title = input.title.trim();
|
|
229
|
+
if (input.body !== undefined)
|
|
230
|
+
it.body = input.body;
|
|
231
|
+
if (input.category !== undefined) {
|
|
232
|
+
const validCats = ['user_blocked', 'autopilot', 'clarify', 'bug', 'infra'];
|
|
233
|
+
if (!validCats.includes(input.category)) {
|
|
234
|
+
throw new Error('editPending: invalid category ' + input.category);
|
|
235
|
+
}
|
|
236
|
+
it.category = input.category;
|
|
237
|
+
}
|
|
238
|
+
if (input.blocker_kind !== undefined)
|
|
239
|
+
it.blocker_kind = input.blocker_kind;
|
|
240
|
+
if (input.blocker_who !== undefined)
|
|
241
|
+
it.blocker_who = input.blocker_who.trim() || undefined;
|
|
242
|
+
if (input.priority !== undefined)
|
|
243
|
+
it.priority = clampPriority(input.priority);
|
|
244
|
+
if (input.related_doc !== undefined)
|
|
245
|
+
it.related_doc = input.related_doc.trim() || undefined;
|
|
246
|
+
it.updated_at = Date.now();
|
|
247
|
+
await writePending(file);
|
|
248
|
+
return { ...it };
|
|
249
|
+
}
|
|
250
|
+
export async function statsPending(project_slug) {
|
|
251
|
+
const file = await readPending(project_slug);
|
|
252
|
+
const stats = {
|
|
253
|
+
total_open: 0,
|
|
254
|
+
total_closed: 0,
|
|
255
|
+
by_category: { user_blocked: 0, autopilot: 0, clarify: 0, bug: 0, infra: 0 },
|
|
256
|
+
};
|
|
257
|
+
let oldest;
|
|
258
|
+
for (const it of file.items) {
|
|
259
|
+
if (it.closed_at !== undefined) {
|
|
260
|
+
stats.total_closed += 1;
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
stats.total_open += 1;
|
|
264
|
+
stats.by_category[it.category] += 1;
|
|
265
|
+
if (!oldest || it.created_at < oldest.created_at)
|
|
266
|
+
oldest = it;
|
|
267
|
+
}
|
|
268
|
+
if (oldest)
|
|
269
|
+
stats.oldest_open = { ...oldest };
|
|
270
|
+
return stats;
|
|
271
|
+
}
|
|
272
|
+
/** Used by the post-commit hook + `yf pending close` CLI. Parses
|
|
273
|
+
* `closes PND-014 PND-022` (case-insensitive) and returns the IDs.
|
|
274
|
+
* Conservative: only matches uppercase PND or lowercase pnd
|
|
275
|
+
* preceded by a non-word boundary to avoid matching `PND-014` inside
|
|
276
|
+
* another token. */
|
|
277
|
+
export function parseCloseDirectives(commit_msg) {
|
|
278
|
+
const out = new Set();
|
|
279
|
+
const re = /\bclos(?:e|es|ed|ing)\s+(PND-\d+(?:\s+PND-\d+)*)\b/gi;
|
|
280
|
+
let m;
|
|
281
|
+
while ((m = re.exec(commit_msg)) !== null) {
|
|
282
|
+
const list = m[1];
|
|
283
|
+
if (!list)
|
|
284
|
+
continue;
|
|
285
|
+
for (const id of list.split(/\s+/)) {
|
|
286
|
+
const normalised = id.toUpperCase();
|
|
287
|
+
if (parsePendingId(normalised) !== null)
|
|
288
|
+
out.add(normalised);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return Array.from(out);
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/pending/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yujin Forge -- pending_registry types.
|
|
3
|
+
*
|
|
4
|
+
* The pending_registry is a per-project local store of open items
|
|
5
|
+
* (user-blocked decisions, autopilot-doable tasks, clarify-before-code
|
|
6
|
+
* design questions, bugs, infra deps). It exists to solve the
|
|
7
|
+
* "Sumi-after-compaction" problem: a fresh session that does NOT have
|
|
8
|
+
* the full chat history can still know what is actually pending,
|
|
9
|
+
* because the registry is injected into every system prompt as a
|
|
10
|
+
* compact section (similar to snapshotSection + globalLearnings).
|
|
11
|
+
*
|
|
12
|
+
* Design decisions (Pablo + Sumi, 2026-06-06):
|
|
13
|
+
*
|
|
14
|
+
* - Storage: **local-only** per project. No worker / D1. This
|
|
15
|
+
* aligns with BYOK: the user's pending items never leave their
|
|
16
|
+
* machine. (semantic_graph migrates to local in N6 for the same
|
|
17
|
+
* reason.)
|
|
18
|
+
* - Format: **JSON file** at
|
|
19
|
+
* `~/.yujin-forge/projects/<slug>/pending.json` with atomic
|
|
20
|
+
* writes (write to tempfile + rename). At <100 items per
|
|
21
|
+
* project the latency is irrelevant; the simplicity wins.
|
|
22
|
+
* - ID scheme: `PND-NNN` numerically increasing, zero-padded to
|
|
23
|
+
* 3 digits. Never reused. `closes PND-014` in commit messages
|
|
24
|
+
* auto-closes the item via lefthook post-commit hook.
|
|
25
|
+
* - Categories are CHECKed at write time: only one of the five
|
|
26
|
+
* allowed values goes in (typo-safe).
|
|
27
|
+
*
|
|
28
|
+
* ASCII-only.
|
|
29
|
+
*/
|
|
30
|
+
/** Allowed categories for a pending item. */
|
|
31
|
+
export type PendingCategory = 'user_blocked' | 'autopilot' | 'clarify' | 'bug' | 'infra';
|
|
32
|
+
/** Allowed close reasons. */
|
|
33
|
+
export type PendingCloseReason = 'shipped' | 'obsoleted' | 'duplicate' | 'rejected';
|
|
34
|
+
/** Optional blocker kind for category=user_blocked items. Helps the
|
|
35
|
+
* prompt grouping pick the right verb ("Pablo decision" vs "external
|
|
36
|
+
* account access" vs "service signup"). */
|
|
37
|
+
export type PendingBlockerKind = 'user_decision' | 'user_credential' | 'external_dep' | 'session_required';
|
|
38
|
+
/** One row of the local pending_registry. */
|
|
39
|
+
export interface PendingItem {
|
|
40
|
+
/** Stable identifier, e.g. "PND-014". Never reused. */
|
|
41
|
+
id: string;
|
|
42
|
+
/** Short title, one sentence. */
|
|
43
|
+
title: string;
|
|
44
|
+
/** Body in markdown. Optional (title-only items are valid). */
|
|
45
|
+
body?: string;
|
|
46
|
+
/** Category (CHECKed at write time). */
|
|
47
|
+
category: PendingCategory;
|
|
48
|
+
/** Optional blocker kind when category=user_blocked. */
|
|
49
|
+
blocker_kind?: PendingBlockerKind;
|
|
50
|
+
/** Free-text who/what is the blocker, e.g. "pablo", "cf_account",
|
|
51
|
+
* "polar". Useful for `yf pending list --blocker pablo`. */
|
|
52
|
+
blocker_who?: string;
|
|
53
|
+
/** 0..100 priority (0 = critical, 100 = nice-to-have).
|
|
54
|
+
* Default 50 when omitted. */
|
|
55
|
+
priority: number;
|
|
56
|
+
/** Epoch millis of creation. */
|
|
57
|
+
created_at: number;
|
|
58
|
+
/** Epoch millis of last edit. */
|
|
59
|
+
updated_at: number;
|
|
60
|
+
/** Epoch millis of close. NULL when still open. */
|
|
61
|
+
closed_at?: number;
|
|
62
|
+
/** Close reason (only set when closed_at is set). */
|
|
63
|
+
closed_reason?: PendingCloseReason;
|
|
64
|
+
/** Git commit SHA that closed this (only set when closed_at is set
|
|
65
|
+
* and the close came from a `closes PND-X` commit message). */
|
|
66
|
+
closed_by_commit?: string;
|
|
67
|
+
/** Optional pointer to the doc that originated the item, e.g.
|
|
68
|
+
* "docs/F101_MCP_BRIDGE.md". Used by the prompt section to help
|
|
69
|
+
* the model fetch context on demand. */
|
|
70
|
+
related_doc?: string;
|
|
71
|
+
/** Lifecycle history (dogfood 2026-06-10) -- el registro de la
|
|
72
|
+
* gestion del item: cada iteracion del ciclo evolutivo/correctivo
|
|
73
|
+
* deja una entrada aca. La de cierre (kind='resolution') resume
|
|
74
|
+
* como se resolvio. Append-only. */
|
|
75
|
+
history?: PendingHistoryEntry[];
|
|
76
|
+
/** PND-094 ext -- set when this item is a TASK of a workflow
|
|
77
|
+
* instance. Stages are NOT pendings; tasks are. An item with a
|
|
78
|
+
* `workflow` block is a "WFL" item. Ad-hoc corrective/evolutive
|
|
79
|
+
* tasks added during a workflow's development phase also carry this
|
|
80
|
+
* (with `ad_hoc: true`). */
|
|
81
|
+
workflow?: PendingWorkflowLink;
|
|
82
|
+
}
|
|
83
|
+
/** Links a pending (task) to its workflow instance + stage + order. */
|
|
84
|
+
export interface PendingWorkflowLink {
|
|
85
|
+
/** Workflow instance code, e.g. "WFL-001". */
|
|
86
|
+
code: string;
|
|
87
|
+
/** Workflow kind (denormalised for cheap filtering). */
|
|
88
|
+
kind: 'greenfield' | 'corrective' | 'evolutive';
|
|
89
|
+
/** Stage this task belongs to (stages are not pendings). */
|
|
90
|
+
stage_id: string;
|
|
91
|
+
/** Mandatory ordering within the instance (lower runs first). */
|
|
92
|
+
order: number;
|
|
93
|
+
/** True for a task the user added at discretion mid-workflow
|
|
94
|
+
* (not part of the instantiated canonical skeleton). */
|
|
95
|
+
ad_hoc?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/** Una entrada del history del item (gestion + ciclo iterativo). */
|
|
98
|
+
export interface PendingHistoryEntry {
|
|
99
|
+
/** Epoch millis. */
|
|
100
|
+
at: number;
|
|
101
|
+
/** Que paso en esta iteracion. */
|
|
102
|
+
note: string;
|
|
103
|
+
/** Tipo de iteracion. progress = avance; evolutive = mejora;
|
|
104
|
+
* corrective = arreglo; resolution = cierre. */
|
|
105
|
+
kind: 'progress' | 'evolutive' | 'corrective' | 'resolution';
|
|
106
|
+
}
|
|
107
|
+
/** Full on-disk shape. The version field lets future migrations
|
|
108
|
+
* understand the file without parsing every row. */
|
|
109
|
+
export interface PendingFile {
|
|
110
|
+
/** Schema version. Bump when the shape of PendingItem changes
|
|
111
|
+
* in a breaking way. */
|
|
112
|
+
version: 1;
|
|
113
|
+
/** The project this file belongs to, mirroring the directory it
|
|
114
|
+
* lives in. Defensive (catches misplaced files). */
|
|
115
|
+
project_slug: string;
|
|
116
|
+
/** Monotonic counter for next ID. Items themselves carry the
|
|
117
|
+
* formatted ID; this is the "next int" generator. */
|
|
118
|
+
next_id: number;
|
|
119
|
+
/** All items, open + closed. Closed items stay so the audit trail
|
|
120
|
+
* survives. */
|
|
121
|
+
items: PendingItem[];
|
|
122
|
+
}
|
|
123
|
+
/** Default factory for a fresh file. */
|
|
124
|
+
export declare function emptyPendingFile(project_slug: string): PendingFile;
|
|
125
|
+
/** Format a numeric id as "PND-NNN". */
|
|
126
|
+
export declare function formatPendingId(n: number): string;
|
|
127
|
+
/** Parse "PND-014" -> 14. Returns null on malformed. */
|
|
128
|
+
export declare function parsePendingId(id: string): number | null;
|
|
129
|
+
/** Compile-time exhaustiveness helper for category switches. */
|
|
130
|
+
export declare function assertNeverCategory(c: never): never;
|
|
131
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pending/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,SAAS,GACT,KAAK,GACL,OAAO,CAAC;AAEZ,6BAA6B;AAC7B,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,CAAC;AAEf;;4CAE4C;AAC5C,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,kBAAkB,CAAC;AAEvB,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,QAAQ,EAAE,eAAe,CAAC;IAC1B,wDAAwD;IACxD,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;iEAC6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;mCAC+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;oEACgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;6CAEyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;yCAGqC;IACrC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC;;;;iCAI6B;IAC7B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;IAChD,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;6DACyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;qDACiD;IACjD,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;CAC9D;AAED;qDACqD;AACrD,MAAM,WAAW,WAAW;IAC1B;6BACyB;IACzB,OAAO,EAAE,CAAC,CAAC;IACX;yDACqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB;0DACsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB;oBACgB;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAOlE;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxD;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yujin Forge -- pending_registry types.
|
|
3
|
+
*
|
|
4
|
+
* The pending_registry is a per-project local store of open items
|
|
5
|
+
* (user-blocked decisions, autopilot-doable tasks, clarify-before-code
|
|
6
|
+
* design questions, bugs, infra deps). It exists to solve the
|
|
7
|
+
* "Sumi-after-compaction" problem: a fresh session that does NOT have
|
|
8
|
+
* the full chat history can still know what is actually pending,
|
|
9
|
+
* because the registry is injected into every system prompt as a
|
|
10
|
+
* compact section (similar to snapshotSection + globalLearnings).
|
|
11
|
+
*
|
|
12
|
+
* Design decisions (Pablo + Sumi, 2026-06-06):
|
|
13
|
+
*
|
|
14
|
+
* - Storage: **local-only** per project. No worker / D1. This
|
|
15
|
+
* aligns with BYOK: the user's pending items never leave their
|
|
16
|
+
* machine. (semantic_graph migrates to local in N6 for the same
|
|
17
|
+
* reason.)
|
|
18
|
+
* - Format: **JSON file** at
|
|
19
|
+
* `~/.yujin-forge/projects/<slug>/pending.json` with atomic
|
|
20
|
+
* writes (write to tempfile + rename). At <100 items per
|
|
21
|
+
* project the latency is irrelevant; the simplicity wins.
|
|
22
|
+
* - ID scheme: `PND-NNN` numerically increasing, zero-padded to
|
|
23
|
+
* 3 digits. Never reused. `closes PND-014` in commit messages
|
|
24
|
+
* auto-closes the item via lefthook post-commit hook.
|
|
25
|
+
* - Categories are CHECKed at write time: only one of the five
|
|
26
|
+
* allowed values goes in (typo-safe).
|
|
27
|
+
*
|
|
28
|
+
* ASCII-only.
|
|
29
|
+
*/
|
|
30
|
+
/** Default factory for a fresh file. */
|
|
31
|
+
export function emptyPendingFile(project_slug) {
|
|
32
|
+
return {
|
|
33
|
+
version: 1,
|
|
34
|
+
project_slug,
|
|
35
|
+
next_id: 1,
|
|
36
|
+
items: [],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Format a numeric id as "PND-NNN". */
|
|
40
|
+
export function formatPendingId(n) {
|
|
41
|
+
if (n < 1 || !Number.isFinite(n) || Math.floor(n) !== n) {
|
|
42
|
+
throw new Error('formatPendingId: expected a positive integer, got ' + n);
|
|
43
|
+
}
|
|
44
|
+
return 'PND-' + String(n).padStart(3, '0');
|
|
45
|
+
}
|
|
46
|
+
/** Parse "PND-014" -> 14. Returns null on malformed. */
|
|
47
|
+
export function parsePendingId(id) {
|
|
48
|
+
const m = /^PND-(\d+)$/.exec(id);
|
|
49
|
+
if (!m)
|
|
50
|
+
return null;
|
|
51
|
+
const n = Number(m[1]);
|
|
52
|
+
if (!Number.isFinite(n) || n < 1)
|
|
53
|
+
return null;
|
|
54
|
+
return n;
|
|
55
|
+
}
|
|
56
|
+
/** Compile-time exhaustiveness helper for category switches. */
|
|
57
|
+
export function assertNeverCategory(c) {
|
|
58
|
+
throw new Error('unhandled PendingCategory: ' + JSON.stringify(c));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pending/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAmHH,wCAAwC;AACxC,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO;QACL,OAAO,EAAO,CAAC;QACf,YAAY;QACZ,OAAO,EAAO,CAAC;QACf,KAAK,EAAS,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,mBAAmB,CAAC,CAAQ;IAC1C,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Scenario, BrainConfig, ScenarioReport } from './types.js';
|
|
2
|
+
import type { FakeResponse } from './fake_brain.js';
|
|
3
|
+
export interface ABResult {
|
|
4
|
+
scenario_id: string;
|
|
5
|
+
brain_id: string;
|
|
6
|
+
a: ScenarioReport;
|
|
7
|
+
b: ScenarioReport;
|
|
8
|
+
/** Invariant pass count diff: b - a. Negative = regression. */
|
|
9
|
+
invariants_delta: number;
|
|
10
|
+
/** Token spend ratio: b / a. >1.25 considered too expensive. */
|
|
11
|
+
token_ratio: number;
|
|
12
|
+
/** True iff B is at least as good as A by all measures. */
|
|
13
|
+
promote_ok: boolean;
|
|
14
|
+
/** Human-readable reason (one short line). */
|
|
15
|
+
verdict: string;
|
|
16
|
+
}
|
|
17
|
+
interface ABScenarioExtension {
|
|
18
|
+
ab_test?: {
|
|
19
|
+
/** Override scenario.fake_responses for the A side. */
|
|
20
|
+
mode_a_responses?: FakeResponse[];
|
|
21
|
+
/** Override scenario.fake_responses for the B side. */
|
|
22
|
+
mode_b_responses?: FakeResponse[];
|
|
23
|
+
/** Optional: extra invariants only checked in mode B (e.g.
|
|
24
|
+
* "must call doctrine.discover before reasoning"). */
|
|
25
|
+
extra_invariants_b?: Scenario['invariants'];
|
|
26
|
+
/** Override the default token ratio cap (1.25). Use for
|
|
27
|
+
* "worst-case discovery" scenarios where B is expected to
|
|
28
|
+
* spend 2-3x in tokens but the population average is still
|
|
29
|
+
* a win because most turns do not trigger discovery. The
|
|
30
|
+
* promotion decision aggregates across all scenarios. */
|
|
31
|
+
token_ratio_cap?: number;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export declare function runAB(scenario: Scenario & ABScenarioExtension, brain: BrainConfig): Promise<ABResult | null>;
|
|
35
|
+
export interface ABMatrixResult {
|
|
36
|
+
generated_at: string;
|
|
37
|
+
results: ABResult[];
|
|
38
|
+
/** True iff every cell promote_ok=true. Gates promotion. */
|
|
39
|
+
promote_ok: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function runABMatrix(scenarios: Array<Scenario & ABScenarioExtension>, brains: BrainConfig[]): Promise<ABMatrixResult>;
|
|
42
|
+
export declare function renderABReport(matrix: ABMatrixResult): string;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=ab_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ab_runner.d.ts","sourceRoot":"","sources":["../../../src/qa/brain_matrix/ab_runner.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EACV,QAAQ,EAAE,WAAW,EAAE,cAAc,EACtC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,cAAc,CAAC;IAClB,CAAC,EAAE,cAAc,CAAC;IAClB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE;QACR,uDAAuD;QACvD,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;QAClC,uDAAuD;QACvD,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;QAClC;+DACuD;QACvD,kBAAkB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5C;;;;kEAI0D;QAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAQD,wBAAsB,KAAK,CACzB,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,EACxC,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA2E1B;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,mBAAmB,CAAC,EAChD,MAAM,EAAE,WAAW,EAAE,GACpB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiB7D"}
|