raptor-aios 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/LICENSE +21 -0
- package/README.md +315 -0
- package/bin/raptor.js +5 -0
- package/dist/_core/dist/agents/adapters/antigravity.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/antigravity.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/antigravity.js +72 -0
- package/dist/_core/dist/agents/adapters/antigravity.js.map +1 -0
- package/dist/_core/dist/agents/adapters/claude-code.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/claude-code.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/claude-code.js +71 -0
- package/dist/_core/dist/agents/adapters/claude-code.js.map +1 -0
- package/dist/_core/dist/agents/adapters/codex.d.ts +12 -0
- package/dist/_core/dist/agents/adapters/codex.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/codex.js +69 -0
- package/dist/_core/dist/agents/adapters/codex.js.map +1 -0
- package/dist/_core/dist/agents/adapters/copilot.d.ts +12 -0
- package/dist/_core/dist/agents/adapters/copilot.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/copilot.js +71 -0
- package/dist/_core/dist/agents/adapters/copilot.js.map +1 -0
- package/dist/_core/dist/agents/adapters/cursor.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/cursor.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/cursor.js +62 -0
- package/dist/_core/dist/agents/adapters/cursor.js.map +1 -0
- package/dist/_core/dist/agents/adapters/gemini.d.ts +11 -0
- package/dist/_core/dist/agents/adapters/gemini.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/gemini.js +68 -0
- package/dist/_core/dist/agents/adapters/gemini.js.map +1 -0
- package/dist/_core/dist/agents/adapters/human.d.ts +10 -0
- package/dist/_core/dist/agents/adapters/human.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/human.js +48 -0
- package/dist/_core/dist/agents/adapters/human.js.map +1 -0
- package/dist/_core/dist/agents/artifact-watcher.d.ts +86 -0
- package/dist/_core/dist/agents/artifact-watcher.d.ts.map +1 -0
- package/dist/_core/dist/agents/artifact-watcher.js +214 -0
- package/dist/_core/dist/agents/artifact-watcher.js.map +1 -0
- package/dist/_core/dist/agents/backup.d.ts +69 -0
- package/dist/_core/dist/agents/backup.d.ts.map +1 -0
- package/dist/_core/dist/agents/backup.js +107 -0
- package/dist/_core/dist/agents/backup.js.map +1 -0
- package/dist/_core/dist/agents/config.d.ts +36 -0
- package/dist/_core/dist/agents/config.d.ts.map +1 -0
- package/dist/_core/dist/agents/config.js +270 -0
- package/dist/_core/dist/agents/config.js.map +1 -0
- package/dist/_core/dist/agents/context-file.d.ts +35 -0
- package/dist/_core/dist/agents/context-file.d.ts.map +1 -0
- package/dist/_core/dist/agents/context-file.js +106 -0
- package/dist/_core/dist/agents/context-file.js.map +1 -0
- package/dist/_core/dist/agents/handoff.d.ts +57 -0
- package/dist/_core/dist/agents/handoff.d.ts.map +1 -0
- package/dist/_core/dist/agents/handoff.js +71 -0
- package/dist/_core/dist/agents/handoff.js.map +1 -0
- package/dist/_core/dist/agents/index.d.ts +32 -0
- package/dist/_core/dist/agents/index.d.ts.map +1 -0
- package/dist/_core/dist/agents/index.js +37 -0
- package/dist/_core/dist/agents/index.js.map +1 -0
- package/dist/_core/dist/agents/keys.d.ts +50 -0
- package/dist/_core/dist/agents/keys.d.ts.map +1 -0
- package/dist/_core/dist/agents/keys.js +91 -0
- package/dist/_core/dist/agents/keys.js.map +1 -0
- package/dist/_core/dist/agents/materialize.d.ts +37 -0
- package/dist/_core/dist/agents/materialize.d.ts.map +1 -0
- package/dist/_core/dist/agents/materialize.js +157 -0
- package/dist/_core/dist/agents/materialize.js.map +1 -0
- package/dist/_core/dist/agents/prompt-builder.d.ts +35 -0
- package/dist/_core/dist/agents/prompt-builder.d.ts.map +1 -0
- package/dist/_core/dist/agents/prompt-builder.js +261 -0
- package/dist/_core/dist/agents/prompt-builder.js.map +1 -0
- package/dist/_core/dist/agents/prompt-markers.d.ts +69 -0
- package/dist/_core/dist/agents/prompt-markers.d.ts.map +1 -0
- package/dist/_core/dist/agents/prompt-markers.js +111 -0
- package/dist/_core/dist/agents/prompt-markers.js.map +1 -0
- package/dist/_core/dist/agents/registry.d.ts +35 -0
- package/dist/_core/dist/agents/registry.d.ts.map +1 -0
- package/dist/_core/dist/agents/registry.js +102 -0
- package/dist/_core/dist/agents/registry.js.map +1 -0
- package/dist/_core/dist/agents/selector.d.ts +33 -0
- package/dist/_core/dist/agents/selector.d.ts.map +1 -0
- package/dist/_core/dist/agents/selector.js +120 -0
- package/dist/_core/dist/agents/selector.js.map +1 -0
- package/dist/_core/dist/agents/slash-materializer.d.ts +63 -0
- package/dist/_core/dist/agents/slash-materializer.d.ts.map +1 -0
- package/dist/_core/dist/agents/slash-materializer.js +131 -0
- package/dist/_core/dist/agents/slash-materializer.js.map +1 -0
- package/dist/_core/dist/agents/types.d.ts +121 -0
- package/dist/_core/dist/agents/types.d.ts.map +1 -0
- package/dist/_core/dist/agents/types.js +10 -0
- package/dist/_core/dist/agents/types.js.map +1 -0
- package/dist/_core/dist/audit/hash.d.ts +4 -0
- package/dist/_core/dist/audit/hash.d.ts.map +1 -0
- package/dist/_core/dist/audit/hash.js +12 -0
- package/dist/_core/dist/audit/hash.js.map +1 -0
- package/dist/_core/dist/audit/index.d.ts +6 -0
- package/dist/_core/dist/audit/index.d.ts.map +1 -0
- package/dist/_core/dist/audit/index.js +6 -0
- package/dist/_core/dist/audit/index.js.map +1 -0
- package/dist/_core/dist/audit/logger.d.ts +77 -0
- package/dist/_core/dist/audit/logger.d.ts.map +1 -0
- package/dist/_core/dist/audit/logger.js +93 -0
- package/dist/_core/dist/audit/logger.js.map +1 -0
- package/dist/_core/dist/audit/query.d.ts +13 -0
- package/dist/_core/dist/audit/query.d.ts.map +1 -0
- package/dist/_core/dist/audit/query.js +57 -0
- package/dist/_core/dist/audit/query.js.map +1 -0
- package/dist/_core/dist/audit/schema.d.ts +455 -0
- package/dist/_core/dist/audit/schema.d.ts.map +1 -0
- package/dist/_core/dist/audit/schema.js +341 -0
- package/dist/_core/dist/audit/schema.js.map +1 -0
- package/dist/_core/dist/audit/validate.d.ts +21 -0
- package/dist/_core/dist/audit/validate.d.ts.map +1 -0
- package/dist/_core/dist/audit/validate.js +139 -0
- package/dist/_core/dist/audit/validate.js.map +1 -0
- package/dist/_core/dist/constitution/core.d.ts +22 -0
- package/dist/_core/dist/constitution/core.d.ts.map +1 -0
- package/dist/_core/dist/constitution/core.js +102 -0
- package/dist/_core/dist/constitution/core.js.map +1 -0
- package/dist/_core/dist/constitution/index.d.ts +2 -0
- package/dist/_core/dist/constitution/index.d.ts.map +1 -0
- package/dist/_core/dist/constitution/index.js +2 -0
- package/dist/_core/dist/constitution/index.js.map +1 -0
- package/dist/_core/dist/extensions/index.d.ts +12 -0
- package/dist/_core/dist/extensions/index.d.ts.map +1 -0
- package/dist/_core/dist/extensions/index.js +12 -0
- package/dist/_core/dist/extensions/index.js.map +1 -0
- package/dist/_core/dist/extensions/integrate.d.ts +69 -0
- package/dist/_core/dist/extensions/integrate.d.ts.map +1 -0
- package/dist/_core/dist/extensions/integrate.js +181 -0
- package/dist/_core/dist/extensions/integrate.js.map +1 -0
- package/dist/_core/dist/extensions/loader.d.ts +24 -0
- package/dist/_core/dist/extensions/loader.d.ts.map +1 -0
- package/dist/_core/dist/extensions/loader.js +73 -0
- package/dist/_core/dist/extensions/loader.js.map +1 -0
- package/dist/_core/dist/extensions/manifest.d.ts +23 -0
- package/dist/_core/dist/extensions/manifest.d.ts.map +1 -0
- package/dist/_core/dist/extensions/manifest.js +176 -0
- package/dist/_core/dist/extensions/manifest.js.map +1 -0
- package/dist/_core/dist/extensions/registry.d.ts +32 -0
- package/dist/_core/dist/extensions/registry.d.ts.map +1 -0
- package/dist/_core/dist/extensions/registry.js +57 -0
- package/dist/_core/dist/extensions/registry.js.map +1 -0
- package/dist/_core/dist/extensions/resolver.d.ts +55 -0
- package/dist/_core/dist/extensions/resolver.d.ts.map +1 -0
- package/dist/_core/dist/extensions/resolver.js +143 -0
- package/dist/_core/dist/extensions/resolver.js.map +1 -0
- package/dist/_core/dist/extensions/types.d.ts +173 -0
- package/dist/_core/dist/extensions/types.d.ts.map +1 -0
- package/dist/_core/dist/extensions/types.js +83 -0
- package/dist/_core/dist/extensions/types.js.map +1 -0
- package/dist/_core/dist/frontmatter/index.d.ts +10 -0
- package/dist/_core/dist/frontmatter/index.d.ts.map +1 -0
- package/dist/_core/dist/frontmatter/index.js +24 -0
- package/dist/_core/dist/frontmatter/index.js.map +1 -0
- package/dist/_core/dist/gates/agent-gates.d.ts +16 -0
- package/dist/_core/dist/gates/agent-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/agent-gates.js +205 -0
- package/dist/_core/dist/gates/agent-gates.js.map +1 -0
- package/dist/_core/dist/gates/builtin.d.ts +18 -0
- package/dist/_core/dist/gates/builtin.d.ts.map +1 -0
- package/dist/_core/dist/gates/builtin.js +860 -0
- package/dist/_core/dist/gates/builtin.js.map +1 -0
- package/dist/_core/dist/gates/index.d.ts +7 -0
- package/dist/_core/dist/gates/index.d.ts.map +1 -0
- package/dist/_core/dist/gates/index.js +7 -0
- package/dist/_core/dist/gates/index.js.map +1 -0
- package/dist/_core/dist/gates/m7-gates.d.ts +17 -0
- package/dist/_core/dist/gates/m7-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/m7-gates.js +309 -0
- package/dist/_core/dist/gates/m7-gates.js.map +1 -0
- package/dist/_core/dist/gates/phase-gates.d.ts +18 -0
- package/dist/_core/dist/gates/phase-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/phase-gates.js +275 -0
- package/dist/_core/dist/gates/phase-gates.js.map +1 -0
- package/dist/_core/dist/gates/runner.d.ts +4 -0
- package/dist/_core/dist/gates/runner.d.ts.map +1 -0
- package/dist/_core/dist/gates/runner.js +64 -0
- package/dist/_core/dist/gates/runner.js.map +1 -0
- package/dist/_core/dist/gates/types.d.ts +36 -0
- package/dist/_core/dist/gates/types.d.ts.map +1 -0
- package/dist/_core/dist/gates/types.js +2 -0
- package/dist/_core/dist/gates/types.js.map +1 -0
- package/dist/_core/dist/hooks/index.d.ts +4 -0
- package/dist/_core/dist/hooks/index.d.ts.map +1 -0
- package/dist/_core/dist/hooks/index.js +4 -0
- package/dist/_core/dist/hooks/index.js.map +1 -0
- package/dist/_core/dist/hooks/runner.d.ts +28 -0
- package/dist/_core/dist/hooks/runner.d.ts.map +1 -0
- package/dist/_core/dist/hooks/runner.js +294 -0
- package/dist/_core/dist/hooks/runner.js.map +1 -0
- package/dist/_core/dist/hooks/runtime.d.ts +65 -0
- package/dist/_core/dist/hooks/runtime.d.ts.map +1 -0
- package/dist/_core/dist/hooks/runtime.js +212 -0
- package/dist/_core/dist/hooks/runtime.js.map +1 -0
- package/dist/_core/dist/hooks/types.d.ts +36 -0
- package/dist/_core/dist/hooks/types.d.ts.map +1 -0
- package/dist/_core/dist/hooks/types.js +23 -0
- package/dist/_core/dist/hooks/types.js.map +1 -0
- package/dist/_core/dist/index.d.ts +21 -0
- package/dist/_core/dist/index.d.ts.map +1 -0
- package/dist/_core/dist/index.js +20 -0
- package/dist/_core/dist/index.js.map +1 -0
- package/dist/_core/dist/manifest/index.d.ts +119 -0
- package/dist/_core/dist/manifest/index.d.ts.map +1 -0
- package/dist/_core/dist/manifest/index.js +125 -0
- package/dist/_core/dist/manifest/index.js.map +1 -0
- package/dist/_core/dist/markers/index.d.ts +47 -0
- package/dist/_core/dist/markers/index.d.ts.map +1 -0
- package/dist/_core/dist/markers/index.js +97 -0
- package/dist/_core/dist/markers/index.js.map +1 -0
- package/dist/_core/dist/mcp/config.d.ts +19 -0
- package/dist/_core/dist/mcp/config.d.ts.map +1 -0
- package/dist/_core/dist/mcp/config.js +114 -0
- package/dist/_core/dist/mcp/config.js.map +1 -0
- package/dist/_core/dist/mcp/index.d.ts +9 -0
- package/dist/_core/dist/mcp/index.d.ts.map +1 -0
- package/dist/_core/dist/mcp/index.js +8 -0
- package/dist/_core/dist/mcp/index.js.map +1 -0
- package/dist/_core/dist/mcp/materializer.d.ts +40 -0
- package/dist/_core/dist/mcp/materializer.d.ts.map +1 -0
- package/dist/_core/dist/mcp/materializer.js +161 -0
- package/dist/_core/dist/mcp/materializer.js.map +1 -0
- package/dist/_core/dist/mcp/targets.d.ts +37 -0
- package/dist/_core/dist/mcp/targets.d.ts.map +1 -0
- package/dist/_core/dist/mcp/targets.js +56 -0
- package/dist/_core/dist/mcp/targets.js.map +1 -0
- package/dist/_core/dist/mcp/types.d.ts +34 -0
- package/dist/_core/dist/mcp/types.d.ts.map +1 -0
- package/dist/_core/dist/mcp/types.js +8 -0
- package/dist/_core/dist/mcp/types.js.map +1 -0
- package/dist/_core/dist/models/analyze.d.ts +131 -0
- package/dist/_core/dist/models/analyze.d.ts.map +1 -0
- package/dist/_core/dist/models/analyze.js +301 -0
- package/dist/_core/dist/models/analyze.js.map +1 -0
- package/dist/_core/dist/models/checklist.d.ts +113 -0
- package/dist/_core/dist/models/checklist.d.ts.map +1 -0
- package/dist/_core/dist/models/checklist.js +159 -0
- package/dist/_core/dist/models/checklist.js.map +1 -0
- package/dist/_core/dist/models/clarify.d.ts +116 -0
- package/dist/_core/dist/models/clarify.d.ts.map +1 -0
- package/dist/_core/dist/models/clarify.js +166 -0
- package/dist/_core/dist/models/clarify.js.map +1 -0
- package/dist/_core/dist/models/impl-log.d.ts +64 -0
- package/dist/_core/dist/models/impl-log.d.ts.map +1 -0
- package/dist/_core/dist/models/impl-log.js +137 -0
- package/dist/_core/dist/models/impl-log.js.map +1 -0
- package/dist/_core/dist/models/index.d.ts +8 -0
- package/dist/_core/dist/models/index.d.ts.map +1 -0
- package/dist/_core/dist/models/index.js +8 -0
- package/dist/_core/dist/models/index.js.map +1 -0
- package/dist/_core/dist/models/plan.d.ts +24 -0
- package/dist/_core/dist/models/plan.d.ts.map +1 -0
- package/dist/_core/dist/models/plan.js +15 -0
- package/dist/_core/dist/models/plan.js.map +1 -0
- package/dist/_core/dist/models/spec.d.ts +23 -0
- package/dist/_core/dist/models/spec.d.ts.map +1 -0
- package/dist/_core/dist/models/spec.js +22 -0
- package/dist/_core/dist/models/spec.js.map +1 -0
- package/dist/_core/dist/models/tasks.d.ts +33 -0
- package/dist/_core/dist/models/tasks.d.ts.map +1 -0
- package/dist/_core/dist/models/tasks.js +78 -0
- package/dist/_core/dist/models/tasks.js.map +1 -0
- package/dist/_core/dist/presets/gates.d.ts +9 -0
- package/dist/_core/dist/presets/gates.d.ts.map +1 -0
- package/dist/_core/dist/presets/gates.js +173 -0
- package/dist/_core/dist/presets/gates.js.map +1 -0
- package/dist/_core/dist/presets/index.d.ts +10 -0
- package/dist/_core/dist/presets/index.d.ts.map +1 -0
- package/dist/_core/dist/presets/index.js +7 -0
- package/dist/_core/dist/presets/index.js.map +1 -0
- package/dist/_core/dist/presets/loader.d.ts +56 -0
- package/dist/_core/dist/presets/loader.d.ts.map +1 -0
- package/dist/_core/dist/presets/loader.js +216 -0
- package/dist/_core/dist/presets/loader.js.map +1 -0
- package/dist/_core/dist/presets/mobile-opinionated.d.ts +3 -0
- package/dist/_core/dist/presets/mobile-opinionated.d.ts.map +1 -0
- package/dist/_core/dist/presets/mobile-opinionated.js +78 -0
- package/dist/_core/dist/presets/mobile-opinionated.js.map +1 -0
- package/dist/_core/dist/presets/registry.d.ts +5 -0
- package/dist/_core/dist/presets/registry.d.ts.map +1 -0
- package/dist/_core/dist/presets/registry.js +14 -0
- package/dist/_core/dist/presets/registry.js.map +1 -0
- package/dist/_core/dist/presets/renderer.d.ts +5 -0
- package/dist/_core/dist/presets/renderer.d.ts.map +1 -0
- package/dist/_core/dist/presets/renderer.js +37 -0
- package/dist/_core/dist/presets/renderer.js.map +1 -0
- package/dist/_core/dist/presets/stacking.d.ts +29 -0
- package/dist/_core/dist/presets/stacking.d.ts.map +1 -0
- package/dist/_core/dist/presets/stacking.js +91 -0
- package/dist/_core/dist/presets/stacking.js.map +1 -0
- package/dist/_core/dist/presets/types.d.ts +22 -0
- package/dist/_core/dist/presets/types.d.ts.map +1 -0
- package/dist/_core/dist/presets/types.js +2 -0
- package/dist/_core/dist/presets/types.js.map +1 -0
- package/dist/_core/dist/prompts/audit-log.d.ts +73 -0
- package/dist/_core/dist/prompts/audit-log.d.ts.map +1 -0
- package/dist/_core/dist/prompts/audit-log.js +73 -0
- package/dist/_core/dist/prompts/audit-log.js.map +1 -0
- package/dist/_core/dist/prompts/index.d.ts +9 -0
- package/dist/_core/dist/prompts/index.d.ts.map +1 -0
- package/dist/_core/dist/prompts/index.js +7 -0
- package/dist/_core/dist/prompts/index.js.map +1 -0
- package/dist/_core/dist/prompts/renderer.d.ts +73 -0
- package/dist/_core/dist/prompts/renderer.d.ts.map +1 -0
- package/dist/_core/dist/prompts/renderer.js +179 -0
- package/dist/_core/dist/prompts/renderer.js.map +1 -0
- package/dist/_core/dist/prompts/resumption.d.ts +59 -0
- package/dist/_core/dist/prompts/resumption.d.ts.map +1 -0
- package/dist/_core/dist/prompts/resumption.js +149 -0
- package/dist/_core/dist/prompts/resumption.js.map +1 -0
- package/dist/_core/dist/skills/config.d.ts +27 -0
- package/dist/_core/dist/skills/config.d.ts.map +1 -0
- package/dist/_core/dist/skills/config.js +102 -0
- package/dist/_core/dist/skills/config.js.map +1 -0
- package/dist/_core/dist/skills/index.d.ts +9 -0
- package/dist/_core/dist/skills/index.d.ts.map +1 -0
- package/dist/_core/dist/skills/index.js +8 -0
- package/dist/_core/dist/skills/index.js.map +1 -0
- package/dist/_core/dist/skills/materializer.d.ts +45 -0
- package/dist/_core/dist/skills/materializer.d.ts.map +1 -0
- package/dist/_core/dist/skills/materializer.js +97 -0
- package/dist/_core/dist/skills/materializer.js.map +1 -0
- package/dist/_core/dist/skills/registry.d.ts +18 -0
- package/dist/_core/dist/skills/registry.d.ts.map +1 -0
- package/dist/_core/dist/skills/registry.js +36 -0
- package/dist/_core/dist/skills/registry.js.map +1 -0
- package/dist/_core/dist/skills/types.d.ts +39 -0
- package/dist/_core/dist/skills/types.d.ts.map +1 -0
- package/dist/_core/dist/skills/types.js +13 -0
- package/dist/_core/dist/skills/types.js.map +1 -0
- package/dist/_core/dist/state/feature.d.ts +58 -0
- package/dist/_core/dist/state/feature.d.ts.map +1 -0
- package/dist/_core/dist/state/feature.js +81 -0
- package/dist/_core/dist/state/feature.js.map +1 -0
- package/dist/_core/dist/state/index.d.ts +8 -0
- package/dist/_core/dist/state/index.d.ts.map +1 -0
- package/dist/_core/dist/state/index.js +6 -0
- package/dist/_core/dist/state/index.js.map +1 -0
- package/dist/_core/dist/state/init-options.d.ts +60 -0
- package/dist/_core/dist/state/init-options.d.ts.map +1 -0
- package/dist/_core/dist/state/init-options.js +74 -0
- package/dist/_core/dist/state/init-options.js.map +1 -0
- package/dist/_core/dist/template/engine.d.ts +7 -0
- package/dist/_core/dist/template/engine.d.ts.map +1 -0
- package/dist/_core/dist/template/engine.js +86 -0
- package/dist/_core/dist/template/engine.js.map +1 -0
- package/dist/_core/dist/template/helpers.d.ts +5 -0
- package/dist/_core/dist/template/helpers.d.ts.map +1 -0
- package/dist/_core/dist/template/helpers.js +59 -0
- package/dist/_core/dist/template/helpers.js.map +1 -0
- package/dist/_core/dist/template/index.d.ts +6 -0
- package/dist/_core/dist/template/index.d.ts.map +1 -0
- package/dist/_core/dist/template/index.js +6 -0
- package/dist/_core/dist/template/index.js.map +1 -0
- package/dist/_core/dist/template/loader.d.ts +36 -0
- package/dist/_core/dist/template/loader.d.ts.map +1 -0
- package/dist/_core/dist/template/loader.js +62 -0
- package/dist/_core/dist/template/loader.js.map +1 -0
- package/dist/_core/dist/template/parser.d.ts +3 -0
- package/dist/_core/dist/template/parser.d.ts.map +1 -0
- package/dist/_core/dist/template/parser.js +234 -0
- package/dist/_core/dist/template/parser.js.map +1 -0
- package/dist/_core/dist/template/types.d.ts +40 -0
- package/dist/_core/dist/template/types.d.ts.map +1 -0
- package/dist/_core/dist/template/types.js +14 -0
- package/dist/_core/dist/template/types.js.map +1 -0
- package/dist/_core/dist/verify/a11y.d.ts +36 -0
- package/dist/_core/dist/verify/a11y.d.ts.map +1 -0
- package/dist/_core/dist/verify/a11y.js +153 -0
- package/dist/_core/dist/verify/a11y.js.map +1 -0
- package/dist/_core/dist/verify/architecture.d.ts +37 -0
- package/dist/_core/dist/verify/architecture.d.ts.map +1 -0
- package/dist/_core/dist/verify/architecture.js +113 -0
- package/dist/_core/dist/verify/architecture.js.map +1 -0
- package/dist/_core/dist/verify/index.d.ts +10 -0
- package/dist/_core/dist/verify/index.d.ts.map +1 -0
- package/dist/_core/dist/verify/index.js +10 -0
- package/dist/_core/dist/verify/index.js.map +1 -0
- package/dist/_core/dist/verify/os-matrix.d.ts +35 -0
- package/dist/_core/dist/verify/os-matrix.d.ts.map +1 -0
- package/dist/_core/dist/verify/os-matrix.js +104 -0
- package/dist/_core/dist/verify/os-matrix.js.map +1 -0
- package/dist/_core/dist/verify/perf.d.ts +43 -0
- package/dist/_core/dist/verify/perf.d.ts.map +1 -0
- package/dist/_core/dist/verify/perf.js +69 -0
- package/dist/_core/dist/verify/perf.js.map +1 -0
- package/dist/_core/dist/verify/stores.d.ts +38 -0
- package/dist/_core/dist/verify/stores.d.ts.map +1 -0
- package/dist/_core/dist/verify/stores.js +57 -0
- package/dist/_core/dist/verify/stores.js.map +1 -0
- package/dist/_core/dist/version.d.ts +8 -0
- package/dist/_core/dist/version.d.ts.map +1 -0
- package/dist/_core/dist/version.js +11 -0
- package/dist/_core/dist/version.js.map +1 -0
- package/dist/_core/dist/workflows/bundled.d.ts +32 -0
- package/dist/_core/dist/workflows/bundled.d.ts.map +1 -0
- package/dist/_core/dist/workflows/bundled.js +254 -0
- package/dist/_core/dist/workflows/bundled.js.map +1 -0
- package/dist/_core/dist/workflows/engine.d.ts +74 -0
- package/dist/_core/dist/workflows/engine.d.ts.map +1 -0
- package/dist/_core/dist/workflows/engine.js +574 -0
- package/dist/_core/dist/workflows/engine.js.map +1 -0
- package/dist/_core/dist/workflows/expressions.d.ts +48 -0
- package/dist/_core/dist/workflows/expressions.d.ts.map +1 -0
- package/dist/_core/dist/workflows/expressions.js +336 -0
- package/dist/_core/dist/workflows/expressions.js.map +1 -0
- package/dist/_core/dist/workflows/index.d.ts +16 -0
- package/dist/_core/dist/workflows/index.d.ts.map +1 -0
- package/dist/_core/dist/workflows/index.js +15 -0
- package/dist/_core/dist/workflows/index.js.map +1 -0
- package/dist/_core/dist/workflows/parser.d.ts +38 -0
- package/dist/_core/dist/workflows/parser.d.ts.map +1 -0
- package/dist/_core/dist/workflows/parser.js +386 -0
- package/dist/_core/dist/workflows/parser.js.map +1 -0
- package/dist/_core/dist/workflows/sdd-flow.d.ts +85 -0
- package/dist/_core/dist/workflows/sdd-flow.d.ts.map +1 -0
- package/dist/_core/dist/workflows/sdd-flow.js +269 -0
- package/dist/_core/dist/workflows/sdd-flow.js.map +1 -0
- package/dist/_core/dist/workflows/types.d.ts +285 -0
- package/dist/_core/dist/workflows/types.d.ts.map +1 -0
- package/dist/_core/dist/workflows/types.js +13 -0
- package/dist/_core/dist/workflows/types.js.map +1 -0
- package/dist/_core/package.json +6 -0
- package/dist/_core/templates/constitution.md.hbs +46 -0
- package/dist/_core/templates/ghaWorkflow.yml.hbs +58 -0
- package/dist/_core/templates/hotfix.md.hbs +39 -0
- package/dist/_core/templates/plan.md.hbs +212 -0
- package/dist/_core/templates/preCommitHook.sh.hbs +30 -0
- package/dist/_core/templates/prePushHook.sh.hbs +45 -0
- package/dist/_core/templates/raptor.yml.hbs +24 -0
- package/dist/_core/templates/spec.md.hbs +127 -0
- package/dist/_core/templates/tasks.md.hbs +71 -0
- package/dist/commands/add-agent.d.ts +22 -0
- package/dist/commands/add-agent.d.ts.map +1 -0
- package/dist/commands/add-agent.js +121 -0
- package/dist/commands/add-agent.js.map +1 -0
- package/dist/commands/add-extension.d.ts +18 -0
- package/dist/commands/add-extension.d.ts.map +1 -0
- package/dist/commands/add-extension.js +83 -0
- package/dist/commands/add-extension.js.map +1 -0
- package/dist/commands/analyze.d.ts +18 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +323 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/approve.d.ts +14 -0
- package/dist/commands/approve.d.ts.map +1 -0
- package/dist/commands/approve.js +116 -0
- package/dist/commands/approve.js.map +1 -0
- package/dist/commands/audit/query.d.ts +23 -0
- package/dist/commands/audit/query.d.ts.map +1 -0
- package/dist/commands/audit/query.js +118 -0
- package/dist/commands/audit/query.js.map +1 -0
- package/dist/commands/audit/show.d.ts +17 -0
- package/dist/commands/audit/show.d.ts.map +1 -0
- package/dist/commands/audit/show.js +53 -0
- package/dist/commands/audit/show.js.map +1 -0
- package/dist/commands/checklist.d.ts +17 -0
- package/dist/commands/checklist.d.ts.map +1 -0
- package/dist/commands/checklist.js +255 -0
- package/dist/commands/checklist.js.map +1 -0
- package/dist/commands/clarify.d.ts +17 -0
- package/dist/commands/clarify.d.ts.map +1 -0
- package/dist/commands/clarify.js +254 -0
- package/dist/commands/clarify.js.map +1 -0
- package/dist/commands/doctor.d.ts +8 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +435 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/extension/add.d.ts +15 -0
- package/dist/commands/extension/add.d.ts.map +1 -0
- package/dist/commands/extension/add.js +93 -0
- package/dist/commands/extension/add.js.map +1 -0
- package/dist/commands/extension/info.d.ts +13 -0
- package/dist/commands/extension/info.d.ts.map +1 -0
- package/dist/commands/extension/info.js +75 -0
- package/dist/commands/extension/info.js.map +1 -0
- package/dist/commands/extension/list.d.ts +10 -0
- package/dist/commands/extension/list.d.ts.map +1 -0
- package/dist/commands/extension/list.js +71 -0
- package/dist/commands/extension/list.js.map +1 -0
- package/dist/commands/extension/remove.d.ts +14 -0
- package/dist/commands/extension/remove.d.ts.map +1 -0
- package/dist/commands/extension/remove.js +49 -0
- package/dist/commands/extension/remove.js.map +1 -0
- package/dist/commands/gate/approve.d.ts +15 -0
- package/dist/commands/gate/approve.d.ts.map +1 -0
- package/dist/commands/gate/approve.js +106 -0
- package/dist/commands/gate/approve.js.map +1 -0
- package/dist/commands/gate/list.d.ts +6 -0
- package/dist/commands/gate/list.d.ts.map +1 -0
- package/dist/commands/gate/list.js +38 -0
- package/dist/commands/gate/list.js.map +1 -0
- package/dist/commands/gate/skip.d.ts +14 -0
- package/dist/commands/gate/skip.d.ts.map +1 -0
- package/dist/commands/gate/skip.js +95 -0
- package/dist/commands/gate/skip.js.map +1 -0
- package/dist/commands/hook/list.d.ts +11 -0
- package/dist/commands/hook/list.d.ts.map +1 -0
- package/dist/commands/hook/list.js +152 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/run.d.ts +16 -0
- package/dist/commands/hook/run.d.ts.map +1 -0
- package/dist/commands/hook/run.js +74 -0
- package/dist/commands/hook/run.js.map +1 -0
- package/dist/commands/hotfix.d.ts +21 -0
- package/dist/commands/hotfix.d.ts.map +1 -0
- package/dist/commands/hotfix.js +216 -0
- package/dist/commands/hotfix.js.map +1 -0
- package/dist/commands/implement.d.ts +19 -0
- package/dist/commands/implement.d.ts.map +1 -0
- package/dist/commands/implement.js +282 -0
- package/dist/commands/implement.js.map +1 -0
- package/dist/commands/init.d.ts +43 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +465 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list-agents.d.ts +12 -0
- package/dist/commands/list-agents.d.ts.map +1 -0
- package/dist/commands/list-agents.js +55 -0
- package/dist/commands/list-agents.js.map +1 -0
- package/dist/commands/mcp/add.d.ts +21 -0
- package/dist/commands/mcp/add.d.ts.map +1 -0
- package/dist/commands/mcp/add.js +119 -0
- package/dist/commands/mcp/add.js.map +1 -0
- package/dist/commands/mcp/list.d.ts +10 -0
- package/dist/commands/mcp/list.d.ts.map +1 -0
- package/dist/commands/mcp/list.js +54 -0
- package/dist/commands/mcp/list.js.map +1 -0
- package/dist/commands/mcp/remove.d.ts +10 -0
- package/dist/commands/mcp/remove.d.ts.map +1 -0
- package/dist/commands/mcp/remove.js +53 -0
- package/dist/commands/mcp/remove.js.map +1 -0
- package/dist/commands/mcp/sync.d.ts +7 -0
- package/dist/commands/mcp/sync.d.ts.map +1 -0
- package/dist/commands/mcp/sync.js +31 -0
- package/dist/commands/mcp/sync.js.map +1 -0
- package/dist/commands/new.d.ts +19 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +306 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/plan.d.ts +17 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +200 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/preset/add.d.ts +13 -0
- package/dist/commands/preset/add.d.ts.map +1 -0
- package/dist/commands/preset/add.js +66 -0
- package/dist/commands/preset/add.js.map +1 -0
- package/dist/commands/preset/info.d.ts +13 -0
- package/dist/commands/preset/info.d.ts.map +1 -0
- package/dist/commands/preset/info.js +80 -0
- package/dist/commands/preset/info.js.map +1 -0
- package/dist/commands/preset/list.d.ts +10 -0
- package/dist/commands/preset/list.d.ts.map +1 -0
- package/dist/commands/preset/list.js +63 -0
- package/dist/commands/preset/list.js.map +1 -0
- package/dist/commands/preset/remove.d.ts +14 -0
- package/dist/commands/preset/remove.d.ts.map +1 -0
- package/dist/commands/preset/remove.js +60 -0
- package/dist/commands/preset/remove.js.map +1 -0
- package/dist/commands/repair/constitution.d.ts +11 -0
- package/dist/commands/repair/constitution.d.ts.map +1 -0
- package/dist/commands/repair/constitution.js +117 -0
- package/dist/commands/repair/constitution.js.map +1 -0
- package/dist/commands/resync.d.ts +22 -0
- package/dist/commands/resync.d.ts.map +1 -0
- package/dist/commands/resync.js +103 -0
- package/dist/commands/resync.js.map +1 -0
- package/dist/commands/skill/add.d.ts +19 -0
- package/dist/commands/skill/add.d.ts.map +1 -0
- package/dist/commands/skill/add.js +107 -0
- package/dist/commands/skill/add.js.map +1 -0
- package/dist/commands/skill/list.d.ts +10 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +56 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/remove.d.ts +10 -0
- package/dist/commands/skill/remove.d.ts.map +1 -0
- package/dist/commands/skill/remove.js +47 -0
- package/dist/commands/skill/remove.js.map +1 -0
- package/dist/commands/skill/sync.d.ts +7 -0
- package/dist/commands/skill/sync.d.ts.map +1 -0
- package/dist/commands/skill/sync.js +30 -0
- package/dist/commands/skill/sync.js.map +1 -0
- package/dist/commands/status.d.ts +17 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +265 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tasks.d.ts +16 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +176 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/trace.d.ts +16 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +113 -0
- package/dist/commands/trace.js.map +1 -0
- package/dist/commands/upgrade.d.ts +20 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +178 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/verify/a11y.d.ts +15 -0
- package/dist/commands/verify/a11y.d.ts.map +1 -0
- package/dist/commands/verify/a11y.js +121 -0
- package/dist/commands/verify/a11y.js.map +1 -0
- package/dist/commands/verify/architecture.d.ts +11 -0
- package/dist/commands/verify/architecture.d.ts.map +1 -0
- package/dist/commands/verify/architecture.js +71 -0
- package/dist/commands/verify/architecture.js.map +1 -0
- package/dist/commands/verify/audit.d.ts +18 -0
- package/dist/commands/verify/audit.d.ts.map +1 -0
- package/dist/commands/verify/audit.js +108 -0
- package/dist/commands/verify/audit.js.map +1 -0
- package/dist/commands/verify/constitution.d.ts +10 -0
- package/dist/commands/verify/constitution.d.ts.map +1 -0
- package/dist/commands/verify/constitution.js +91 -0
- package/dist/commands/verify/constitution.js.map +1 -0
- package/dist/commands/verify/os-matrix.d.ts +14 -0
- package/dist/commands/verify/os-matrix.d.ts.map +1 -0
- package/dist/commands/verify/os-matrix.js +108 -0
- package/dist/commands/verify/os-matrix.js.map +1 -0
- package/dist/commands/verify/perf.d.ts +17 -0
- package/dist/commands/verify/perf.d.ts.map +1 -0
- package/dist/commands/verify/perf.js +106 -0
- package/dist/commands/verify/perf.js.map +1 -0
- package/dist/commands/verify/stores.d.ts +14 -0
- package/dist/commands/verify/stores.d.ts.map +1 -0
- package/dist/commands/verify/stores.js +98 -0
- package/dist/commands/verify/stores.js.map +1 -0
- package/dist/commands/verify.d.ts +14 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +97 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/workflow/catalog.d.ts +11 -0
- package/dist/commands/workflow/catalog.d.ts.map +1 -0
- package/dist/commands/workflow/catalog.js +164 -0
- package/dist/commands/workflow/catalog.js.map +1 -0
- package/dist/commands/workflow/list.d.ts +7 -0
- package/dist/commands/workflow/list.d.ts.map +1 -0
- package/dist/commands/workflow/list.js +50 -0
- package/dist/commands/workflow/list.js.map +1 -0
- package/dist/commands/workflow/resume.d.ts +13 -0
- package/dist/commands/workflow/resume.d.ts.map +1 -0
- package/dist/commands/workflow/resume.js +126 -0
- package/dist/commands/workflow/resume.js.map +1 -0
- package/dist/commands/workflow/run.d.ts +14 -0
- package/dist/commands/workflow/run.d.ts.map +1 -0
- package/dist/commands/workflow/run.js +139 -0
- package/dist/commands/workflow/run.js.map +1 -0
- package/dist/commands/workflow/status.d.ts +10 -0
- package/dist/commands/workflow/status.d.ts.map +1 -0
- package/dist/commands/workflow/status.js +86 -0
- package/dist/commands/workflow/status.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/agents.d.ts +12 -0
- package/dist/shared/agents.d.ts.map +1 -0
- package/dist/shared/agents.js +31 -0
- package/dist/shared/agents.js.map +1 -0
- package/dist/shared/artifact-io.d.ts +54 -0
- package/dist/shared/artifact-io.d.ts.map +1 -0
- package/dist/shared/artifact-io.js +71 -0
- package/dist/shared/artifact-io.js.map +1 -0
- package/dist/shared/feature-prompt.d.ts +18 -0
- package/dist/shared/feature-prompt.d.ts.map +1 -0
- package/dist/shared/feature-prompt.js +21 -0
- package/dist/shared/feature-prompt.js.map +1 -0
- package/dist/shared/hooks.d.ts +7 -0
- package/dist/shared/hooks.d.ts.map +1 -0
- package/dist/shared/hooks.js +52 -0
- package/dist/shared/hooks.js.map +1 -0
- package/dist/shared/mcp.d.ts +9 -0
- package/dist/shared/mcp.d.ts.map +1 -0
- package/dist/shared/mcp.js +15 -0
- package/dist/shared/mcp.js.map +1 -0
- package/dist/shared/project.d.ts +42 -0
- package/dist/shared/project.d.ts.map +1 -0
- package/dist/shared/project.js +98 -0
- package/dist/shared/project.js.map +1 -0
- package/dist/shared/workflow-resolver.d.ts +19 -0
- package/dist/shared/workflow-resolver.d.ts.map +1 -0
- package/dist/shared/workflow-resolver.js +71 -0
- package/dist/shared/workflow-resolver.js.map +1 -0
- package/dist/workflow/args-builder.d.ts +31 -0
- package/dist/workflow/args-builder.d.ts.map +1 -0
- package/dist/workflow/args-builder.js +110 -0
- package/dist/workflow/args-builder.js.map +1 -0
- package/dist/workflow/executor.d.ts +18 -0
- package/dist/workflow/executor.d.ts.map +1 -0
- package/dist/workflow/executor.js +112 -0
- package/dist/workflow/executor.js.map +1 -0
- package/extensions/git/commands/rpt.git.feature.md +85 -0
- package/extensions/git/extension.yml +47 -0
- package/package.json +58 -0
- package/scripts/bash/check-prerequisites.sh +149 -0
- package/scripts/bash/common.sh +389 -0
- package/scripts/bash/create-new-feature.sh +164 -0
- package/scripts/bash/setup-plan.sh +113 -0
- package/scripts/check-naming.sh +138 -0
- package/scripts/check-prompts.sh +165 -0
- package/scripts/check-tasks.sh +166 -0
- package/scripts/powershell/check-prerequisites.ps1 +117 -0
- package/scripts/powershell/common.ps1 +328 -0
- package/scripts/powershell/create-new-feature.ps1 +138 -0
- package/scripts/powershell/setup-plan.ps1 +96 -0
- package/scripts/prepare-npm.mjs +157 -0
- package/templates/checklist-template.md +103 -0
- package/templates/commands/analyze.md +103 -0
- package/templates/commands/checklist.md +87 -0
- package/templates/commands/clarify.md +85 -0
- package/templates/commands/constitution.md +126 -0
- package/templates/commands/implement.md +117 -0
- package/templates/commands/plan.md +125 -0
- package/templates/commands/specify.md +127 -0
- package/templates/commands/tasks.md +98 -0
- package/templates/commands/taskstoissues.md +81 -0
- package/templates/constitution-template.md +48 -0
- package/templates/plan-template.md +150 -0
- package/templates/spec-template.md +116 -0
- package/templates/tasks-template.md +77 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clarify Model — Q&A rounds on spec.md.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1b: Optional clarification step between spec and plan.
|
|
5
|
+
* Produces append-only clarification ledger and detects unresolved
|
|
6
|
+
* [NEEDS CLARIFICATION] blocks in the spec.
|
|
7
|
+
*
|
|
8
|
+
* Blueprint ref: 16.5 — "raptor clarify {feature}".
|
|
9
|
+
*/
|
|
10
|
+
export interface ClarifyQuestion {
|
|
11
|
+
/** Question ID within the round. */
|
|
12
|
+
id: string;
|
|
13
|
+
/** The question text. */
|
|
14
|
+
question: string;
|
|
15
|
+
/** Context from the spec that triggered this question. */
|
|
16
|
+
context?: string;
|
|
17
|
+
/** Section of the spec this relates to. */
|
|
18
|
+
section?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ClarifyAnswer {
|
|
21
|
+
/** Matches question.id. */
|
|
22
|
+
questionId: string;
|
|
23
|
+
/** The answer text. */
|
|
24
|
+
answer: string;
|
|
25
|
+
/** Who provided the answer. */
|
|
26
|
+
answeredBy: string;
|
|
27
|
+
/** ISO timestamp. */
|
|
28
|
+
answeredAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface ClarifyRound {
|
|
31
|
+
/** Round number (1-based). */
|
|
32
|
+
round: number;
|
|
33
|
+
/** ISO timestamp of round start. */
|
|
34
|
+
startedAt: string;
|
|
35
|
+
/** ISO timestamp of round completion. */
|
|
36
|
+
completedAt?: string;
|
|
37
|
+
/** Questions asked in this round. */
|
|
38
|
+
questions: ClarifyQuestion[];
|
|
39
|
+
/** Answers received. */
|
|
40
|
+
answers: ClarifyAnswer[];
|
|
41
|
+
/** Status of this round. */
|
|
42
|
+
status: "open" | "completed" | "rejected";
|
|
43
|
+
}
|
|
44
|
+
export interface ClarifyLedger {
|
|
45
|
+
/** Feature ID. */
|
|
46
|
+
featureId: string;
|
|
47
|
+
/** Reference to spec.md. */
|
|
48
|
+
specRef: string;
|
|
49
|
+
/** All rounds. */
|
|
50
|
+
rounds: ClarifyRound[];
|
|
51
|
+
/** Total questions across all rounds. */
|
|
52
|
+
totalQuestions: number;
|
|
53
|
+
/** Total answered. */
|
|
54
|
+
totalAnswered: number;
|
|
55
|
+
}
|
|
56
|
+
export interface ClarifyResult {
|
|
57
|
+
/** The updated spec body (with clarifications applied). */
|
|
58
|
+
updatedBody?: string;
|
|
59
|
+
/** Unresolved clarification markers. */
|
|
60
|
+
unresolvedMarkers: ClarifyMarker[];
|
|
61
|
+
/** Whether the spec has unresolved clarifications. */
|
|
62
|
+
hasUnresolved: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface ClarifyMarker {
|
|
65
|
+
/** Line number (0-based). */
|
|
66
|
+
line: number;
|
|
67
|
+
/** The marker text. */
|
|
68
|
+
text: string;
|
|
69
|
+
/** Optional label extracted from the marker. */
|
|
70
|
+
label?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Detect [NEEDS CLARIFICATION] markers in a spec body.
|
|
74
|
+
*
|
|
75
|
+
* HTML comments (`<!-- ... -->`) are stripped before scanning to avoid
|
|
76
|
+
* false positives from template instruction blocks (T5.1).
|
|
77
|
+
*/
|
|
78
|
+
export declare function detectClarificationMarkers(body: string): ClarifyMarker[];
|
|
79
|
+
/**
|
|
80
|
+
* Remove HTML comments from markdown content while preserving line count
|
|
81
|
+
* (replaced with empty strings to keep line numbers stable).
|
|
82
|
+
*
|
|
83
|
+
* Shared with the checklist parser (C6) and the spec parser (C1) so that
|
|
84
|
+
* instruction blocks inside `<!-- ... -->` never count as real content.
|
|
85
|
+
*/
|
|
86
|
+
export declare function stripHtmlComments(content: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* Check if a spec has unresolved clarifications.
|
|
89
|
+
* Used by gate.clarify.no_contradictions.
|
|
90
|
+
*/
|
|
91
|
+
export declare function hasUnresolvedClarifications(specPath: string): ClarifyResult;
|
|
92
|
+
/**
|
|
93
|
+
* Get the ledger file path for a feature.
|
|
94
|
+
*/
|
|
95
|
+
export declare function ledgerPath(featureDir: string): string;
|
|
96
|
+
/**
|
|
97
|
+
* Load or initialize a clarification ledger.
|
|
98
|
+
*/
|
|
99
|
+
export declare function loadLedger(featureDir: string, featureId: string): ClarifyLedger;
|
|
100
|
+
/**
|
|
101
|
+
* Append a completed round to the ledger.
|
|
102
|
+
*/
|
|
103
|
+
export declare function appendRound(featureDir: string, round: ClarifyRound): void;
|
|
104
|
+
/**
|
|
105
|
+
* Append a round rejection to the ledger.
|
|
106
|
+
*/
|
|
107
|
+
export declare function appendRoundRejection(featureDir: string, roundNumber: number, reason: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Apply answered clarifications to the spec body.
|
|
110
|
+
* Replaces [NEEDS CLARIFICATION: <label>] with the answer text.
|
|
111
|
+
*/
|
|
112
|
+
export declare function applyClarifications(specBody: string, answers: Array<{
|
|
113
|
+
label: string;
|
|
114
|
+
answer: string;
|
|
115
|
+
}>): string;
|
|
116
|
+
//# sourceMappingURL=clarify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clarify.d.ts","sourceRoot":"","sources":["../../src/models/clarify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,wBAAwB;IACxB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,sDAAsD;IACtD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAsBxE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAa3E;AAQD;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,aAAa,CA0Cf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAQzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CASN;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,MAAM,CAUR"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clarify Model — Q&A rounds on spec.md.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1b: Optional clarification step between spec and plan.
|
|
5
|
+
* Produces append-only clarification ledger and detects unresolved
|
|
6
|
+
* [NEEDS CLARIFICATION] blocks in the spec.
|
|
7
|
+
*
|
|
8
|
+
* Blueprint ref: 16.5 — "raptor clarify {feature}".
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, existsSync, appendFileSync, } from "node:fs";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { parseFrontmatter } from "../frontmatter/index.js";
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Clarification marker detection
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Matches `[NEEDS CLARIFICATION]`, `[NEEDS CLARIFICATION: <q>]`, and the
|
|
17
|
+
// colon-less form `[NEEDS CLARIFICATION <q>]` / `[NEEDS CLARIFICATION — <q>]`
|
|
18
|
+
// that the canonical templates embed (e.g. spec.md.hbs `[NEEDS CLARIFICATION
|
|
19
|
+
// which flows]`). The optional separator group accepts `:`, whitespace, or a
|
|
20
|
+
// dash/em-dash before the label so none of those forms is missed (C2).
|
|
21
|
+
const CLARIFICATION_RE = /\[NEEDS CLARIFICATION(?:[:\s—-]+([^\]]*))?\]/g;
|
|
22
|
+
/**
|
|
23
|
+
* Detect [NEEDS CLARIFICATION] markers in a spec body.
|
|
24
|
+
*
|
|
25
|
+
* HTML comments (`<!-- ... -->`) are stripped before scanning to avoid
|
|
26
|
+
* false positives from template instruction blocks (T5.1).
|
|
27
|
+
*/
|
|
28
|
+
export function detectClarificationMarkers(body) {
|
|
29
|
+
const markers = [];
|
|
30
|
+
// T5.1: Strip HTML comments to avoid flagging markers inside instruction blocks
|
|
31
|
+
const stripped = stripHtmlComments(body);
|
|
32
|
+
const lines = stripped.split("\n");
|
|
33
|
+
for (let i = 0; i < lines.length; i++) {
|
|
34
|
+
const line = lines[i];
|
|
35
|
+
let m;
|
|
36
|
+
const re = new RegExp(CLARIFICATION_RE);
|
|
37
|
+
while ((m = re.exec(line)) !== null) {
|
|
38
|
+
markers.push({
|
|
39
|
+
line: i,
|
|
40
|
+
text: m[0],
|
|
41
|
+
label: m[1]?.trim() || undefined,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return markers;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Remove HTML comments from markdown content while preserving line count
|
|
49
|
+
* (replaced with empty strings to keep line numbers stable).
|
|
50
|
+
*
|
|
51
|
+
* Shared with the checklist parser (C6) and the spec parser (C1) so that
|
|
52
|
+
* instruction blocks inside `<!-- ... -->` never count as real content.
|
|
53
|
+
*/
|
|
54
|
+
export function stripHtmlComments(content) {
|
|
55
|
+
return content.replace(/<!--[\s\S]*?-->/g, (match) => {
|
|
56
|
+
// Preserve newlines to keep line numbers accurate
|
|
57
|
+
return match.replace(/[^\n]/g, "");
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check if a spec has unresolved clarifications.
|
|
62
|
+
* Used by gate.clarify.no_contradictions.
|
|
63
|
+
*/
|
|
64
|
+
export function hasUnresolvedClarifications(specPath) {
|
|
65
|
+
if (!existsSync(specPath)) {
|
|
66
|
+
return { unresolvedMarkers: [], hasUnresolved: false };
|
|
67
|
+
}
|
|
68
|
+
const raw = readFileSync(specPath, "utf8");
|
|
69
|
+
const { body } = parseFrontmatter(raw);
|
|
70
|
+
const markers = detectClarificationMarkers(body);
|
|
71
|
+
return {
|
|
72
|
+
unresolvedMarkers: markers,
|
|
73
|
+
hasUnresolved: markers.length > 0,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Clarification ledger management
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
const LEDGER_FILENAME = "spec.md.clarifications.jsonl";
|
|
80
|
+
/**
|
|
81
|
+
* Get the ledger file path for a feature.
|
|
82
|
+
*/
|
|
83
|
+
export function ledgerPath(featureDir) {
|
|
84
|
+
return join(featureDir, LEDGER_FILENAME);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Load or initialize a clarification ledger.
|
|
88
|
+
*/
|
|
89
|
+
export function loadLedger(featureDir, featureId) {
|
|
90
|
+
const path = ledgerPath(featureDir);
|
|
91
|
+
if (!existsSync(path)) {
|
|
92
|
+
return {
|
|
93
|
+
featureId,
|
|
94
|
+
specRef: "",
|
|
95
|
+
rounds: [],
|
|
96
|
+
totalQuestions: 0,
|
|
97
|
+
totalAnswered: 0,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const lines = readFileSync(path, "utf8")
|
|
101
|
+
.split("\n")
|
|
102
|
+
.filter((l) => l.trim());
|
|
103
|
+
const rounds = [];
|
|
104
|
+
for (const line of lines) {
|
|
105
|
+
try {
|
|
106
|
+
const event = JSON.parse(line);
|
|
107
|
+
if (event.type === "round.completed" && event.round) {
|
|
108
|
+
rounds.push(event.round);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Malformed line, skip
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const totalQuestions = rounds.reduce((s, r) => s + r.questions.length, 0);
|
|
116
|
+
const totalAnswered = rounds.reduce((s, r) => s + r.answers.length, 0);
|
|
117
|
+
return {
|
|
118
|
+
featureId,
|
|
119
|
+
specRef: "",
|
|
120
|
+
rounds,
|
|
121
|
+
totalQuestions,
|
|
122
|
+
totalAnswered,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Append a completed round to the ledger.
|
|
127
|
+
*/
|
|
128
|
+
export function appendRound(featureDir, round) {
|
|
129
|
+
const path = ledgerPath(featureDir);
|
|
130
|
+
const event = {
|
|
131
|
+
type: "round.completed",
|
|
132
|
+
timestamp: new Date().toISOString(),
|
|
133
|
+
round,
|
|
134
|
+
};
|
|
135
|
+
appendFileSync(path, JSON.stringify(event) + "\n");
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Append a round rejection to the ledger.
|
|
139
|
+
*/
|
|
140
|
+
export function appendRoundRejection(featureDir, roundNumber, reason) {
|
|
141
|
+
const path = ledgerPath(featureDir);
|
|
142
|
+
const event = {
|
|
143
|
+
type: "round.rejected",
|
|
144
|
+
timestamp: new Date().toISOString(),
|
|
145
|
+
round: roundNumber,
|
|
146
|
+
reason,
|
|
147
|
+
};
|
|
148
|
+
appendFileSync(path, JSON.stringify(event) + "\n");
|
|
149
|
+
}
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
// Spec update with clarifications
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
/**
|
|
154
|
+
* Apply answered clarifications to the spec body.
|
|
155
|
+
* Replaces [NEEDS CLARIFICATION: <label>] with the answer text.
|
|
156
|
+
*/
|
|
157
|
+
export function applyClarifications(specBody, answers) {
|
|
158
|
+
let result = specBody;
|
|
159
|
+
for (const { label, answer } of answers) {
|
|
160
|
+
const escapedLabel = label.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
161
|
+
const re = new RegExp(`\\[NEEDS CLARIFICATION:\\s*${escapedLabel}\\]`, "g");
|
|
162
|
+
result = result.replace(re, answer);
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=clarify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../src/models/clarify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ImplLog Model — implementation log and M7 trace source.
|
|
3
|
+
*
|
|
4
|
+
* This file tracks the execution of tasks and the artifacts produced,
|
|
5
|
+
* mapping them back to acceptance criteria for M7 conformance.
|
|
6
|
+
*
|
|
7
|
+
* Blueprint ref: 18.3.2 — "trace.artifact_to_task (em impl-log.md)".
|
|
8
|
+
*/
|
|
9
|
+
export type EvidenceKind = "code" | "test" | "config" | "doc" | "integration" | "e2e" | "contract" | "policy" | "human-review" | "deferred";
|
|
10
|
+
export interface ImplArtifact {
|
|
11
|
+
path: string;
|
|
12
|
+
hash: string;
|
|
13
|
+
traces_acceptance: string[];
|
|
14
|
+
evidence_kind: EvidenceKind;
|
|
15
|
+
diff_ref?: string;
|
|
16
|
+
justification?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface TaskExecution {
|
|
19
|
+
task_id: string;
|
|
20
|
+
status: "completed" | "failed" | "skipped";
|
|
21
|
+
completed_at: string;
|
|
22
|
+
artifacts: ImplArtifact[];
|
|
23
|
+
}
|
|
24
|
+
export interface ImplLogFrontmatter {
|
|
25
|
+
id: string;
|
|
26
|
+
slug: string;
|
|
27
|
+
executions: TaskExecution[];
|
|
28
|
+
}
|
|
29
|
+
export interface ImplLogFile {
|
|
30
|
+
data: ImplLogFrontmatter;
|
|
31
|
+
body: string;
|
|
32
|
+
raw: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse an impl-log.md file.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseImplLog(filePathOrContent: string): ImplLogFile;
|
|
38
|
+
/**
|
|
39
|
+
* Append or update a task execution in the impl-log.md content.
|
|
40
|
+
*/
|
|
41
|
+
export declare function updateImplLogExecution(rawContent: string, execution: TaskExecution): string;
|
|
42
|
+
export interface AcceptanceEvidence {
|
|
43
|
+
kind: EvidenceKind;
|
|
44
|
+
path: string;
|
|
45
|
+
task_id: string;
|
|
46
|
+
hash: string;
|
|
47
|
+
justification?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Compute the projection of acceptance criteria to evidence.
|
|
51
|
+
* Maps each Ak to a list of artifacts/evidences covering it.
|
|
52
|
+
*/
|
|
53
|
+
export declare function computeAcceptanceCoverage(specAcceptanceIds: string[], taskToAcceptance: Record<string, string[]>, implLog: ImplLogFile): Record<string, AcceptanceEvidence[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Infer the evidence kind from a file path.
|
|
56
|
+
*
|
|
57
|
+
* Priority:
|
|
58
|
+
* 1. Test files (*.test.*, *.spec.*, /tests/, etc.) → "test"
|
|
59
|
+
* 2. Config files (*.yml, *.json, *.toml, etc.) → "config"
|
|
60
|
+
* 3. Documentation (*.md, *.txt, *.adoc) → "doc"
|
|
61
|
+
* 4. Everything else → "code"
|
|
62
|
+
*/
|
|
63
|
+
export declare function inferEvidenceKind(filePath: string): EvidenceKind;
|
|
64
|
+
//# sourceMappingURL=impl-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl-log.d.ts","sourceRoot":"","sources":["../../src/models/impl-log.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,KAAK,GACL,UAAU,GACV,QAAQ,GACR,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAYnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,aAAa,GACvB,MAAM,CAgDR;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC1C,OAAO,EAAE,WAAW,GACnB,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CA+BtC;AAUD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAoBhE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ImplLog Model — implementation log and M7 trace source.
|
|
3
|
+
*
|
|
4
|
+
* This file tracks the execution of tasks and the artifacts produced,
|
|
5
|
+
* mapping them back to acceptance criteria for M7 conformance.
|
|
6
|
+
*
|
|
7
|
+
* Blueprint ref: 18.3.2 — "trace.artifact_to_task (em impl-log.md)".
|
|
8
|
+
*/
|
|
9
|
+
import { parseFrontmatter } from "../frontmatter/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Parse an impl-log.md file.
|
|
12
|
+
*/
|
|
13
|
+
export function parseImplLog(filePathOrContent) {
|
|
14
|
+
const { data, body, raw } = parseFrontmatter(filePathOrContent);
|
|
15
|
+
return {
|
|
16
|
+
data: {
|
|
17
|
+
id: data.id,
|
|
18
|
+
slug: data.slug,
|
|
19
|
+
executions: data.executions || [],
|
|
20
|
+
},
|
|
21
|
+
body,
|
|
22
|
+
raw,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Append or update a task execution in the impl-log.md content.
|
|
27
|
+
*/
|
|
28
|
+
export function updateImplLogExecution(rawContent, execution) {
|
|
29
|
+
const { data, body } = parseFrontmatter(rawContent);
|
|
30
|
+
const executions = data.executions || [];
|
|
31
|
+
const existingIdx = executions.findIndex(e => e.task_id === execution.task_id);
|
|
32
|
+
if (existingIdx >= 0) {
|
|
33
|
+
executions[existingIdx] = execution;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
executions.push(execution);
|
|
37
|
+
}
|
|
38
|
+
// Serialize back to YAML frontmatter
|
|
39
|
+
// Note: For simplicity in this core implementation, we assume a basic YAML serializer
|
|
40
|
+
// or we just reconstruct the string. Since we have a template system, we might use it.
|
|
41
|
+
// However, for a surgical update, we'll just return the new frontmatter + body.
|
|
42
|
+
const newFrontmatter = {
|
|
43
|
+
...data,
|
|
44
|
+
executions,
|
|
45
|
+
};
|
|
46
|
+
const fmString = JSON.stringify(newFrontmatter, null, 2); // Fallback to JSON-like for now if YAML is complex
|
|
47
|
+
// Better: use a simple YAML-like reconstruction for the known fields
|
|
48
|
+
const yamlLines = [
|
|
49
|
+
"---",
|
|
50
|
+
`id: "${newFrontmatter.id}"`,
|
|
51
|
+
`slug: "${newFrontmatter.slug}"`,
|
|
52
|
+
"executions:",
|
|
53
|
+
];
|
|
54
|
+
for (const exe of newFrontmatter.executions) {
|
|
55
|
+
yamlLines.push(` - task_id: "${exe.task_id}"`);
|
|
56
|
+
yamlLines.push(` status: "${exe.status}"`);
|
|
57
|
+
yamlLines.push(` completed_at: "${exe.completed_at}"`);
|
|
58
|
+
yamlLines.push(" artifacts:");
|
|
59
|
+
for (const art of exe.artifacts) {
|
|
60
|
+
yamlLines.push(` - path: "${art.path}"`);
|
|
61
|
+
yamlLines.push(` hash: "${art.hash}"`);
|
|
62
|
+
yamlLines.push(` evidence_kind: "${art.evidence_kind}"`);
|
|
63
|
+
yamlLines.push(` traces_acceptance: ${JSON.stringify(art.traces_acceptance)}`);
|
|
64
|
+
if (art.diff_ref)
|
|
65
|
+
yamlLines.push(` diff_ref: "${art.diff_ref}"`);
|
|
66
|
+
if (art.justification)
|
|
67
|
+
yamlLines.push(` justification: "${art.justification}"`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
yamlLines.push("---");
|
|
71
|
+
return `${yamlLines.join("\n")}\n${body}`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Compute the projection of acceptance criteria to evidence.
|
|
75
|
+
* Maps each Ak to a list of artifacts/evidences covering it.
|
|
76
|
+
*/
|
|
77
|
+
export function computeAcceptanceCoverage(specAcceptanceIds, taskToAcceptance, implLog) {
|
|
78
|
+
const coverage = {};
|
|
79
|
+
// Initialize
|
|
80
|
+
for (const aId of specAcceptanceIds) {
|
|
81
|
+
coverage[aId] = [];
|
|
82
|
+
}
|
|
83
|
+
// Trace from impl-log
|
|
84
|
+
for (const execution of implLog.data.executions) {
|
|
85
|
+
for (const artifact of execution.artifacts) {
|
|
86
|
+
// Use explicit traces if provided in artifact
|
|
87
|
+
const aIds = artifact.traces_acceptance.length > 0
|
|
88
|
+
? artifact.traces_acceptance
|
|
89
|
+
: (taskToAcceptance[execution.task_id] || []);
|
|
90
|
+
for (const aId of aIds) {
|
|
91
|
+
if (coverage[aId]) {
|
|
92
|
+
coverage[aId].push({
|
|
93
|
+
kind: artifact.evidence_kind,
|
|
94
|
+
path: artifact.path,
|
|
95
|
+
task_id: execution.task_id,
|
|
96
|
+
hash: artifact.hash,
|
|
97
|
+
justification: artifact.justification,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return coverage;
|
|
104
|
+
}
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// Evidence kind inference from file path (T6.1)
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
const TEST_PATTERNS = [".test.", ".spec.", "/tests/", "/specs/", "/__tests__/", "/__mocks__/"];
|
|
109
|
+
const CONFIG_EXTENSIONS = [".yml", ".yaml", ".json", ".toml", ".env", ".rc", ".ini", ".config."];
|
|
110
|
+
const DOC_EXTENSIONS = [".md", ".txt", ".adoc", ".rst", ".mdx"];
|
|
111
|
+
/**
|
|
112
|
+
* Infer the evidence kind from a file path.
|
|
113
|
+
*
|
|
114
|
+
* Priority:
|
|
115
|
+
* 1. Test files (*.test.*, *.spec.*, /tests/, etc.) → "test"
|
|
116
|
+
* 2. Config files (*.yml, *.json, *.toml, etc.) → "config"
|
|
117
|
+
* 3. Documentation (*.md, *.txt, *.adoc) → "doc"
|
|
118
|
+
* 4. Everything else → "code"
|
|
119
|
+
*/
|
|
120
|
+
export function inferEvidenceKind(filePath) {
|
|
121
|
+
const lower = filePath.toLowerCase();
|
|
122
|
+
// 1. Test files (highest priority — a .test.json is a test, not config)
|
|
123
|
+
if (TEST_PATTERNS.some((p) => lower.includes(p))) {
|
|
124
|
+
return "test";
|
|
125
|
+
}
|
|
126
|
+
// 2. Config files
|
|
127
|
+
if (CONFIG_EXTENSIONS.some((ext) => lower.endsWith(ext) || lower.includes(ext))) {
|
|
128
|
+
return "config";
|
|
129
|
+
}
|
|
130
|
+
// 3. Documentation
|
|
131
|
+
if (DOC_EXTENSIONS.some((ext) => lower.endsWith(ext))) {
|
|
132
|
+
return "doc";
|
|
133
|
+
}
|
|
134
|
+
// 4. Default
|
|
135
|
+
return "code";
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=impl-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl-log.js","sourceRoot":"","sources":["../../src/models/impl-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type PlanStatus = "draft" | "approved" | "stale";
|
|
2
|
+
export type PhaseMinusOneStatus = "pending" | "passed" | "justified" | "violated";
|
|
3
|
+
export interface PlanFrontmatter {
|
|
4
|
+
id: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
spec_hash: string;
|
|
7
|
+
spec_ref: string;
|
|
8
|
+
constitution_hash: string;
|
|
9
|
+
created: string;
|
|
10
|
+
status: PlanStatus;
|
|
11
|
+
phase_minus_one: PhaseMinusOneStatus;
|
|
12
|
+
approved_by: string | null;
|
|
13
|
+
approved_at: string | null;
|
|
14
|
+
audit_ref: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface Plan {
|
|
17
|
+
path: string;
|
|
18
|
+
raw: string;
|
|
19
|
+
hash: string;
|
|
20
|
+
data: PlanFrontmatter;
|
|
21
|
+
body: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function parsePlan(path: string): Plan;
|
|
24
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/models/plan.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,QAAQ,GACR,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,mBAAmB,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAU5C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { parseFrontmatter } from "../frontmatter/index.js";
|
|
3
|
+
import { hashString } from "../audit/hash.js";
|
|
4
|
+
export function parsePlan(path) {
|
|
5
|
+
const raw = readFileSync(path, "utf8");
|
|
6
|
+
const { data, body } = parseFrontmatter(raw);
|
|
7
|
+
return {
|
|
8
|
+
path,
|
|
9
|
+
raw,
|
|
10
|
+
hash: hashString(raw),
|
|
11
|
+
data,
|
|
12
|
+
body,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/models/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA+B9C,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAkB,GAAG,CAAC,CAAC;IAC9D,OAAO;QACL,IAAI;QACJ,GAAG;QACH,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;QACrB,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type SpecStatus = "draft" | "approved" | "stale";
|
|
2
|
+
export interface SpecFrontmatter {
|
|
3
|
+
id: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
platform: string;
|
|
6
|
+
jira?: string;
|
|
7
|
+
created: string;
|
|
8
|
+
status: SpecStatus;
|
|
9
|
+
audit_ref: string | null;
|
|
10
|
+
acceptance?: {
|
|
11
|
+
ids: string[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface Spec {
|
|
15
|
+
path: string;
|
|
16
|
+
raw: string;
|
|
17
|
+
hash: string;
|
|
18
|
+
data: SpecFrontmatter;
|
|
19
|
+
body: string;
|
|
20
|
+
clarifications: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function parseSpec(path: string): Spec;
|
|
23
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/models/spec.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkB5C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { parseFrontmatter } from "../frontmatter/index.js";
|
|
3
|
+
import { hashString } from "../audit/hash.js";
|
|
4
|
+
import { detectClarificationMarkers } from "./clarify.js";
|
|
5
|
+
export function parseSpec(path) {
|
|
6
|
+
const raw = readFileSync(path, "utf8");
|
|
7
|
+
const { data, body } = parseFrontmatter(raw);
|
|
8
|
+
// Detect unresolved markers via the shared detector, which strips HTML
|
|
9
|
+
// comments before scanning. Running the raw regex over `raw` (C1) wrongly
|
|
10
|
+
// counted markers inside template instruction blocks (`<!-- ... -->`),
|
|
11
|
+
// making gate.spec.clarifications a false positive on every spec.
|
|
12
|
+
const clarifications = detectClarificationMarkers(body).map((marker) => marker.label ?? "");
|
|
13
|
+
return {
|
|
14
|
+
path,
|
|
15
|
+
raw,
|
|
16
|
+
hash: hashString(raw),
|
|
17
|
+
data,
|
|
18
|
+
body,
|
|
19
|
+
clarifications,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/models/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AA0B1D,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAkB,GAAG,CAAC,CAAC;IAC9D,uEAAuE;IACvE,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,CACzD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAC/B,CAAC;IACF,OAAO;QACL,IAAI;QACJ,GAAG;QACH,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;QACrB,IAAI;QACJ,IAAI;QACJ,cAAc;KACf,CAAC;AACJ,CAAC"}
|