@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,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow definitions (PND-094).
|
|
3
|
+
*
|
|
4
|
+
* Forge formalises THREE workflow kinds instead of forcing the
|
|
5
|
+
* 18-step greenfield methodology onto every project:
|
|
6
|
+
*
|
|
7
|
+
* greenfield -- a new app from zero: the canonical 6 phases /
|
|
8
|
+
* 18 steps.
|
|
9
|
+
* corrective -- fix a defect in a LIVE project: compact, root-
|
|
10
|
+
* cause first, MUST refresh the affected docs.
|
|
11
|
+
* evolutive -- enhance/extend a LIVE project: compact, design
|
|
12
|
+
* first, MUST refresh the affected docs.
|
|
13
|
+
*
|
|
14
|
+
* These literals are the LOCAL definitions. They double as the
|
|
15
|
+
* offline fallback for the worker-synced canonical steps (see
|
|
16
|
+
* workflow_definitions_client.ts) -- same pattern as doctrines +
|
|
17
|
+
* lessons: worker is the source of truth, this is the fallback so
|
|
18
|
+
* Forge keeps working offline.
|
|
19
|
+
*
|
|
20
|
+
* Pablo's directives (2026-06-10): workflows are LOCAL per project,
|
|
21
|
+
* canonical steps come from the worker; Forge asks + decides
|
|
22
|
+
* corrective vs evolutive; each project logs the workflow evolution
|
|
23
|
+
* (stage + step start/end/content) to a doc.
|
|
24
|
+
*
|
|
25
|
+
* ASCII-only.
|
|
26
|
+
*/
|
|
27
|
+
/** Bump when the canonical structure changes so the worker sync can
|
|
28
|
+
* reconcile versions (worker payload carries its own version). */
|
|
29
|
+
export const WORKFLOW_DEFINITIONS_VERSION = 1;
|
|
30
|
+
/* ---------------- greenfield: 6 phases / 18 steps ---------------- */
|
|
31
|
+
const GREENFIELD = {
|
|
32
|
+
kind: 'greenfield',
|
|
33
|
+
title: 'Desarrollo de app nueva (6 fases / 18 pasos)',
|
|
34
|
+
whenToUse: 'El proyecto se construye desde cero (no hay implementacion previa en el directorio).',
|
|
35
|
+
stages: [
|
|
36
|
+
{
|
|
37
|
+
id: 'i-discovery', title: 'I. Triage e intencion',
|
|
38
|
+
purpose: 'Entender que se pide, el peso del proyecto y el terreno.',
|
|
39
|
+
steps: [
|
|
40
|
+
{ id: 'triage', title: 'Triage de tier', content: 'Clasificar simple/medium/full con su justificacion.' },
|
|
41
|
+
{ id: 'vault-inventory', title: 'Inventario del vault', content: 'Que secretos/credenciales necesita el proyecto.' },
|
|
42
|
+
{ id: 'intent', title: 'Intencion', content: 'Modo, plataforma, interaccion, distribucion. (Si hubiera legacy, auditarlo aca -- paso 3.5, no aplica en greenfield.)' },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'ii-clarification', title: 'II. Clarificacion',
|
|
47
|
+
purpose: 'Cerrar el funcional + los NFR + descomponer en bloques.',
|
|
48
|
+
steps: [
|
|
49
|
+
{ id: 'functional', title: 'Funcional', content: 'Persona, north-star, MVP.' },
|
|
50
|
+
{ id: 'nfr-quantitative', title: 'NFR cuantitativo', content: 'Volumetria, paralelismo, presupuesto.' },
|
|
51
|
+
{ id: 'nfr-structural', title: 'NFR estructural', content: 'Persistencia, middleware, workers.' },
|
|
52
|
+
{ id: 'nfr-governance', title: 'NFR governance', content: 'Compliance, secretos, RBAC.' },
|
|
53
|
+
{ id: 'nfr-operational', title: 'NFR operacional', content: 'i18n, a11y, monitoreo, navegadores.' },
|
|
54
|
+
{ id: 'blocks', title: 'Bloques', content: 'Descomponer el MVP en bloques implementables.' },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'iii-specification', title: 'III. Especificacion',
|
|
59
|
+
purpose: 'Producir los entregables: RFP, arquitectura, diseno.',
|
|
60
|
+
steps: [
|
|
61
|
+
{ id: 'rfp', title: 'RFP/SPEC', content: 'El contrato funcional del producto.' },
|
|
62
|
+
{ id: 'architecture', title: 'Arquitectura', content: 'Como se construye: piezas + conexiones.' },
|
|
63
|
+
{ id: 'design', title: 'Diseno de solucion', content: 'Decisiones de experiencia + interfaz.' },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'iv-approval', title: 'IV. Aprobacion',
|
|
68
|
+
purpose: 'El owner aprueba antes de construir.',
|
|
69
|
+
steps: [
|
|
70
|
+
{ id: 'gate-13', title: 'Gate 13', content: 'OK explicito del owner sobre RFP + arquitectura + diseno.', gate: true },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'v-construction', title: 'V. Construccion',
|
|
75
|
+
purpose: 'Bootstrap + desarrollo por bloques con tests (testing-policy: tests post-implementacion, scaffold gate verde).',
|
|
76
|
+
steps: [
|
|
77
|
+
{ id: 'bootstrap', title: 'Bootstrap', content: 'Stack, scaffolding, CI gates.' },
|
|
78
|
+
{ id: 'block-dev', title: 'Desarrollo por bloques', content: 'Implementar cada bloque (codigo + tests verdes antes de scaffold).' },
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'vi-delivery', title: 'VI. Entrega',
|
|
83
|
+
purpose: 'Manuales, despliegue, post-lanzamiento e iteracion.',
|
|
84
|
+
steps: [
|
|
85
|
+
{ id: 'manuals', title: 'Manuales', content: 'Generar DOS entregables derivados de TODAS las funcionalidades del codigo (no stubs): (1) MANUAL DE IMPLEMENTACION -- arquitectura, decisiones, stack, build/deploy y como extender, para que otro dev retome el proyecto; (2) MANUAL DE USUARIO completo -- cada feature real, paso a paso. Guardar en docs/ del proyecto.' },
|
|
86
|
+
{ id: 'deploy', title: 'Deploy', content: 'QA visual + publicar (npm/hosting) con los gates verdes.' },
|
|
87
|
+
{ id: 'postlaunch', title: 'Post-lanzamiento', content: 'Metricas, handoff, monitoreo post-deploy.' },
|
|
88
|
+
{ id: 'iterate', title: 'Iteracion', content: 'Cambios post-lanzamiento; aca el proyecto suele pasar al flujo correctivo/evolutivo.' },
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
/* ---------------- maintenance: corrective + evolutive ----------------
|
|
94
|
+
* Compact 6-stage flow for LIVE projects. The two kinds share the
|
|
95
|
+
* shape; stage II differs (root-cause vs design) and the triage
|
|
96
|
+
* records which kind it is. BOTH require the docs refresh stage. */
|
|
97
|
+
function maintenanceDef(kind) {
|
|
98
|
+
const corrective = kind === 'corrective';
|
|
99
|
+
return {
|
|
100
|
+
kind,
|
|
101
|
+
title: corrective
|
|
102
|
+
? 'Correctivo (arreglar un defecto en un proyecto vivo)'
|
|
103
|
+
: 'Evolutivo (extender/mejorar un proyecto vivo)',
|
|
104
|
+
whenToUse: corrective
|
|
105
|
+
? 'El proyecto ya existe y hay que ARREGLAR un comportamiento roto.'
|
|
106
|
+
: 'El proyecto ya existe y hay que AGREGAR o MEJORAR funcionalidad.',
|
|
107
|
+
stages: [
|
|
108
|
+
{
|
|
109
|
+
id: 'm-triage', title: 'I. Triage',
|
|
110
|
+
purpose: 'Clasificar el pedido y acotar el alcance.',
|
|
111
|
+
steps: [
|
|
112
|
+
{ id: 'classify', title: 'Clasificar', content: 'Confirmar correctivo vs evolutivo + el peso del cambio.' },
|
|
113
|
+
{ id: 'register', title: 'Registrar', content: 'Alta del pedido en el pending registry (request-lifecycle micro).' },
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'm-locate', title: corrective ? 'II. Reproducir + causa raiz' : 'II. Diseno del cambio',
|
|
118
|
+
purpose: corrective
|
|
119
|
+
? 'Reproducir el defecto y localizar la causa raiz en el codigo/grafo.'
|
|
120
|
+
: 'Decidir como encaja el cambio en la arquitectura existente.',
|
|
121
|
+
steps: corrective
|
|
122
|
+
? [
|
|
123
|
+
{ id: 'reproduce', title: 'Reproducir', content: 'Confirmar el bug con un caso minimo (idealmente un test rojo).' },
|
|
124
|
+
{ id: 'root-cause', title: 'Causa raiz', content: 'Leer codigo + grafo; identificar la causa, no el sintoma.' },
|
|
125
|
+
]
|
|
126
|
+
: [
|
|
127
|
+
{ id: 'fit', title: 'Encaje', content: 'Como se integra en la arquitectura/diseno actual (mini-spec).' },
|
|
128
|
+
{ id: 'impact', title: 'Impacto', content: 'Que modulos/docs/contratos toca el cambio.' },
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: 'm-change', title: 'III. Implementar',
|
|
133
|
+
purpose: 'Aplicar el cambio en el codigo.',
|
|
134
|
+
steps: [
|
|
135
|
+
{ id: 'implement', title: 'Implementar', content: corrective ? 'Aplicar la correccion sobre la causa raiz.' : 'Construir la mejora.' },
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: 'm-validate', title: 'IV. Validar (ciclo iterativo)',
|
|
140
|
+
purpose: 'Probar; si falla o se puede mejorar, corregir y re-validar hasta converger.',
|
|
141
|
+
steps: [
|
|
142
|
+
{ id: 'validate', title: 'Validar', content: 'Tests/checks verdes; el caso reproducido ahora pasa. Loguear cada iteracion (pending.note).' },
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'm-docs', title: 'V. Actualizar documentacion',
|
|
147
|
+
purpose: 'Mantener la docu al dia -- requisito explicito del flujo de mantenimiento.',
|
|
148
|
+
steps: [
|
|
149
|
+
{ id: 'docs', title: 'Refrescar docs', content: 'Actualizar README/ARCHITECTURE/DESIGN, el grafo, y las secciones afectadas del MANUAL DE IMPLEMENTACION + MANUAL DE USUARIO segun lo que cambio. No dejar deriva.' },
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: 'm-close', title: 'VI. Cerrar',
|
|
154
|
+
purpose: 'Entregar y dejar registro.',
|
|
155
|
+
steps: [
|
|
156
|
+
{ id: 'commit', title: 'Commit', content: 'Commit con el porque; referenciar el PND.' },
|
|
157
|
+
{ id: 'close', title: 'Cerrar + log', content: 'Cerrar el pending con resolution (history) y registrar la evolucion del wfl.' },
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const CORRECTIVE = maintenanceDef('corrective');
|
|
164
|
+
const EVOLUTIVE = maintenanceDef('evolutive');
|
|
165
|
+
export const WORKFLOW_DEFINITIONS = {
|
|
166
|
+
greenfield: GREENFIELD,
|
|
167
|
+
corrective: CORRECTIVE,
|
|
168
|
+
evolutive: EVOLUTIVE,
|
|
169
|
+
};
|
|
170
|
+
/** All step ids of a workflow, in order (stage by stage). */
|
|
171
|
+
export function workflowStepIds(kind) {
|
|
172
|
+
return WORKFLOW_DEFINITIONS[kind].stages.flatMap((s) => s.steps.map((st) => st.id));
|
|
173
|
+
}
|
|
174
|
+
/** Total step count for a workflow kind. */
|
|
175
|
+
export function workflowStepCount(kind) {
|
|
176
|
+
return workflowStepIds(kind).length;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/workflow/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type WorkflowDef, type WorkflowKind } from './definitions.js';
|
|
2
|
+
/** Resolve a workflow definition for a kind. Worker first (cached
|
|
3
|
+
* 5 min), local fallback on any miss/failure. `source` says where
|
|
4
|
+
* it came from so the caller can be honest about it. */
|
|
5
|
+
export declare function loadWorkflowDef(kind: WorkflowKind, opts?: {
|
|
6
|
+
fetchImpl?: typeof fetch;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
def: WorkflowDef;
|
|
9
|
+
version: number;
|
|
10
|
+
source: 'worker' | 'cache' | 'local';
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=definitions_client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions_client.d.ts","sourceRoot":"","sources":["../../src/workflow/definitions_client.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEL,KAAK,WAAW,EAAE,KAAK,YAAY,EACpC,MAAM,kBAAkB,CAAC;AAgC1B;;yDAEyD;AACzD,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACtC,OAAO,CAAC;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;CAAE,CAAC,CA6BtF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical workflow definitions client (PND-094 part b).
|
|
3
|
+
*
|
|
4
|
+
* Pablo's directive: workflows are LOCAL per project, but the
|
|
5
|
+
* CANONICAL steps are imported from the general worker. Same pattern
|
|
6
|
+
* as learnings_client.ts / the doctrines: worker is the source of
|
|
7
|
+
* truth, the local definitions (definitions.ts) are the offline
|
|
8
|
+
* fallback so Forge keeps working when the worker is unreachable.
|
|
9
|
+
*
|
|
10
|
+
* Today there is no worker endpoint yet, so every call resolves to
|
|
11
|
+
* the local fallback. The structure is in place: when the worker
|
|
12
|
+
* stands up GET /v1/workflows/<kind>, the same definitions just flow
|
|
13
|
+
* from there (versioned) without touching callers.
|
|
14
|
+
*
|
|
15
|
+
* Cache: ~/.yujin-forge/cache/workflows.json, 5-min TTL, same as
|
|
16
|
+
* lessons/doctrines.
|
|
17
|
+
*
|
|
18
|
+
* ASCII-only.
|
|
19
|
+
*/
|
|
20
|
+
import { promises as fs } from 'node:fs';
|
|
21
|
+
import path from 'node:path';
|
|
22
|
+
import { homedir } from 'node:os';
|
|
23
|
+
import { VERSION } from '../version.js';
|
|
24
|
+
import { WORKFLOW_DEFINITIONS, WORKFLOW_DEFINITIONS_VERSION, } from './definitions.js';
|
|
25
|
+
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
26
|
+
const STALE_TTL_MS = 24 * 60 * 60 * 1000;
|
|
27
|
+
function cacheFile() {
|
|
28
|
+
return path.join(homedir(), '.yujin-forge', 'cache', 'workflows.json');
|
|
29
|
+
}
|
|
30
|
+
function workerBaseUrl() {
|
|
31
|
+
return process.env.YUJIN_WORKER_URL
|
|
32
|
+
|| process.env.YF_WORKER_URL
|
|
33
|
+
|| 'https://yujin-hito4.yujinapp.workers.dev';
|
|
34
|
+
}
|
|
35
|
+
async function readCache() {
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(await fs.readFile(cacheFile(), 'utf-8'));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function writeCache(c) {
|
|
44
|
+
try {
|
|
45
|
+
await fs.mkdir(path.dirname(cacheFile()), { recursive: true });
|
|
46
|
+
await fs.writeFile(cacheFile(), JSON.stringify(c, null, 2), 'utf-8');
|
|
47
|
+
}
|
|
48
|
+
catch { /* best-effort */ }
|
|
49
|
+
}
|
|
50
|
+
/** Resolve a workflow definition for a kind. Worker first (cached
|
|
51
|
+
* 5 min), local fallback on any miss/failure. `source` says where
|
|
52
|
+
* it came from so the caller can be honest about it. */
|
|
53
|
+
export async function loadWorkflowDef(kind, opts = {}) {
|
|
54
|
+
const local = WORKFLOW_DEFINITIONS[kind];
|
|
55
|
+
const cached = await readCache();
|
|
56
|
+
const fresh = cached && Date.now() - cached.fetched_at < CACHE_TTL_MS;
|
|
57
|
+
if (fresh && cached.payload[kind]) {
|
|
58
|
+
return { def: cached.payload[kind].def, version: cached.payload[kind].version, source: 'cache' };
|
|
59
|
+
}
|
|
60
|
+
const fetchImpl = opts.fetchImpl ?? fetch;
|
|
61
|
+
const url = workerBaseUrl() + '/v1/workflows/' + kind;
|
|
62
|
+
try {
|
|
63
|
+
const r = await fetchImpl(url, { headers: { 'x-yf-cli-version': VERSION } });
|
|
64
|
+
if (r.ok) {
|
|
65
|
+
const body = await r.json();
|
|
66
|
+
if (body && body.ok && body.def && typeof body.version === 'number') {
|
|
67
|
+
const payload = (cached?.payload ?? {});
|
|
68
|
+
payload[kind] = { version: body.version, def: body.def };
|
|
69
|
+
await writeCache({ fetched_at: Date.now(), payload });
|
|
70
|
+
return { def: body.def, version: body.version, source: 'worker' };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch { /* fall through to fallback */ }
|
|
75
|
+
/* Worker unreachable / no endpoint yet -> stale cache, then local. */
|
|
76
|
+
if (cached && Date.now() - cached.fetched_at < STALE_TTL_MS && cached.payload[kind]) {
|
|
77
|
+
return { def: cached.payload[kind].def, version: cached.payload[kind].version, source: 'cache' };
|
|
78
|
+
}
|
|
79
|
+
return { def: local, version: WORKFLOW_DEFINITIONS_VERSION, source: 'local' };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=definitions_client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions_client.js","sourceRoot":"","sources":["../../src/workflow/definitions_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type WorkflowEvolutionEntry } from './state.js';
|
|
2
|
+
export declare const EVOLUTION_DOC_REL: string;
|
|
3
|
+
/** Append a workflow evolution entry to BOTH the project doc and the
|
|
4
|
+
* machine-readable mirror in yujin.forge.json. Returns the doc path
|
|
5
|
+
* (absolute) written. */
|
|
6
|
+
export declare function logWorkflowEvent(projectRoot: string, entry: WorkflowEvolutionEntry): Promise<{
|
|
7
|
+
doc_path: string;
|
|
8
|
+
entries: number;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=evolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evolution.d.ts","sourceRoot":"","sources":["../../src/workflow/evolution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA+B,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEtF,eAAO,MAAM,iBAAiB,QAAuC,CAAC;AAyBtE;;0BAE0B;AAC1B,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBhD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow evolution log (PND-094).
|
|
3
|
+
*
|
|
4
|
+
* Pablo's directive: each project documents the EVOLUTION of its
|
|
5
|
+
* workflow in a doc -- steps + stages with start / end / content.
|
|
6
|
+
*
|
|
7
|
+
* Two sinks, written together so they never drift:
|
|
8
|
+
* 1. docs/WORKFLOW_LOG.md -- human-readable markdown table,
|
|
9
|
+
* committed with the project (the auditable record).
|
|
10
|
+
* 2. yujin.forge.json workflow.evolution[] -- machine-readable
|
|
11
|
+
* mirror for the panel / tooling.
|
|
12
|
+
*
|
|
13
|
+
* ASCII-only.
|
|
14
|
+
*/
|
|
15
|
+
import { promises as fs } from 'node:fs';
|
|
16
|
+
import path from 'node:path';
|
|
17
|
+
import { readWorkflow, writeWorkflow } from './state.js';
|
|
18
|
+
export const EVOLUTION_DOC_REL = path.join('docs', 'WORKFLOW_LOG.md');
|
|
19
|
+
const DOC_HEADER = [
|
|
20
|
+
'# Workflow evolution',
|
|
21
|
+
'',
|
|
22
|
+
'Registro automatico de la evolucion del workflow del proyecto',
|
|
23
|
+
'(PND-094). Cada fila es una transicion: inicio/fin de etapa o de',
|
|
24
|
+
'paso, con su contenido. No editar a mano -- Forge lo mantiene.',
|
|
25
|
+
'',
|
|
26
|
+
'| Fecha (UTC) | Workflow | Etapa | Paso | Evento | Contenido |',
|
|
27
|
+
'|---|---|---|---|---|---|',
|
|
28
|
+
'',
|
|
29
|
+
].join('\n');
|
|
30
|
+
function cell(v) {
|
|
31
|
+
return (v ?? '').replace(/\|/g, '/').replace(/\n+/g, ' ').trim();
|
|
32
|
+
}
|
|
33
|
+
function row(e) {
|
|
34
|
+
return '| ' + [
|
|
35
|
+
cell(e.at), cell(e.kind), cell(e.stage_title || e.stage_id),
|
|
36
|
+
cell(e.step_title || e.step_id || '-'), cell(e.event), cell(e.content || ''),
|
|
37
|
+
].join(' | ') + ' |\n';
|
|
38
|
+
}
|
|
39
|
+
/** Append a workflow evolution entry to BOTH the project doc and the
|
|
40
|
+
* machine-readable mirror in yujin.forge.json. Returns the doc path
|
|
41
|
+
* (absolute) written. */
|
|
42
|
+
export async function logWorkflowEvent(projectRoot, entry) {
|
|
43
|
+
/* 1. Markdown doc. */
|
|
44
|
+
const docAbs = path.join(projectRoot, EVOLUTION_DOC_REL);
|
|
45
|
+
let existing = '';
|
|
46
|
+
try {
|
|
47
|
+
existing = await fs.readFile(docAbs, 'utf-8');
|
|
48
|
+
}
|
|
49
|
+
catch { /* new doc */ }
|
|
50
|
+
if (!existing.includes('| Fecha (UTC) |')) {
|
|
51
|
+
existing = DOC_HEADER;
|
|
52
|
+
}
|
|
53
|
+
await fs.mkdir(path.dirname(docAbs), { recursive: true });
|
|
54
|
+
await fs.writeFile(docAbs, existing.replace(/\n*$/, '\n') + row(entry), 'utf-8');
|
|
55
|
+
/* 2. Machine mirror. */
|
|
56
|
+
const wf = await readWorkflow(projectRoot);
|
|
57
|
+
const list = Array.isArray(wf.evolution) ? wf.evolution.slice() : [];
|
|
58
|
+
list.push(entry);
|
|
59
|
+
await writeWorkflow(projectRoot, { evolution: list });
|
|
60
|
+
return { doc_path: docAbs, entries: list.length };
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=evolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evolution.js","sourceRoot":"","sources":["../../src/workflow/evolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,aAAa,EAA+B,MAAM,YAAY,CAAC;AAEtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEtE,MAAM,UAAU,GAAG;IACjB,sBAAsB;IACtB,EAAE;IACF,+DAA+D;IAC/D,kEAAkE;IAClE,gEAAgE;IAChE,EAAE;IACF,gEAAgE;IAChE,2BAA2B;IAC3B,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,IAAI,CAAC,CAAqB;IACjC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,GAAG,CAAC,CAAyB;IACpC,OAAO,IAAI,GAAG;QACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC3D,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;KAC7E,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACzB,CAAC;AAED;;0BAE0B;AAC1B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,KAA6B;IAE7B,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACzD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1C,QAAQ,GAAG,UAAU,CAAC;IACxB,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjF,wBAAwB;IACxB,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/workflow/graph.ts -- Director sprint slice 7.
|
|
3
|
+
*
|
|
4
|
+
* Pure transformer that takes the current `WorkflowState` and
|
|
5
|
+
* returns a {nodes, edges} shape the panel SVG (and any future
|
|
6
|
+
* consumer: CLI ASCII rendering, audit log, BPMN export) can
|
|
7
|
+
* render without re-implementing the 18-step model.
|
|
8
|
+
*
|
|
9
|
+
* The transformer mirrors the 6-phase taxonomy from
|
|
10
|
+
* `phase_inference.ts`:
|
|
11
|
+
*
|
|
12
|
+
* phase_i -- triage / intent / audits
|
|
13
|
+
* phase_ii -- clarification (functional + 4 NFR + blocks plan)
|
|
14
|
+
* phase_iii -- specs (RFP + Arch + Design + approvals)
|
|
15
|
+
* phase_iv -- bootstrap
|
|
16
|
+
* phase_v -- block implementation (per blocks_progress)
|
|
17
|
+
* phase_vi -- deploy + postlaunch
|
|
18
|
+
*
|
|
19
|
+
* Status derivation:
|
|
20
|
+
* - active phase = `inferActivePhase()`
|
|
21
|
+
* - phases before active = 'done'
|
|
22
|
+
* - active phase = 'active' UNLESS the project is fully closed,
|
|
23
|
+
* in which case phase_vi flips from 'active' to 'done'.
|
|
24
|
+
* - phases after active = 'pending'
|
|
25
|
+
*
|
|
26
|
+
* Step counts are granular per phase (4/6/6/1/N/2) so callers
|
|
27
|
+
* can render a progress chip. `step_done_count` never exceeds
|
|
28
|
+
* `step_count`. Phase V step count defaults to 1 when no blocks
|
|
29
|
+
* have been planned yet (placeholder slot for UI sizing).
|
|
30
|
+
*
|
|
31
|
+
* Labels are i18n keys (`workflow.phase.<phase>`) -- never raw
|
|
32
|
+
* text. The consumer resolves them at render time per locale.
|
|
33
|
+
*
|
|
34
|
+
* ASCII-only.
|
|
35
|
+
*/
|
|
36
|
+
import type { WorkflowState } from './state.js';
|
|
37
|
+
import { type WorkflowPhase } from './phase_inference.js';
|
|
38
|
+
export type WorkflowGraphNodeStatus = 'pending' | 'active' | 'done';
|
|
39
|
+
export interface WorkflowGraphNode {
|
|
40
|
+
id: WorkflowPhase;
|
|
41
|
+
/** i18n catalog key -- `workflow.phase.i`..`workflow.phase.vi`. */
|
|
42
|
+
label_i18n_key: string;
|
|
43
|
+
status: WorkflowGraphNodeStatus;
|
|
44
|
+
/** Total atomic steps inside the phase (constant per phase, or
|
|
45
|
+
* derived for phase_v from blocks_progress.length). */
|
|
46
|
+
step_count: number;
|
|
47
|
+
/** How many of those steps have a recorded closure milestone. */
|
|
48
|
+
step_done_count: number;
|
|
49
|
+
}
|
|
50
|
+
export interface WorkflowGraphEdge {
|
|
51
|
+
from: WorkflowPhase;
|
|
52
|
+
to: WorkflowPhase;
|
|
53
|
+
}
|
|
54
|
+
export interface WorkflowGraph {
|
|
55
|
+
nodes: WorkflowGraphNode[];
|
|
56
|
+
edges: WorkflowGraphEdge[];
|
|
57
|
+
}
|
|
58
|
+
export declare function buildWorkflowGraph(state: WorkflowState | undefined | null): WorkflowGraph;
|
|
59
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/workflow/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAiB,aAAa,CAAC;IACjC,mEAAmE;IACnE,cAAc,EAAK,MAAM,CAAC;IAC1B,MAAM,EAAa,uBAAuB,CAAC;IAC3C;4DACwD;IACxD,UAAU,EAAS,MAAM,CAAC;IAC1B,iEAAiE;IACjE,eAAe,EAAI,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAI,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAeD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,CAiCzF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { inferActivePhase } from './phase_inference.js';
|
|
2
|
+
const PHASES = [
|
|
3
|
+
'phase_i', 'phase_ii', 'phase_iii', 'phase_iv', 'phase_v', 'phase_vi',
|
|
4
|
+
];
|
|
5
|
+
const PHASE_LABEL_KEYS = {
|
|
6
|
+
phase_i: 'workflow.phase.i',
|
|
7
|
+
phase_ii: 'workflow.phase.ii',
|
|
8
|
+
phase_iii: 'workflow.phase.iii',
|
|
9
|
+
phase_iv: 'workflow.phase.iv',
|
|
10
|
+
phase_v: 'workflow.phase.v',
|
|
11
|
+
phase_vi: 'workflow.phase.vi',
|
|
12
|
+
};
|
|
13
|
+
export function buildWorkflowGraph(state) {
|
|
14
|
+
const wf = state || {};
|
|
15
|
+
const active = inferActivePhase(wf);
|
|
16
|
+
const allDone = isFullyClosed(wf);
|
|
17
|
+
const nodes = PHASES.map((phase) => {
|
|
18
|
+
const idx = PHASES.indexOf(phase);
|
|
19
|
+
const activeIdx = PHASES.indexOf(active);
|
|
20
|
+
const counts = countSteps(phase, wf);
|
|
21
|
+
let status;
|
|
22
|
+
if (allDone) {
|
|
23
|
+
status = 'done';
|
|
24
|
+
}
|
|
25
|
+
else if (idx < activeIdx) {
|
|
26
|
+
status = 'done';
|
|
27
|
+
}
|
|
28
|
+
else if (idx === activeIdx) {
|
|
29
|
+
status = 'active';
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
status = 'pending';
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
id: phase,
|
|
36
|
+
label_i18n_key: PHASE_LABEL_KEYS[phase],
|
|
37
|
+
status,
|
|
38
|
+
step_count: counts.total,
|
|
39
|
+
step_done_count: counts.done,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
const edges = [];
|
|
43
|
+
for (let i = 0; i < PHASES.length - 1; i++) {
|
|
44
|
+
edges.push({ from: PHASES[i], to: PHASES[i + 1] });
|
|
45
|
+
}
|
|
46
|
+
return { nodes, edges };
|
|
47
|
+
}
|
|
48
|
+
function countSteps(phase, wf) {
|
|
49
|
+
switch (phase) {
|
|
50
|
+
case 'phase_i': {
|
|
51
|
+
const total = 4;
|
|
52
|
+
let done = 0;
|
|
53
|
+
if (wf.tier)
|
|
54
|
+
done += 1;
|
|
55
|
+
if (wf.intent?.decided_at)
|
|
56
|
+
done += 1;
|
|
57
|
+
if (wf.legacy_audit?.ran_at)
|
|
58
|
+
done += 1;
|
|
59
|
+
if (wf.vault_inventory?.ran_at)
|
|
60
|
+
done += 1;
|
|
61
|
+
return { total, done };
|
|
62
|
+
}
|
|
63
|
+
case 'phase_ii': {
|
|
64
|
+
const total = 6;
|
|
65
|
+
const c = wf.clarification || {};
|
|
66
|
+
let done = 0;
|
|
67
|
+
const rounds = [
|
|
68
|
+
c.functional, c.nfr_quantitative, c.nfr_structural,
|
|
69
|
+
c.nfr_governance, c.nfr_operational,
|
|
70
|
+
];
|
|
71
|
+
for (const r of rounds) {
|
|
72
|
+
if (r && r.done_at)
|
|
73
|
+
done += 1;
|
|
74
|
+
}
|
|
75
|
+
if (c.blocks?.done_at)
|
|
76
|
+
done += 1;
|
|
77
|
+
return { total, done };
|
|
78
|
+
}
|
|
79
|
+
case 'phase_iii': {
|
|
80
|
+
const total = 6;
|
|
81
|
+
const s = wf.specs || {};
|
|
82
|
+
const a = wf.approvals || {};
|
|
83
|
+
let done = 0;
|
|
84
|
+
if (s.rfp?.done_at)
|
|
85
|
+
done += 1;
|
|
86
|
+
if (s.arch?.done_at)
|
|
87
|
+
done += 1;
|
|
88
|
+
if (s.design?.done_at)
|
|
89
|
+
done += 1;
|
|
90
|
+
if (a.rfp?.approved_at)
|
|
91
|
+
done += 1;
|
|
92
|
+
if (a.arch?.approved_at)
|
|
93
|
+
done += 1;
|
|
94
|
+
if (a.design?.approved_at)
|
|
95
|
+
done += 1;
|
|
96
|
+
return { total, done };
|
|
97
|
+
}
|
|
98
|
+
case 'phase_iv': {
|
|
99
|
+
const total = 1;
|
|
100
|
+
const done = wf.bootstrap?.done_at ? 1 : 0;
|
|
101
|
+
return { total, done };
|
|
102
|
+
}
|
|
103
|
+
case 'phase_v': {
|
|
104
|
+
const blocks = wf.blocks_progress || [];
|
|
105
|
+
if (blocks.length === 0) {
|
|
106
|
+
/* Placeholder slot so the UI reserves a chip for the phase
|
|
107
|
+
* even before block planning materialises. */
|
|
108
|
+
return { total: 1, done: 0 };
|
|
109
|
+
}
|
|
110
|
+
const done = blocks.filter((b) => b.status === 'green').length;
|
|
111
|
+
return { total: blocks.length, done };
|
|
112
|
+
}
|
|
113
|
+
case 'phase_vi': {
|
|
114
|
+
const total = 2;
|
|
115
|
+
let done = 0;
|
|
116
|
+
if (wf.deploy?.done_at)
|
|
117
|
+
done += 1;
|
|
118
|
+
if (wf.postlaunch?.manual_at)
|
|
119
|
+
done += 1;
|
|
120
|
+
return { total, done };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function isFullyClosed(wf) {
|
|
125
|
+
/* Project is fully closed when phase_vi has its closure
|
|
126
|
+
* milestones (deploy.done_at + postlaunch.manual_at). Mirrors
|
|
127
|
+
* the inferActivePhase return-of-phase_vi terminal case. */
|
|
128
|
+
const deployed = !!wf.deploy?.done_at;
|
|
129
|
+
const postlaunchD = !!wf.postlaunch?.manual_at;
|
|
130
|
+
if (!deployed || !postlaunchD)
|
|
131
|
+
return false;
|
|
132
|
+
/* Also require everything upstream so a stray deploy on top of
|
|
133
|
+
* an unfinished phase_v does not falsely mark the project done. */
|
|
134
|
+
const upstreamActive = inferActivePhase(wf);
|
|
135
|
+
return upstreamActive === 'phase_vi';
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/workflow/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { WorkflowKind } from './definitions.js';
|
|
2
|
+
export interface WorkflowInstanceStage {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
}
|
|
6
|
+
export interface WorkflowInstance {
|
|
7
|
+
/** Auto code, e.g. "WFL-001". Never reused. */
|
|
8
|
+
code: string;
|
|
9
|
+
/** Human name, derived from the request or set by the user. */
|
|
10
|
+
name: string;
|
|
11
|
+
kind: WorkflowKind;
|
|
12
|
+
status: 'open' | 'closed';
|
|
13
|
+
opened_at: number;
|
|
14
|
+
closed_at?: number;
|
|
15
|
+
/** Stage skeleton for the card view (tasks are pendings, not here). */
|
|
16
|
+
stages: WorkflowInstanceStage[];
|
|
17
|
+
}
|
|
18
|
+
export interface WorkflowInstancesFile {
|
|
19
|
+
version: 1;
|
|
20
|
+
project_slug: string;
|
|
21
|
+
next_code: number;
|
|
22
|
+
instances: WorkflowInstance[];
|
|
23
|
+
}
|
|
24
|
+
export declare function emptyInstancesFile(slug: string): WorkflowInstancesFile;
|
|
25
|
+
export declare function formatWflCode(n: number): string;
|
|
26
|
+
export declare function readInstances(slug: string): Promise<WorkflowInstancesFile>;
|
|
27
|
+
export declare function writeInstances(file: WorkflowInstancesFile): Promise<void>;
|
|
28
|
+
export interface CreateInstanceInput {
|
|
29
|
+
kind: WorkflowKind;
|
|
30
|
+
name: string;
|
|
31
|
+
stages: WorkflowInstanceStage[];
|
|
32
|
+
}
|
|
33
|
+
export declare function createInstance(slug: string, input: CreateInstanceInput): Promise<WorkflowInstance>;
|
|
34
|
+
export declare function findInstance(slug: string, code: string): Promise<WorkflowInstance | undefined>;
|
|
35
|
+
export declare function listInstances(slug: string, status?: 'open' | 'closed' | 'all'): Promise<WorkflowInstance[]>;
|
|
36
|
+
/** Find an OPEN instance by name (case-insensitive) -- used to attach a
|
|
37
|
+
* new request to an existing initiative instead of opening a duplicate. */
|
|
38
|
+
export declare function findOpenByName(slug: string, name: string): Promise<WorkflowInstance | undefined>;
|
|
39
|
+
export declare function closeInstance(slug: string, code: string): Promise<WorkflowInstance | undefined>;
|
|
40
|
+
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/workflow/instances.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAsBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAEtE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAchF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAcxG;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAIpG;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAOjH;AAED;4EAC4E;AAC5E,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAKtG;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CASrG"}
|