@nac3/forge-cli 0.2.0-alpha.9 → 0.2.1-alpha.60
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 +16 -1
- 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 +295 -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 +108 -0
- package/dist/agents/runner.d.ts.map +1 -0
- package/dist/agents/runner.js +174 -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 +101 -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 +101 -2
- package/dist/bin/yf.js.map +1 -1
- package/dist/chat/claude.d.ts +89 -1
- package/dist/chat/claude.d.ts.map +1 -1
- package/dist/chat/claude.js +170 -30
- package/dist/chat/claude.js.map +1 -1
- package/dist/chat/claude_cli.d.ts +145 -0
- package/dist/chat/claude_cli.d.ts.map +1 -0
- package/dist/chat/claude_cli.js +598 -0
- package/dist/chat/claude_cli.js.map +1 -0
- package/dist/chat/completion_hallucination_detector.d.ts +40 -0
- package/dist/chat/completion_hallucination_detector.d.ts.map +1 -0
- package/dist/chat/completion_hallucination_detector.js +96 -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 +117 -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 +9640 -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 +138 -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 +98 -2
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +3678 -345
- package/dist/chat/server.js.map +1 -1
- 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/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 +239 -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 +162 -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 +169 -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 +887 -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 +58 -0
- package/dist/chat/tools/shell.d.ts.map +1 -0
- package/dist/chat/tools/shell.js +253 -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 +55 -0
- package/dist/chat/tools/workflow.d.ts.map +1 -0
- package/dist/chat/tools/workflow.js +463 -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 +447 -16
- package/dist/chat/tools.js.map +1 -1
- 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 +209 -17
- 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 +18 -0
- package/dist/commands/keys_setup.d.ts.map +1 -1
- package/dist/commands/keys_setup.js +225 -11
- 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 +56 -1
- 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 +163 -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 +27 -24
- 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/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 +341 -0
- package/dist/commands/pending.js.map +1 -0
- 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/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/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 +50 -0
- package/dist/core/brain_config.d.ts.map +1 -0
- package/dist/core/brain_config.js +142 -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/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 +589 -0
- package/dist/core/cost_router.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 +14 -9
- 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 +76 -0
- package/dist/core/limits_config.d.ts.map +1 -0
- package/dist/core/limits_config.js +297 -0
- package/dist/core/limits_config.js.map +1 -0
- package/dist/core/pairing.d.ts +1 -0
- package/dist/core/pairing.d.ts.map +1 -1
- package/dist/core/pairing.js +23 -12
- 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 +267 -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 +169 -0
- package/dist/deploy/cloudflare.js.map +1 -0
- package/dist/design/yujin_design_resolver.d.ts +77 -0
- package/dist/design/yujin_design_resolver.d.ts.map +1 -0
- package/dist/design/yujin_design_resolver.js +113 -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 +120 -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 +102 -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 +68 -0
- package/dist/docs/doctrine/verification-honesty.md +95 -0
- package/dist/docs/doctrine/workflow-kinds.md +52 -0
- package/dist/docs/doctrine/workflow-phases.md +108 -0
- package/dist/docs/doctrine/workflow.md +58 -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/hito4_client.d.ts +7 -0
- package/dist/license/hito4_client.d.ts.map +1 -1
- package/dist/license/hito4_client.js +52 -2
- 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 +189 -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 +251 -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/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-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 +2461 -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 +159 -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/pending/store.d.ts +72 -0
- package/dist/pending/store.d.ts.map +1 -0
- package/dist/pending/store.js +274 -0
- package/dist/pending/store.js.map +1 -0
- package/dist/pending/types.d.ts +111 -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/semantic_graph/ast_extract.d.ts +15 -0
- package/dist/semantic_graph/ast_extract.d.ts.map +1 -0
- package/dist/semantic_graph/ast_extract.js +162 -0
- package/dist/semantic_graph/ast_extract.js.map +1 -0
- package/dist/semantic_graph/derive.d.ts +36 -0
- package/dist/semantic_graph/derive.d.ts.map +1 -0
- package/dist/semantic_graph/derive.js +285 -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 +44 -0
- package/dist/semantic_graph/store.d.ts.map +1 -0
- package/dist/semantic_graph/store.js +360 -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 +292 -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/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 +14 -1
- package/dist/vault/store.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- 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 +152 -26
- 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/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/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 +120 -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 +102 -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 +68 -0
- package/docs/doctrine/verification-honesty.md +95 -0
- package/docs/doctrine/workflow-kinds.md +52 -0
- package/docs/doctrine/workflow-phases.md +108 -0
- package/docs/doctrine/workflow.md +58 -0
- package/docs/doctrine/yf-commands.md +49 -0
- package/package.json +19 -3
- package/src/i18n/catalogs/ar.json +134 -10
- package/src/i18n/catalogs/de.json +134 -10
- package/src/i18n/catalogs/en.json +134 -10
- package/src/i18n/catalogs/es.json +134 -10
- package/src/i18n/catalogs/fr.json +134 -10
- package/src/i18n/catalogs/hi.json +134 -10
- package/src/i18n/catalogs/it.json +134 -10
- package/src/i18n/catalogs/ja.json +134 -10
- package/src/i18n/catalogs/pt.json +134 -10
- package/src/i18n/catalogs/zh.json +134 -10
- 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,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yujin Forge -- wiring registry types.
|
|
3
|
+
*
|
|
4
|
+
* Per-project record of CI/CD + deploy + publish + release hooks
|
|
5
|
+
* that Forge has DETECTED automatically by scanning the workspace.
|
|
6
|
+
* The point is that Forge does not forget what wiring a project
|
|
7
|
+
* already has -- when the user says "deploy this", Forge sees
|
|
8
|
+
* "this project deploys via GHA on push to main" and stops itself
|
|
9
|
+
* from running a redundant local script.
|
|
10
|
+
*
|
|
11
|
+
* Store: one JSON file per project at
|
|
12
|
+
* ~/.yujin-forge/projects/<slug>/wiring.json
|
|
13
|
+
*
|
|
14
|
+
* Same pattern as pending registry (PND-159). User annotations
|
|
15
|
+
* persist across re-discovers so "this workflow is broken,
|
|
16
|
+
* ignore it" survives a re-scan.
|
|
17
|
+
*
|
|
18
|
+
* ASCII-only.
|
|
19
|
+
*/
|
|
20
|
+
export declare const WIRING_FILE_VERSION = 1;
|
|
21
|
+
/** Categories of automation Forge detects. Add new kinds here when
|
|
22
|
+
* you add a new scanner in src/wiring/discover.ts. */
|
|
23
|
+
export type WiringKind = 'ci_deploy' | 'ci_publish' | 'ci_release' | 'edge_deploy' | 'mobile_distribution' | 'static_hosting' | 'npm_script_deploy' | 'docker_build';
|
|
24
|
+
/** Triggers that fire a hook. */
|
|
25
|
+
export type WiringTrigger = 'push:main' | 'push:master' | 'push:any' | 'tag:v*' | 'tag:release-*' | 'pr:opened' | 'pr:merged' | 'manual' | 'schedule' | 'unknown';
|
|
26
|
+
export interface WiringHook {
|
|
27
|
+
/** Stable id, e.g. 'gha:deploy.yml' or 'npm:scripts.publish' or
|
|
28
|
+
* 'eas:apps/forge-mobile:submit'. */
|
|
29
|
+
id: string;
|
|
30
|
+
kind: WiringKind;
|
|
31
|
+
trigger: WiringTrigger;
|
|
32
|
+
/** Free-text destination: "godaddy:yujin.app", "npm:@nac3/forge-cli",
|
|
33
|
+
* "cloudflare:yujin-hito4", "play:internal", etc. */
|
|
34
|
+
destination: string;
|
|
35
|
+
/** Path relative to project root where the hook is defined. */
|
|
36
|
+
source_file: string;
|
|
37
|
+
/** Concrete commands a user can run to trigger this hook manually.
|
|
38
|
+
* Surfaced into the system prompt so Forge tells the user "git
|
|
39
|
+
* push origin main" rather than re-running a deploy script. */
|
|
40
|
+
auto_runs_on: string[];
|
|
41
|
+
/** Optional free-text the user added via `yf wiring annotate`. */
|
|
42
|
+
user_annotation?: string;
|
|
43
|
+
/** When true, scanner found it but user said "ignore this". */
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface WiringFile {
|
|
47
|
+
version: typeof WIRING_FILE_VERSION;
|
|
48
|
+
project_slug: string;
|
|
49
|
+
/** ISO 8601 timestamp of the last scanner pass. */
|
|
50
|
+
scanned_at: string;
|
|
51
|
+
/** Hash of the mtimes of every file the scanner considered, so a
|
|
52
|
+
* cheap re-scan can short-circuit when nothing relevant changed. */
|
|
53
|
+
scanned_sha: string;
|
|
54
|
+
hooks: WiringHook[];
|
|
55
|
+
}
|
|
56
|
+
export declare function emptyWiringFile(project_slug: string): WiringFile;
|
|
57
|
+
/** Heuristic checks the caller can run before invoking discover so
|
|
58
|
+
* the system prompt does not advertise wiring when none was
|
|
59
|
+
* detected. */
|
|
60
|
+
export declare function hasActiveHooks(file: WiringFile): boolean;
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wiring/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;uDACuD;AACvD,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,GACnB,cAAc,CAAC;AAEnB,iCAAiC;AACjC,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,aAAa,GACb,UAAU,GACV,QAAQ,GACR,eAAe,GACf,WAAW,GACX,WAAW,GACX,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB;0CACsC;IACtC,EAAE,EAAe,MAAM,CAAC;IACxB,IAAI,EAAa,UAAU,CAAC;IAC5B,OAAO,EAAU,aAAa,CAAC;IAC/B;0DACsD;IACtD,WAAW,EAAM,MAAM,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAM,MAAM,CAAC;IACxB;;oEAEgE;IAChE,YAAY,EAAK,MAAM,EAAE,CAAC;IAC1B,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,EAAS,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAS,OAAO,mBAAmB,CAAC;IAC3C,YAAY,EAAI,MAAM,CAAC;IACvB,mDAAmD;IACnD,UAAU,EAAM,MAAM,CAAC;IACvB;yEACqE;IACrE,WAAW,EAAK,MAAM,CAAC;IACvB,KAAK,EAAW,UAAU,EAAE,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAQhE;AAED;;gBAEgB;AAChB,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAExD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yujin Forge -- wiring registry types.
|
|
3
|
+
*
|
|
4
|
+
* Per-project record of CI/CD + deploy + publish + release hooks
|
|
5
|
+
* that Forge has DETECTED automatically by scanning the workspace.
|
|
6
|
+
* The point is that Forge does not forget what wiring a project
|
|
7
|
+
* already has -- when the user says "deploy this", Forge sees
|
|
8
|
+
* "this project deploys via GHA on push to main" and stops itself
|
|
9
|
+
* from running a redundant local script.
|
|
10
|
+
*
|
|
11
|
+
* Store: one JSON file per project at
|
|
12
|
+
* ~/.yujin-forge/projects/<slug>/wiring.json
|
|
13
|
+
*
|
|
14
|
+
* Same pattern as pending registry (PND-159). User annotations
|
|
15
|
+
* persist across re-discovers so "this workflow is broken,
|
|
16
|
+
* ignore it" survives a re-scan.
|
|
17
|
+
*
|
|
18
|
+
* ASCII-only.
|
|
19
|
+
*/
|
|
20
|
+
export const WIRING_FILE_VERSION = 1;
|
|
21
|
+
export function emptyWiringFile(project_slug) {
|
|
22
|
+
return {
|
|
23
|
+
version: WIRING_FILE_VERSION,
|
|
24
|
+
project_slug,
|
|
25
|
+
scanned_at: new Date(0).toISOString(),
|
|
26
|
+
scanned_sha: '',
|
|
27
|
+
hooks: [],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Heuristic checks the caller can run before invoking discover so
|
|
31
|
+
* the system prompt does not advertise wiring when none was
|
|
32
|
+
* detected. */
|
|
33
|
+
export function hasActiveHooks(file) {
|
|
34
|
+
return file.hooks.some((h) => !h.disabled);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wiring/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AA2DrC,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,YAAY;QACZ,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;gBAEgB;AAChB,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
export type WorkflowKind = 'greenfield' | 'corrective' | 'evolutive';
|
|
28
|
+
export interface WorkflowStepDef {
|
|
29
|
+
/** Stable id, kebab-case, unique within the workflow. */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Short human title. */
|
|
32
|
+
title: string;
|
|
33
|
+
/** What this step produces / the question it answers. */
|
|
34
|
+
content: string;
|
|
35
|
+
/** True when this step needs the owner's explicit OK (a gate). */
|
|
36
|
+
gate?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface WorkflowStageDef {
|
|
39
|
+
id: string;
|
|
40
|
+
title: string;
|
|
41
|
+
/** Why this stage exists. */
|
|
42
|
+
purpose: string;
|
|
43
|
+
steps: WorkflowStepDef[];
|
|
44
|
+
}
|
|
45
|
+
export interface WorkflowDef {
|
|
46
|
+
kind: WorkflowKind;
|
|
47
|
+
title: string;
|
|
48
|
+
/** One line on when Forge should pick this workflow. */
|
|
49
|
+
whenToUse: string;
|
|
50
|
+
stages: WorkflowStageDef[];
|
|
51
|
+
}
|
|
52
|
+
/** Bump when the canonical structure changes so the worker sync can
|
|
53
|
+
* reconcile versions (worker payload carries its own version). */
|
|
54
|
+
export declare const WORKFLOW_DEFINITIONS_VERSION = 1;
|
|
55
|
+
export declare const WORKFLOW_DEFINITIONS: Record<WorkflowKind, WorkflowDef>;
|
|
56
|
+
/** All step ids of a workflow, in order (stage by stage). */
|
|
57
|
+
export declare function workflowStepIds(kind: WorkflowKind): string[];
|
|
58
|
+
/** Total step count for a workflow kind. */
|
|
59
|
+
export declare function workflowStepCount(kind: WorkflowKind): number;
|
|
60
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/workflow/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED;mEACmE;AACnE,eAAO,MAAM,4BAA4B,IAAI,CAAC;AA8I9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,CAIlE,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAE5D;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE5D"}
|
|
@@ -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"}
|