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,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact Backup — preserve previous versions before overwriting.
|
|
3
|
+
*
|
|
4
|
+
* Before a phase command (re-)generates a slash-command prompt file or
|
|
5
|
+
* writes a new canonical artifact, we copy the previous file (if any)
|
|
6
|
+
* into `.raptor/backup/<ISO>/<relative-path>`. This gives the user a
|
|
7
|
+
* cheap "undo" and lets audit trails reference the pre-state.
|
|
8
|
+
*
|
|
9
|
+
* Design notes:
|
|
10
|
+
* - Backups are timestamped per call — multiple files backed up in the
|
|
11
|
+
* same instant share a directory (we expose `createBackupSession` for
|
|
12
|
+
* that), otherwise each call gets its own unique directory.
|
|
13
|
+
* - We intentionally do NOT rotate/prune; cleanup is the user's call.
|
|
14
|
+
* - Missing source files are a no-op (returns `null`) — not an error,
|
|
15
|
+
* because "first write" is the common case.
|
|
16
|
+
*
|
|
17
|
+
* Blueprint ref: 17.4 — "Idempotência e versionamento de prompts".
|
|
18
|
+
*/
|
|
19
|
+
export interface BackupResult {
|
|
20
|
+
/** Absolute path of the source file we backed up. */
|
|
21
|
+
source: string;
|
|
22
|
+
/** Absolute path where the backup was written. */
|
|
23
|
+
destination: string;
|
|
24
|
+
/** Directory path (absolute) of the backup session. */
|
|
25
|
+
sessionDir: string;
|
|
26
|
+
/** ISO timestamp used to name the session directory. */
|
|
27
|
+
timestamp: string;
|
|
28
|
+
}
|
|
29
|
+
export interface BackupSession {
|
|
30
|
+
/** Absolute session directory (e.g. `<root>/.raptor/backup/2026-04-23T...`). */
|
|
31
|
+
dir: string;
|
|
32
|
+
/** ISO timestamp used in the dir name (reused for logging). */
|
|
33
|
+
timestamp: string;
|
|
34
|
+
/**
|
|
35
|
+
* Back up one file into this session dir. Returns `null` if the source
|
|
36
|
+
* file does not exist.
|
|
37
|
+
*/
|
|
38
|
+
backup(absoluteSource: string): BackupResult | null;
|
|
39
|
+
/**
|
|
40
|
+
* Remove the session directory if no files were backed up to it.
|
|
41
|
+
* Used by callers that want to avoid leaving empty dirs.
|
|
42
|
+
*/
|
|
43
|
+
discardIfEmpty(): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Default relative location inside a project root where backups live.
|
|
47
|
+
* Exported so callers can construct informational messages.
|
|
48
|
+
*/
|
|
49
|
+
export declare const DEFAULT_BACKUP_SUBDIR = ".raptor/backup";
|
|
50
|
+
/**
|
|
51
|
+
* Build an ISO timestamp safe for a directory name (colons replaced).
|
|
52
|
+
* Example: `2026-04-23T18-42-13-021Z`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function backupTimestamp(date?: Date): string;
|
|
55
|
+
/**
|
|
56
|
+
* Back up a single file into a freshly-created session directory.
|
|
57
|
+
*
|
|
58
|
+
* If the source file does not exist, this is a no-op and returns `null`.
|
|
59
|
+
* Otherwise the file is copied under `<root>/.raptor/backup/<ts>/<rel>`
|
|
60
|
+
* where `<rel>` is the source path relative to `projectRoot`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function backupIfExists(projectRoot: string, absoluteSource: string): BackupResult | null;
|
|
63
|
+
/**
|
|
64
|
+
* Start a backup session. Useful when a command is about to overwrite
|
|
65
|
+
* several files (e.g. one prompt per adapter) and we want them grouped
|
|
66
|
+
* under a single timestamp directory.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createBackupSession(projectRoot: string, timestamp?: string): BackupSession;
|
|
69
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/agents/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACpD;;;OAGG;IACH,cAAc,IAAI,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAE/D;AAWD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,YAAY,GAAG,IAAI,CAMrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAA0B,GACpC,aAAa,CAqDf"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact Backup — preserve previous versions before overwriting.
|
|
3
|
+
*
|
|
4
|
+
* Before a phase command (re-)generates a slash-command prompt file or
|
|
5
|
+
* writes a new canonical artifact, we copy the previous file (if any)
|
|
6
|
+
* into `.raptor/backup/<ISO>/<relative-path>`. This gives the user a
|
|
7
|
+
* cheap "undo" and lets audit trails reference the pre-state.
|
|
8
|
+
*
|
|
9
|
+
* Design notes:
|
|
10
|
+
* - Backups are timestamped per call — multiple files backed up in the
|
|
11
|
+
* same instant share a directory (we expose `createBackupSession` for
|
|
12
|
+
* that), otherwise each call gets its own unique directory.
|
|
13
|
+
* - We intentionally do NOT rotate/prune; cleanup is the user's call.
|
|
14
|
+
* - Missing source files are a no-op (returns `null`) — not an error,
|
|
15
|
+
* because "first write" is the common case.
|
|
16
|
+
*
|
|
17
|
+
* Blueprint ref: 17.4 — "Idempotência e versionamento de prompts".
|
|
18
|
+
*/
|
|
19
|
+
import { existsSync, mkdirSync, copyFileSync, rmSync } from "node:fs";
|
|
20
|
+
import { dirname, isAbsolute, join, relative } from "node:path";
|
|
21
|
+
/**
|
|
22
|
+
* Default relative location inside a project root where backups live.
|
|
23
|
+
* Exported so callers can construct informational messages.
|
|
24
|
+
*/
|
|
25
|
+
export const DEFAULT_BACKUP_SUBDIR = ".raptor/backup";
|
|
26
|
+
/**
|
|
27
|
+
* Build an ISO timestamp safe for a directory name (colons replaced).
|
|
28
|
+
* Example: `2026-04-23T18-42-13-021Z`.
|
|
29
|
+
*/
|
|
30
|
+
export function backupTimestamp(date = new Date()) {
|
|
31
|
+
return date.toISOString().replace(/:/g, "-").replace(/\./g, "-");
|
|
32
|
+
}
|
|
33
|
+
function resolveBackupRoot(projectRoot) {
|
|
34
|
+
if (!isAbsolute(projectRoot)) {
|
|
35
|
+
throw new Error(`projectRoot must be absolute for backup operations: "${projectRoot}"`);
|
|
36
|
+
}
|
|
37
|
+
return join(projectRoot, DEFAULT_BACKUP_SUBDIR);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Back up a single file into a freshly-created session directory.
|
|
41
|
+
*
|
|
42
|
+
* If the source file does not exist, this is a no-op and returns `null`.
|
|
43
|
+
* Otherwise the file is copied under `<root>/.raptor/backup/<ts>/<rel>`
|
|
44
|
+
* where `<rel>` is the source path relative to `projectRoot`.
|
|
45
|
+
*/
|
|
46
|
+
export function backupIfExists(projectRoot, absoluteSource) {
|
|
47
|
+
if (!existsSync(absoluteSource))
|
|
48
|
+
return null;
|
|
49
|
+
const session = createBackupSession(projectRoot);
|
|
50
|
+
const result = session.backup(absoluteSource);
|
|
51
|
+
session.discardIfEmpty();
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Start a backup session. Useful when a command is about to overwrite
|
|
56
|
+
* several files (e.g. one prompt per adapter) and we want them grouped
|
|
57
|
+
* under a single timestamp directory.
|
|
58
|
+
*/
|
|
59
|
+
export function createBackupSession(projectRoot, timestamp = backupTimestamp()) {
|
|
60
|
+
const backupRoot = resolveBackupRoot(projectRoot);
|
|
61
|
+
const dir = join(backupRoot, timestamp);
|
|
62
|
+
let materialized = false;
|
|
63
|
+
let count = 0;
|
|
64
|
+
const ensureDir = () => {
|
|
65
|
+
if (!materialized) {
|
|
66
|
+
mkdirSync(dir, { recursive: true });
|
|
67
|
+
materialized = true;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return {
|
|
71
|
+
dir,
|
|
72
|
+
timestamp,
|
|
73
|
+
backup(absoluteSource) {
|
|
74
|
+
if (!isAbsolute(absoluteSource)) {
|
|
75
|
+
throw new Error(`Backup source must be absolute: "${absoluteSource}"`);
|
|
76
|
+
}
|
|
77
|
+
if (!existsSync(absoluteSource))
|
|
78
|
+
return null;
|
|
79
|
+
const rel = relative(projectRoot, absoluteSource);
|
|
80
|
+
if (rel.startsWith("..") || isAbsolute(rel)) {
|
|
81
|
+
throw new Error(`Backup source must live under projectRoot. source="${absoluteSource}" root="${projectRoot}"`);
|
|
82
|
+
}
|
|
83
|
+
const destination = join(dir, rel);
|
|
84
|
+
ensureDir();
|
|
85
|
+
mkdirSync(dirname(destination), { recursive: true });
|
|
86
|
+
copyFileSync(absoluteSource, destination);
|
|
87
|
+
count += 1;
|
|
88
|
+
return {
|
|
89
|
+
source: absoluteSource,
|
|
90
|
+
destination,
|
|
91
|
+
sessionDir: dir,
|
|
92
|
+
timestamp,
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
discardIfEmpty() {
|
|
96
|
+
if (!materialized || count > 0)
|
|
97
|
+
return;
|
|
98
|
+
try {
|
|
99
|
+
rmSync(dir, { recursive: true, force: true });
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// ignore — best effort cleanup
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/agents/backup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Configuration — agents.yml parser and validator.
|
|
3
|
+
*
|
|
4
|
+
* Parses, validates, and serializes the `.raptor/agents.yml` configuration.
|
|
5
|
+
* Schema: raptor.agents/v1.
|
|
6
|
+
*
|
|
7
|
+
* Blueprint ref: 17.3 — "Manifesto de orquestração".
|
|
8
|
+
*/
|
|
9
|
+
import type { AgentsConfig } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Parse agents.yml from a project root.
|
|
12
|
+
* Returns null if the file doesn't exist.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadAgentsConfig(projectRoot: string): AgentsConfig | null;
|
|
15
|
+
/**
|
|
16
|
+
* Parse an agents.yml content string into an AgentsConfig.
|
|
17
|
+
* Uses a simplified YAML parser since agents.yml has a predictable schema.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseAgentsYaml(raw: string): AgentsConfig;
|
|
20
|
+
export interface AgentConfigError {
|
|
21
|
+
field: string;
|
|
22
|
+
message: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate an AgentsConfig for semantic correctness.
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateAgentsConfig(config: AgentsConfig): AgentConfigError[];
|
|
28
|
+
/**
|
|
29
|
+
* Generate default agents.yml content for detected agents.
|
|
30
|
+
*/
|
|
31
|
+
export declare function generateAgentsYaml(agents: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
kind: string;
|
|
34
|
+
capabilities: string[];
|
|
35
|
+
}>): string;
|
|
36
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/agents/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAOpB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAkIzD;AAyBD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAqE7E;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAClE,MAAM,CAsCR"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Configuration — agents.yml parser and validator.
|
|
3
|
+
*
|
|
4
|
+
* Parses, validates, and serializes the `.raptor/agents.yml` configuration.
|
|
5
|
+
* Schema: raptor.agents/v1.
|
|
6
|
+
*
|
|
7
|
+
* Blueprint ref: 17.3 — "Manifesto de orquestração".
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { getAgentByKind } from "./registry.js";
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// YAML-like parser (minimal, no external dep)
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Parse agents.yml from a project root.
|
|
17
|
+
* Returns null if the file doesn't exist.
|
|
18
|
+
*/
|
|
19
|
+
export function loadAgentsConfig(projectRoot) {
|
|
20
|
+
const configPath = join(projectRoot, ".raptor", "agents.yml");
|
|
21
|
+
if (!existsSync(configPath))
|
|
22
|
+
return null;
|
|
23
|
+
const raw = readFileSync(configPath, "utf8");
|
|
24
|
+
return parseAgentsYaml(raw);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse an agents.yml content string into an AgentsConfig.
|
|
28
|
+
* Uses a simplified YAML parser since agents.yml has a predictable schema.
|
|
29
|
+
*/
|
|
30
|
+
export function parseAgentsYaml(raw) {
|
|
31
|
+
// We use JSON as the canonical internal format. The YAML is parsed line-by-line
|
|
32
|
+
// into a structured object. This avoids a dependency on a full YAML parser.
|
|
33
|
+
const config = {
|
|
34
|
+
schema: "raptor.agents/v1",
|
|
35
|
+
agents: [],
|
|
36
|
+
policy: {
|
|
37
|
+
default: "human",
|
|
38
|
+
byCommand: {},
|
|
39
|
+
fallbackChain: ["human"],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const lines = raw.split("\n");
|
|
43
|
+
let currentSection = "root";
|
|
44
|
+
let currentAgent = null;
|
|
45
|
+
for (const rawLine of lines) {
|
|
46
|
+
const line = rawLine.trimEnd();
|
|
47
|
+
const trimmed = line.trim();
|
|
48
|
+
if (trimmed === "" || trimmed.startsWith("#"))
|
|
49
|
+
continue;
|
|
50
|
+
// Schema
|
|
51
|
+
if (trimmed.startsWith("schema:")) {
|
|
52
|
+
config.schema = trimmed
|
|
53
|
+
.split(":")
|
|
54
|
+
.slice(1)
|
|
55
|
+
.join(":")
|
|
56
|
+
.trim()
|
|
57
|
+
.replace(/['"]/g, "");
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Section detection
|
|
61
|
+
if (trimmed === "agents:") {
|
|
62
|
+
currentSection = "agents";
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (trimmed === "policy:") {
|
|
66
|
+
currentSection = "policy";
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// Agent entries
|
|
70
|
+
if (currentSection === "agents" || currentSection === "agent") {
|
|
71
|
+
if (trimmed.startsWith("- id:")) {
|
|
72
|
+
if (currentAgent?.id) {
|
|
73
|
+
config.agents.push(finalizeAgent(currentAgent));
|
|
74
|
+
}
|
|
75
|
+
currentAgent = {
|
|
76
|
+
id: trimmed.replace("- id:", "").trim().replace(/['"]/g, ""),
|
|
77
|
+
};
|
|
78
|
+
currentSection = "agent";
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (currentSection === "agent" && currentAgent) {
|
|
82
|
+
if (trimmed.startsWith("kind:")) {
|
|
83
|
+
currentAgent.kind = trimmed
|
|
84
|
+
.replace("kind:", "")
|
|
85
|
+
.trim()
|
|
86
|
+
.replace(/['"]/g, "");
|
|
87
|
+
}
|
|
88
|
+
else if (trimmed.startsWith("version:")) {
|
|
89
|
+
currentAgent.version = trimmed
|
|
90
|
+
.replace("version:", "")
|
|
91
|
+
.trim()
|
|
92
|
+
.replace(/['"]/g, "");
|
|
93
|
+
}
|
|
94
|
+
else if (trimmed.startsWith("installCheck:")) {
|
|
95
|
+
currentAgent.installCheck = trimmed
|
|
96
|
+
.replace("installCheck:", "")
|
|
97
|
+
.trim()
|
|
98
|
+
.replace(/['"]/g, "");
|
|
99
|
+
}
|
|
100
|
+
else if (trimmed.startsWith("capabilities:")) {
|
|
101
|
+
const caps = trimmed.replace("capabilities:", "").trim();
|
|
102
|
+
currentAgent.capabilities = parseInlineArray(caps);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Policy section
|
|
107
|
+
if (currentSection === "policy" ||
|
|
108
|
+
currentSection === "byCommand" ||
|
|
109
|
+
currentSection === "fallback") {
|
|
110
|
+
if (trimmed.startsWith("default:")) {
|
|
111
|
+
config.policy.default = trimmed
|
|
112
|
+
.replace("default:", "")
|
|
113
|
+
.trim()
|
|
114
|
+
.replace(/['"]/g, "");
|
|
115
|
+
currentSection = "policy";
|
|
116
|
+
}
|
|
117
|
+
else if (trimmed === "by_command:" || trimmed === "byCommand:") {
|
|
118
|
+
currentSection = "byCommand";
|
|
119
|
+
}
|
|
120
|
+
else if (trimmed === "fallback_chain:" ||
|
|
121
|
+
trimmed === "fallbackChain:") {
|
|
122
|
+
currentSection = "fallback";
|
|
123
|
+
config.policy.fallbackChain = []; // Reset default before parsing
|
|
124
|
+
}
|
|
125
|
+
else if (currentSection === "byCommand" && trimmed.match(/^\w+:/)) {
|
|
126
|
+
const [key, ...rest] = trimmed.split(":");
|
|
127
|
+
config.policy.byCommand[key.trim()] = rest
|
|
128
|
+
.join(":")
|
|
129
|
+
.trim()
|
|
130
|
+
.replace(/['"]/g, "");
|
|
131
|
+
}
|
|
132
|
+
else if (currentSection === "fallback") {
|
|
133
|
+
if (trimmed.startsWith("[")) {
|
|
134
|
+
config.policy.fallbackChain = parseInlineArray(trimmed);
|
|
135
|
+
}
|
|
136
|
+
else if (trimmed.startsWith("-")) {
|
|
137
|
+
config.policy.fallbackChain.push(trimmed.replace(/^-\s*/, "").replace(/['"]/g, ""));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Flush last agent
|
|
143
|
+
if (currentAgent?.id) {
|
|
144
|
+
config.agents.push(finalizeAgent(currentAgent));
|
|
145
|
+
}
|
|
146
|
+
return config;
|
|
147
|
+
}
|
|
148
|
+
function parseInlineArray(s) {
|
|
149
|
+
const cleaned = s.replace(/[\[\]]/g, "").trim();
|
|
150
|
+
if (!cleaned)
|
|
151
|
+
return [];
|
|
152
|
+
return cleaned
|
|
153
|
+
.split(",")
|
|
154
|
+
.map((x) => x.trim().replace(/['"]/g, ""))
|
|
155
|
+
.filter(Boolean);
|
|
156
|
+
}
|
|
157
|
+
function finalizeAgent(partial) {
|
|
158
|
+
return {
|
|
159
|
+
id: partial.id ?? "unknown",
|
|
160
|
+
kind: partial.kind ?? partial.id ?? "unknown",
|
|
161
|
+
version: partial.version,
|
|
162
|
+
installCheck: partial.installCheck,
|
|
163
|
+
capabilities: partial.capabilities ?? [],
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Validate an AgentsConfig for semantic correctness.
|
|
168
|
+
*/
|
|
169
|
+
export function validateAgentsConfig(config) {
|
|
170
|
+
const errors = [];
|
|
171
|
+
const agentIds = new Set(config.agents.map((a) => a.id));
|
|
172
|
+
// Schema version
|
|
173
|
+
if (config.schema !== "raptor.agents/v1") {
|
|
174
|
+
errors.push({
|
|
175
|
+
field: "schema",
|
|
176
|
+
message: `Unknown schema "${config.schema}", expected "raptor.agents/v1".`,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
// At least one agent
|
|
180
|
+
if (config.agents.length === 0) {
|
|
181
|
+
errors.push({
|
|
182
|
+
field: "agents",
|
|
183
|
+
message: "At least one agent must be configured.",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
// Unique IDs
|
|
187
|
+
const seen = new Set();
|
|
188
|
+
for (const agent of config.agents) {
|
|
189
|
+
if (seen.has(agent.id)) {
|
|
190
|
+
errors.push({
|
|
191
|
+
field: `agents.${agent.id}`,
|
|
192
|
+
message: `Duplicate agent id "${agent.id}".`,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
seen.add(agent.id);
|
|
196
|
+
// Kind maps to a known adapter
|
|
197
|
+
if (!getAgentByKind(agent.kind)) {
|
|
198
|
+
errors.push({
|
|
199
|
+
field: `agents.${agent.id}.kind`,
|
|
200
|
+
message: `Unknown agent kind "${agent.kind}".`,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Policy default references a valid agent
|
|
205
|
+
if (!agentIds.has(config.policy.default)) {
|
|
206
|
+
errors.push({
|
|
207
|
+
field: "policy.default",
|
|
208
|
+
message: `Default agent "${config.policy.default}" is not in agents[].`,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
// by_command values reference valid agents
|
|
212
|
+
for (const [cmd, agentId] of Object.entries(config.policy.byCommand)) {
|
|
213
|
+
if (!agentIds.has(agentId)) {
|
|
214
|
+
errors.push({
|
|
215
|
+
field: `policy.by_command.${cmd}`,
|
|
216
|
+
message: `Agent "${agentId}" is not in agents[].`,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// fallback_chain values reference valid agents
|
|
221
|
+
for (const agentId of config.policy.fallbackChain) {
|
|
222
|
+
if (!agentIds.has(agentId)) {
|
|
223
|
+
errors.push({
|
|
224
|
+
field: "policy.fallback_chain",
|
|
225
|
+
message: `Agent "${agentId}" in fallback_chain is not in agents[].`,
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return errors;
|
|
230
|
+
}
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
// Generator — produce agents.yml from detected agents
|
|
233
|
+
// ---------------------------------------------------------------------------
|
|
234
|
+
/**
|
|
235
|
+
* Generate default agents.yml content for detected agents.
|
|
236
|
+
*/
|
|
237
|
+
export function generateAgentsYaml(agents) {
|
|
238
|
+
const lines = [];
|
|
239
|
+
lines.push("# Raptor — Agent Configuration");
|
|
240
|
+
lines.push("# Gerado automaticamente pelo 'raptor init'. Edite conforme necessário.");
|
|
241
|
+
lines.push("");
|
|
242
|
+
lines.push("schema: raptor.agents/v1");
|
|
243
|
+
lines.push("");
|
|
244
|
+
lines.push("agents:");
|
|
245
|
+
for (const agent of agents) {
|
|
246
|
+
lines.push(` - id: ${agent.id}`);
|
|
247
|
+
lines.push(` kind: ${agent.kind}`);
|
|
248
|
+
lines.push(` capabilities: [${agent.capabilities.join(", ")}]`);
|
|
249
|
+
}
|
|
250
|
+
const defaultAgent = agents[0]?.id ?? "human";
|
|
251
|
+
lines.push("");
|
|
252
|
+
lines.push("policy:");
|
|
253
|
+
lines.push(` default: ${defaultAgent}`);
|
|
254
|
+
lines.push(" by_command:");
|
|
255
|
+
lines.push(` new: ${defaultAgent}`);
|
|
256
|
+
lines.push(` plan: ${defaultAgent}`);
|
|
257
|
+
lines.push(` tasks: ${defaultAgent}`);
|
|
258
|
+
lines.push(` implement: ${defaultAgent}`);
|
|
259
|
+
lines.push(" fallback_chain:");
|
|
260
|
+
for (const agent of agents) {
|
|
261
|
+
lines.push(` - ${agent.id}`);
|
|
262
|
+
}
|
|
263
|
+
// Always ensure human is the ultimate fallback
|
|
264
|
+
if (!agents.some((a) => a.id === "human")) {
|
|
265
|
+
lines.push(" - human");
|
|
266
|
+
}
|
|
267
|
+
lines.push("");
|
|
268
|
+
return lines.join("\n");
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/agents/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context File Manager.
|
|
3
|
+
*
|
|
4
|
+
* Manages delimited blocks in agent context files (CLAUDE.md, AGENTS.md, etc.).
|
|
5
|
+
* Uses idempotent upsert with RAPTOR START/END markers to coexist safely
|
|
6
|
+
* with user-authored content.
|
|
7
|
+
*
|
|
8
|
+
* Blueprint ref: 03§6 — "upsert idempotente delimitado por marcadores".
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Generate the standard Raptor context block content.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildContextBlock(opts: {
|
|
14
|
+
projectName: string;
|
|
15
|
+
preset?: string;
|
|
16
|
+
constitutionArticles?: string[];
|
|
17
|
+
}): string;
|
|
18
|
+
/**
|
|
19
|
+
* Insert or update the Raptor block in an agent context file.
|
|
20
|
+
*
|
|
21
|
+
* - If file doesn't exist: create with block only.
|
|
22
|
+
* - If file exists without block: append block at end.
|
|
23
|
+
* - If file exists with block: replace block content, preserve everything else.
|
|
24
|
+
*/
|
|
25
|
+
export declare function upsertContextFile(filePath: string, content: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Remove the Raptor block from a context file.
|
|
28
|
+
* Preserves all content outside the markers.
|
|
29
|
+
*/
|
|
30
|
+
export declare function removeContextBlock(filePath: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check if a context file contains the Raptor block.
|
|
33
|
+
*/
|
|
34
|
+
export declare function hasContextBlock(filePath: string): boolean;
|
|
35
|
+
//# sourceMappingURL=context-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-file.d.ts","sourceRoot":"","sources":["../../src/agents/context-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC,GAAG,MAAM,CAsCT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAwBzE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAc5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context File Manager.
|
|
3
|
+
*
|
|
4
|
+
* Manages delimited blocks in agent context files (CLAUDE.md, AGENTS.md, etc.).
|
|
5
|
+
* Uses idempotent upsert with RAPTOR START/END markers to coexist safely
|
|
6
|
+
* with user-authored content.
|
|
7
|
+
*
|
|
8
|
+
* Blueprint ref: 03§6 — "upsert idempotente delimitado por marcadores".
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
11
|
+
import { dirname } from "node:path";
|
|
12
|
+
import { mkdirSync } from "node:fs";
|
|
13
|
+
const MARKER_START = "<!-- RAPTOR START -->";
|
|
14
|
+
const MARKER_END = "<!-- RAPTOR END -->";
|
|
15
|
+
/**
|
|
16
|
+
* Generate the standard Raptor context block content.
|
|
17
|
+
*/
|
|
18
|
+
export function buildContextBlock(opts) {
|
|
19
|
+
const lines = [];
|
|
20
|
+
lines.push("# Raptor — Spec-Driven Development Context\n");
|
|
21
|
+
lines.push(`This project (**${opts.projectName}**) is governed by the Raptor (SDD) framework.`);
|
|
22
|
+
lines.push("");
|
|
23
|
+
lines.push("## Core Principles\n");
|
|
24
|
+
lines.push("1. **Specification is the source of truth** — no code without an approved spec (C1).");
|
|
25
|
+
lines.push("2. **Forensic traceability** — every transformation is audited with SHA-256 hashes (C2).");
|
|
26
|
+
lines.push("3. **Justified decisions** — every technical decision cites a constitutional article (C3).");
|
|
27
|
+
lines.push("4. **Constitutional integrity** — CORE block is immutable with verified hash (C4).");
|
|
28
|
+
lines.push("5. **Human in the loop** — critical gates require human approval (C5).");
|
|
29
|
+
if (opts.preset) {
|
|
30
|
+
lines.push(`\n## Active preset: ${opts.preset}\n`);
|
|
31
|
+
}
|
|
32
|
+
if (opts.constitutionArticles && opts.constitutionArticles.length > 0) {
|
|
33
|
+
lines.push(`\n## Applicable articles\n`);
|
|
34
|
+
lines.push(`- ${opts.constitutionArticles.join(", ")}`);
|
|
35
|
+
}
|
|
36
|
+
lines.push("\n## Raptor Commands (slash commands)\n");
|
|
37
|
+
lines.push("- `/raptor-new` — create a new feature spec");
|
|
38
|
+
lines.push("- `/raptor-clarify` — detect and resolve [NEEDS CLARIFICATION] in spec");
|
|
39
|
+
lines.push("- `/raptor-plan` — generate plan.md from an approved spec");
|
|
40
|
+
lines.push("- `/raptor-checklist` — generate or validate thematic checklists (security, a11y, etc.)");
|
|
41
|
+
lines.push("- `/raptor-tasks` — decompose plan into executable tasks");
|
|
42
|
+
lines.push("- `/raptor-analyze` — cross-artifact analysis spec↔plan↔tasks (drift, coverage, M7)");
|
|
43
|
+
lines.push("- `/raptor-implement` — implement tasks with audit trail");
|
|
44
|
+
lines.push("\n## Rules for the agent\n");
|
|
45
|
+
lines.push("- **DO NOT** edit `.raptor/audit.jsonl` — it is append-only managed by Raptor.");
|
|
46
|
+
lines.push("- **DO NOT** edit `.raptor/constitution.md` in the RAPTOR-CORE block.");
|
|
47
|
+
lines.push("- **DO NOT** skip phases — each phase has gates that must be satisfied.");
|
|
48
|
+
lines.push('- **USE** `[NEEDS CLARIFICATION]` markers when information is missing.');
|
|
49
|
+
return lines.join("\n");
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Insert or update the Raptor block in an agent context file.
|
|
53
|
+
*
|
|
54
|
+
* - If file doesn't exist: create with block only.
|
|
55
|
+
* - If file exists without block: append block at end.
|
|
56
|
+
* - If file exists with block: replace block content, preserve everything else.
|
|
57
|
+
*/
|
|
58
|
+
export function upsertContextFile(filePath, content) {
|
|
59
|
+
const block = `${MARKER_START}\n${content}\n${MARKER_END}`;
|
|
60
|
+
if (!existsSync(filePath)) {
|
|
61
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
62
|
+
writeFileSync(filePath, block + "\n");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const existing = readFileSync(filePath, "utf8");
|
|
66
|
+
const startIdx = existing.indexOf(MARKER_START);
|
|
67
|
+
const endIdx = existing.indexOf(MARKER_END);
|
|
68
|
+
if (startIdx === -1 || endIdx === -1) {
|
|
69
|
+
// Block doesn't exist — append
|
|
70
|
+
const sep = existing.endsWith("\n") ? "\n" : "\n\n";
|
|
71
|
+
writeFileSync(filePath, existing + sep + block + "\n");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// Block exists — replace
|
|
75
|
+
const before = existing.slice(0, startIdx);
|
|
76
|
+
const after = existing.slice(endIdx + MARKER_END.length);
|
|
77
|
+
writeFileSync(filePath, before + block + after);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Remove the Raptor block from a context file.
|
|
81
|
+
* Preserves all content outside the markers.
|
|
82
|
+
*/
|
|
83
|
+
export function removeContextBlock(filePath) {
|
|
84
|
+
if (!existsSync(filePath))
|
|
85
|
+
return false;
|
|
86
|
+
const existing = readFileSync(filePath, "utf8");
|
|
87
|
+
const startIdx = existing.indexOf(MARKER_START);
|
|
88
|
+
const endIdx = existing.indexOf(MARKER_END);
|
|
89
|
+
if (startIdx === -1 || endIdx === -1)
|
|
90
|
+
return false;
|
|
91
|
+
const before = existing.slice(0, startIdx);
|
|
92
|
+
const after = existing.slice(endIdx + MARKER_END.length);
|
|
93
|
+
const cleaned = (before + after).replace(/\n{3,}/g, "\n\n").trim();
|
|
94
|
+
writeFileSync(filePath, cleaned ? cleaned + "\n" : "");
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if a context file contains the Raptor block.
|
|
99
|
+
*/
|
|
100
|
+
export function hasContextBlock(filePath) {
|
|
101
|
+
if (!existsSync(filePath))
|
|
102
|
+
return false;
|
|
103
|
+
const content = readFileSync(filePath, "utf8");
|
|
104
|
+
return content.includes(MARKER_START) && content.includes(MARKER_END);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=context-file.js.map
|