ultra-builder-pro-cli 0.19.1 → 0.21.1
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/.ultra-template/docs/research/README.md +26 -5
- package/.ultra-template/specs/discovery.md +1 -1
- package/.ultra-template/tasks/tasks.json +1 -1
- package/CHANGELOG.md +90 -1
- package/README.md +62 -29
- package/adapters/_shared/codex-assets.cjs +69 -11
- package/adapters/_shared/interaction-contract.cjs +60 -5
- package/adapters/_shared/runtime-assets.cjs +41 -1
- package/adapters/claude.js +7 -5
- package/adapters/codex.js +1 -1
- package/adapters/kimi.js +2 -8
- package/adapters/opencode.js +30 -28
- package/bin/orchestrator.js +64 -24
- package/commands/ultra-research.md +1 -1
- package/docs/AGENT-CONTEXT.md +79 -45
- package/docs/ARCHITECTURE.md +75 -38
- package/docs/ARTIFACT-AUTHORITY.md +234 -0
- package/docs/DECISIONS.md +20 -10
- package/docs/LEGACY-CLI-CROSSWALK.md +15 -11
- package/docs/PLUGIN-ISOLATION-CONTRACT.md +4 -3
- package/docs/ROADMAP.md +21 -6
- package/docs/RUNTIME-COMPAT-MATRIX.md +30 -13
- package/docs/STATE-DB-ACCESS-POLICY.md +11 -9
- package/docs/WORKFLOW-LIFECYCLE.md +105 -54
- package/hooks/README.md +6 -5
- package/hooks/active_task_context.py +97 -12
- package/hooks/context_spine.py +16 -4
- package/hooks/health_check.py +5 -4
- package/hooks/pre_stop_check.py +5 -2
- package/hooks/runtime_paths.py +396 -0
- package/hooks/subagent_tracker.py +5 -2
- package/hooks/workflow_checkpoint.py +16 -3
- package/hooks/workflow_context.py +11 -3
- package/hooks/workflow_resume.py +7 -4
- package/mcp-server/breadcrumb.cjs +20 -2
- package/mcp-server/lib/archive-journal.cjs +1026 -111
- package/mcp-server/lib/archive-mutation-worker.py +365 -0
- package/mcp-server/lib/artifact-registry.cjs +1126 -0
- package/mcp-server/lib/baseline-workflow.cjs +9 -4
- package/mcp-server/lib/change-packet.cjs +818 -0
- package/mcp-server/lib/change-workflow.cjs +932 -176
- package/mcp-server/lib/context-paths.cjs +111 -0
- package/mcp-server/lib/context-spine.cjs +511 -45
- package/mcp-server/lib/decision-dialogue.cjs +427 -12
- package/mcp-server/lib/delivery-transaction.cjs +471 -0
- package/mcp-server/lib/doctor-backup-worker.cjs +328 -0
- package/mcp-server/lib/doctor.cjs +375 -12
- package/mcp-server/lib/git-bootstrap.cjs +459 -47
- package/mcp-server/lib/init-project.cjs +190 -95
- package/mcp-server/lib/plan-publication-worker.cjs +830 -0
- package/mcp-server/lib/plan-store.cjs +700 -5
- package/mcp-server/lib/project-breadcrumb.cjs +23 -4
- package/mcp-server/lib/projector.cjs +174 -40
- package/mcp-server/lib/runtime-paths.cjs +1687 -0
- package/mcp-server/lib/safe-project-file.cjs +385 -0
- package/mcp-server/lib/spec-learning.cjs +28 -12
- package/mcp-server/lib/state-db.cjs +397 -13
- package/mcp-server/lib/state-ops.cjs +248 -49
- package/mcp-server/lib/telemetry.cjs +12 -3
- package/mcp-server/lib/workflow-state.cjs +614 -62
- package/mcp-server/server.cjs +282 -33
- package/orchestrator/daemon.cjs +2 -10
- package/orchestrator/parallel-orchestrator.cjs +314 -50
- package/orchestrator/planner/plan-builder.cjs +1 -1
- package/orchestrator/recovery.cjs +125 -7
- package/orchestrator/session-close-journal-worker.cjs +5 -0
- package/orchestrator/session-close-journal.cjs +1014 -0
- package/orchestrator/session-runner.cjs +679 -69
- package/orchestrator/worktree-manager.cjs +186 -35
- package/package.json +2 -3
- package/skills/cc-collab/SKILL.md +4 -1
- package/skills/codex-collab/SKILL.md +5 -2
- package/skills/ultra-change/SKILL.md +38 -13
- package/skills/ultra-deliver/SKILL.md +23 -11
- package/skills/ultra-dev/SKILL.md +33 -6
- package/skills/ultra-doctor/SKILL.md +6 -2
- package/skills/ultra-init/SKILL.md +4 -2
- package/skills/ultra-plan/SKILL.md +68 -18
- package/skills/ultra-research/SKILL.md +45 -32
- package/skills/ultra-review/SKILL.md +9 -5
- package/skills/ultra-status/SKILL.md +9 -4
- package/skills/ultra-test/SKILL.md +15 -7
- package/skills/ultra-think/SKILL.md +6 -0
- package/skills/ultra-think/references/decision-dialogue.md +61 -14
- package/skills/ultra-verify/SKILL.md +4 -1
- package/spec/cli-protocol.md +19 -7
- package/spec/mcp-tools.yaml +531 -46
- package/spec/schemas/change-delta.v1.schema.json +153 -0
- package/spec/schemas/documentation-reconciliation.v1.schema.json +106 -0
- package/spec/schemas/mcp-tools.schema.json +1 -1
- package/spec/schemas/state-db.sql +57 -17
- package/spec/schemas/tasks.v4.5.schema.json +1 -1
- package/ultra-tools/cli.cjs +3 -2
- package/ultra-tools/commands/db.cjs +76 -25
- package/ultra-tools/commands/migrate.cjs +995 -80
- package/ultra-tools/commands/session.cjs +34 -8
- package/ultra-tools/commands/status.cjs +34 -7
- package/ultra-tools/commands/system.cjs +129 -22
- package/commands/learn.md +0 -10
- package/orchestrator/skill-miner.cjs +0 -133
- package/output-styles/coding-vibes.md +0 -67
- package/output-styles/structural-thinking.md +0 -61
- package/skills/learn/SKILL.md +0 -58
|
@@ -693,11 +693,14 @@ function storedReadyInvariantBlockers(baseline) {
|
|
|
693
693
|
|
|
694
694
|
function completedBaselineResearch(db, baseline, rootDir) {
|
|
695
695
|
const acceptedMode = baseline.mode === 'greenfield' ? 'full' : 'adoption';
|
|
696
|
-
const
|
|
696
|
+
const rows = db.prepare(
|
|
697
697
|
`SELECT id FROM workflow_runs
|
|
698
698
|
WHERE kind = 'research' AND baseline_id = ? AND mode = ? AND status = 'completed'
|
|
699
|
-
ORDER BY completed_at DESC, rowid DESC
|
|
700
|
-
).
|
|
699
|
+
ORDER BY completed_at DESC, rowid DESC`,
|
|
700
|
+
).all(baseline.id, acceptedMode);
|
|
701
|
+
const row = rows.find((candidate) => workflows.isConsumableWorkflowAuthority(
|
|
702
|
+
workflows.readWorkflow(db, candidate.id, { rootDir }),
|
|
703
|
+
));
|
|
701
704
|
return row ? workflows.readWorkflow(db, row.id, { rootDir }) : null;
|
|
702
705
|
}
|
|
703
706
|
|
|
@@ -883,6 +886,7 @@ function inferSpecKind(file) {
|
|
|
883
886
|
|
|
884
887
|
function reconcileBaseline(db, {
|
|
885
888
|
baseline_updates = [], change_id = null, reconciliation = null,
|
|
889
|
+
accept_delivery_worktree = false,
|
|
886
890
|
} = {}, {
|
|
887
891
|
rootDir = process.cwd(), emitEvent = true,
|
|
888
892
|
} = {}) {
|
|
@@ -926,11 +930,12 @@ function reconcileBaseline(db, {
|
|
|
926
930
|
ops.tx(db, () => {
|
|
927
931
|
db.prepare(
|
|
928
932
|
`UPDATE baselines SET repository_revision = ?, repository_branch = ?, worktree_state = ?,
|
|
929
|
-
worktree_digest = ?, worktree_files_json = ?, worktree_accepted =
|
|
933
|
+
worktree_digest = ?, worktree_files_json = ?, worktree_accepted = ?,
|
|
930
934
|
spec_refs_json = ?, evidence_json = ?, gaps_json = ?, unknowns_json = ?,
|
|
931
935
|
updated_at = ? WHERE id = ?`,
|
|
932
936
|
).run(
|
|
933
937
|
revision, snapshot.branch, snapshot.state, snapshot.digest, JSON.stringify(snapshot.files),
|
|
938
|
+
accept_delivery_worktree && snapshot.state === 'dirty' ? 1 : 0,
|
|
934
939
|
JSON.stringify(specs), JSON.stringify(evidence), JSON.stringify(gaps),
|
|
935
940
|
JSON.stringify(unknowns), ts, current.id,
|
|
936
941
|
);
|