@miller-tech/uap 1.10.1 → 1.11.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.
Files changed (133) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/benchmarks/benchmark.d.ts +14 -14
  3. package/dist/bin/cli.js +5 -0
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/bin/llama-server-optimize.js +0 -0
  6. package/dist/bin/policy.js +0 -0
  7. package/dist/cli/task.d.ts +1 -1
  8. package/dist/cli/task.d.ts.map +1 -1
  9. package/dist/cli/task.js +65 -0
  10. package/dist/cli/task.js.map +1 -1
  11. package/dist/dashboard/data-service.d.ts +10 -0
  12. package/dist/dashboard/data-service.d.ts.map +1 -1
  13. package/dist/dashboard/data-service.js +22 -1
  14. package/dist/dashboard/data-service.js.map +1 -1
  15. package/dist/models/profile-loader.d.ts +1 -1
  16. package/dist/models/types.d.ts +45 -45
  17. package/dist/policies/schemas/policy.d.ts +5 -5
  18. package/dist/tasks/types.d.ts +22 -22
  19. package/dist/types/config.d.ts +170 -170
  20. package/dist/types/coordination.d.ts +22 -22
  21. package/dist/uap-droids-strict.d.ts +4 -4
  22. package/package.json +1 -1
  23. package/scripts/maintenance/verify-compliance.sh +12 -12
  24. package/templates/hooks/session-start.sh +1 -1
  25. package/dist/bin/tool-calls.d.ts +0 -3
  26. package/dist/bin/tool-calls.d.ts.map +0 -1
  27. package/dist/bin/tool-calls.js +0 -4
  28. package/dist/bin/tool-calls.js.map +0 -1
  29. package/dist/cli/completion-gates.d.ts +0 -51
  30. package/dist/cli/completion-gates.d.ts.map +0 -1
  31. package/dist/cli/completion-gates.js +0 -201
  32. package/dist/cli/completion-gates.js.map +0 -1
  33. package/dist/cli/rtk-validation.d.ts +0 -24
  34. package/dist/cli/rtk-validation.d.ts.map +0 -1
  35. package/dist/cli/rtk-validation.js +0 -138
  36. package/dist/cli/rtk-validation.js.map +0 -1
  37. package/dist/cli/uap.d.ts +0 -10
  38. package/dist/cli/uap.d.ts.map +0 -1
  39. package/dist/cli/uap.js +0 -457
  40. package/dist/cli/uap.js.map +0 -1
  41. package/dist/coordination/droid-validator.d.ts +0 -59
  42. package/dist/coordination/droid-validator.d.ts.map +0 -1
  43. package/dist/coordination/droid-validator.js +0 -142
  44. package/dist/coordination/droid-validator.js.map +0 -1
  45. package/dist/coordination/worktree-enforcer.d.ts +0 -22
  46. package/dist/coordination/worktree-enforcer.d.ts.map +0 -1
  47. package/dist/coordination/worktree-enforcer.js +0 -71
  48. package/dist/coordination/worktree-enforcer.js.map +0 -1
  49. package/dist/generators/template-loader.d.ts +0 -105
  50. package/dist/generators/template-loader.d.ts.map +0 -1
  51. package/dist/generators/template-loader.js +0 -291
  52. package/dist/generators/template-loader.js.map +0 -1
  53. package/dist/memory/active-context.d.ts +0 -65
  54. package/dist/memory/active-context.d.ts.map +0 -1
  55. package/dist/memory/active-context.js +0 -126
  56. package/dist/memory/active-context.js.map +0 -1
  57. package/dist/memory/agent-scoped-memory.d.ts +0 -67
  58. package/dist/memory/agent-scoped-memory.d.ts.map +0 -1
  59. package/dist/memory/agent-scoped-memory.js +0 -126
  60. package/dist/memory/agent-scoped-memory.js.map +0 -1
  61. package/dist/memory/dedup-detector.d.ts +0 -57
  62. package/dist/memory/dedup-detector.d.ts.map +0 -1
  63. package/dist/memory/dedup-detector.js +0 -107
  64. package/dist/memory/dedup-detector.js.map +0 -1
  65. package/dist/memory/dedup-memory.d.ts +0 -89
  66. package/dist/memory/dedup-memory.d.ts.map +0 -1
  67. package/dist/memory/dedup-memory.js +0 -173
  68. package/dist/memory/dedup-memory.js.map +0 -1
  69. package/dist/memory/generic-uap-patterns.d.ts +0 -7
  70. package/dist/memory/generic-uap-patterns.d.ts.map +0 -1
  71. package/dist/memory/generic-uap-patterns.js +0 -43
  72. package/dist/memory/generic-uap-patterns.js.map +0 -1
  73. package/dist/memory/merge-claude-md.d.ts +0 -45
  74. package/dist/memory/merge-claude-md.d.ts.map +0 -1
  75. package/dist/memory/merge-claude-md.js +0 -118
  76. package/dist/memory/merge-claude-md.js.map +0 -1
  77. package/dist/memory/multi-view-memory.d.ts +0 -134
  78. package/dist/memory/multi-view-memory.d.ts.map +0 -1
  79. package/dist/memory/multi-view-memory.js +0 -430
  80. package/dist/memory/multi-view-memory.js.map +0 -1
  81. package/dist/memory/patterns.d.ts +0 -37
  82. package/dist/memory/patterns.d.ts.map +0 -1
  83. package/dist/memory/patterns.js +0 -81
  84. package/dist/memory/patterns.js.map +0 -1
  85. package/dist/memory/semantic-edge-graph.d.ts +0 -86
  86. package/dist/memory/semantic-edge-graph.d.ts.map +0 -1
  87. package/dist/memory/semantic-edge-graph.js +0 -168
  88. package/dist/memory/semantic-edge-graph.js.map +0 -1
  89. package/dist/memory/semantic-retrieval.d.ts +0 -70
  90. package/dist/memory/semantic-retrieval.d.ts.map +0 -1
  91. package/dist/memory/semantic-retrieval.js +0 -112
  92. package/dist/memory/semantic-retrieval.js.map +0 -1
  93. package/dist/memory/short-term/factory.d.ts +0 -26
  94. package/dist/memory/short-term/factory.d.ts.map +0 -1
  95. package/dist/memory/short-term/factory.js +0 -28
  96. package/dist/memory/short-term/factory.js.map +0 -1
  97. package/dist/memory/short-term/indexeddb.d.ts +0 -25
  98. package/dist/memory/short-term/indexeddb.d.ts.map +0 -1
  99. package/dist/memory/short-term/indexeddb.js +0 -64
  100. package/dist/memory/short-term/indexeddb.js.map +0 -1
  101. package/dist/memory/smart-consolidator.d.ts +0 -53
  102. package/dist/memory/smart-consolidator.d.ts.map +0 -1
  103. package/dist/memory/smart-consolidator.js +0 -144
  104. package/dist/memory/smart-consolidator.js.map +0 -1
  105. package/dist/memory/view-memory.d.ts +0 -80
  106. package/dist/memory/view-memory.d.ts.map +0 -1
  107. package/dist/memory/view-memory.js +0 -130
  108. package/dist/memory/view-memory.js.map +0 -1
  109. package/dist/memory/wrapped-memory.d.ts +0 -77
  110. package/dist/memory/wrapped-memory.d.ts.map +0 -1
  111. package/dist/memory/wrapped-memory.js +0 -127
  112. package/dist/memory/wrapped-memory.js.map +0 -1
  113. package/dist/models/api-client.d.ts +0 -46
  114. package/dist/models/api-client.d.ts.map +0 -1
  115. package/dist/models/api-client.js +0 -182
  116. package/dist/models/api-client.js.map +0 -1
  117. package/dist/utils/config-manager.d.ts +0 -30
  118. package/dist/utils/config-manager.d.ts.map +0 -1
  119. package/dist/utils/config-manager.js +0 -41
  120. package/dist/utils/config-manager.js.map +0 -1
  121. package/dist/utils/fetch-with-retry.d.ts +0 -5
  122. package/dist/utils/fetch-with-retry.d.ts.map +0 -1
  123. package/dist/utils/fetch-with-retry.js +0 -61
  124. package/dist/utils/fetch-with-retry.js.map +0 -1
  125. package/dist/utils/file-discovery.d.ts +0 -38
  126. package/dist/utils/file-discovery.d.ts.map +0 -1
  127. package/dist/utils/file-discovery.js +0 -100
  128. package/dist/utils/file-discovery.js.map +0 -1
  129. package/dist/utils/validate-json.d.ts +0 -51
  130. package/dist/utils/validate-json.d.ts.map +0 -1
  131. package/dist/utils/validate-json.js +0 -94
  132. package/dist/utils/validate-json.js.map +0 -1
  133. package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
@@ -116,8 +116,8 @@ export declare const AgentRegistryEntrySchema: z.ZodObject<{
116
116
  capabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
117
117
  }, "strip", z.ZodTypeAny, {
118
118
  id: string;
119
- status: "completed" | "failed" | "active" | "idle";
120
119
  name: string;
120
+ status: "active" | "idle" | "completed" | "failed";
121
121
  sessionId: string;
122
122
  startedAt: string;
123
123
  lastHeartbeat: string;
@@ -125,8 +125,8 @@ export declare const AgentRegistryEntrySchema: z.ZodObject<{
125
125
  currentTask?: string | undefined;
126
126
  }, {
127
127
  id: string;
128
- status: "completed" | "failed" | "active" | "idle";
129
128
  name: string;
129
+ status: "active" | "idle" | "completed" | "failed";
130
130
  sessionId: string;
131
131
  startedAt: string;
132
132
  lastHeartbeat: string;
@@ -139,12 +139,12 @@ export declare const MessagePayloadSchema: z.ZodObject<{
139
139
  data: z.ZodOptional<z.ZodUnknown>;
140
140
  }, "strip", z.ZodTypeAny, {
141
141
  action: string;
142
- data?: unknown;
143
142
  resource?: string | undefined;
143
+ data?: unknown;
144
144
  }, {
145
145
  action: string;
146
- data?: unknown;
147
146
  resource?: string | undefined;
147
+ data?: unknown;
148
148
  }>;
149
149
  export declare const AgentMessageSchema: z.ZodObject<{
150
150
  id: z.ZodNumber;
@@ -158,42 +158,42 @@ export declare const AgentMessageSchema: z.ZodObject<{
158
158
  data: z.ZodOptional<z.ZodUnknown>;
159
159
  }, "strip", z.ZodTypeAny, {
160
160
  action: string;
161
- data?: unknown;
162
161
  resource?: string | undefined;
162
+ data?: unknown;
163
163
  }, {
164
164
  action: string;
165
- data?: unknown;
166
165
  resource?: string | undefined;
166
+ data?: unknown;
167
167
  }>;
168
168
  priority: z.ZodDefault<z.ZodNumber>;
169
169
  createdAt: z.ZodString;
170
170
  readAt: z.ZodOptional<z.ZodString>;
171
171
  expiresAt: z.ZodOptional<z.ZodString>;
172
172
  }, "strip", z.ZodTypeAny, {
173
+ id: number;
174
+ type: "request" | "response" | "notification" | "claim" | "release";
175
+ priority: number;
176
+ channel: "review" | "deploy" | "broadcast" | "direct" | "coordination";
173
177
  payload: {
174
178
  action: string;
175
- data?: unknown;
176
179
  resource?: string | undefined;
180
+ data?: unknown;
177
181
  };
178
- id: number;
179
182
  createdAt: string;
180
- priority: number;
181
- type: "request" | "response" | "claim" | "release" | "notification";
182
- channel: "deploy" | "review" | "broadcast" | "direct" | "coordination";
183
183
  fromAgent?: string | undefined;
184
184
  toAgent?: string | undefined;
185
185
  readAt?: string | undefined;
186
186
  expiresAt?: string | undefined;
187
187
  }, {
188
+ id: number;
189
+ type: "request" | "response" | "notification" | "claim" | "release";
190
+ channel: "review" | "deploy" | "broadcast" | "direct" | "coordination";
188
191
  payload: {
189
192
  action: string;
190
- data?: unknown;
191
193
  resource?: string | undefined;
194
+ data?: unknown;
192
195
  };
193
- id: number;
194
196
  createdAt: string;
195
- type: "request" | "response" | "claim" | "release" | "notification";
196
- channel: "deploy" | "review" | "broadcast" | "direct" | "coordination";
197
197
  priority?: number | undefined;
198
198
  fromAgent?: string | undefined;
199
199
  toAgent?: string | undefined;
@@ -214,27 +214,27 @@ export declare const DeployActionSchema: z.ZodObject<{
214
214
  dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
215
215
  }, "strip", z.ZodTypeAny, {
216
216
  id: number;
217
- status: "pending" | "batched" | "executing" | "completed" | "failed";
217
+ status: "completed" | "failed" | "pending" | "batched" | "executing";
218
218
  priority: number;
219
219
  agentId: string;
220
- actionType: "commit" | "push" | "merge" | "workflow" | "deploy";
220
+ actionType: "push" | "merge" | "commit" | "workflow" | "deploy";
221
221
  target: string;
222
222
  queuedAt: string;
223
223
  payload?: Record<any, any> | undefined;
224
- dependencies?: string[] | undefined;
225
224
  batchId?: string | undefined;
226
225
  executeAfter?: string | undefined;
226
+ dependencies?: string[] | undefined;
227
227
  }, {
228
228
  id: number;
229
- status: "pending" | "batched" | "executing" | "completed" | "failed";
229
+ status: "completed" | "failed" | "pending" | "batched" | "executing";
230
230
  agentId: string;
231
- actionType: "commit" | "push" | "merge" | "workflow" | "deploy";
231
+ actionType: "push" | "merge" | "commit" | "workflow" | "deploy";
232
232
  target: string;
233
233
  queuedAt: string;
234
+ priority?: number | undefined;
234
235
  payload?: Record<any, any> | undefined;
235
- dependencies?: string[] | undefined;
236
236
  batchId?: string | undefined;
237
- priority?: number | undefined;
238
237
  executeAfter?: string | undefined;
238
+ dependencies?: string[] | undefined;
239
239
  }>;
240
240
  //# sourceMappingURL=coordination.d.ts.map
@@ -10,11 +10,11 @@ export declare const DROID_SCHEMA: z.ZodObject<{
10
10
  batches_deploy: z.ZodDefault<z.ZodBoolean>;
11
11
  }, "strip", z.ZodTypeAny, {
12
12
  batches_deploy: boolean;
13
- channels?: string[] | undefined;
14
13
  claims?: ("exclusive" | "shared")[] | undefined;
15
- }, {
16
14
  channels?: string[] | undefined;
15
+ }, {
17
16
  claims?: ("exclusive" | "shared")[] | undefined;
17
+ channels?: string[] | undefined;
18
18
  batches_deploy?: boolean | undefined;
19
19
  }>>;
20
20
  }, "strip", z.ZodTypeAny, {
@@ -23,16 +23,16 @@ export declare const DROID_SCHEMA: z.ZodObject<{
23
23
  model: "inherit" | "dedicated";
24
24
  coordination?: {
25
25
  batches_deploy: boolean;
26
- channels?: string[] | undefined;
27
26
  claims?: ("exclusive" | "shared")[] | undefined;
27
+ channels?: string[] | undefined;
28
28
  } | undefined;
29
29
  }, {
30
30
  name: string;
31
31
  description: string;
32
32
  model?: "inherit" | "dedicated" | undefined;
33
33
  coordination?: {
34
- channels?: string[] | undefined;
35
34
  claims?: ("exclusive" | "shared")[] | undefined;
35
+ channels?: string[] | undefined;
36
36
  batches_deploy?: boolean | undefined;
37
37
  } | undefined;
38
38
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miller-tech/uap",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "description": "Autonomous AI agent memory system with CLAUDE.md protocol enforcement",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,7 +9,7 @@ total=12
9
9
 
10
10
  # 1. CLAUDE.md version check
11
11
  if grep -q "CLAUDE.md v2\.[2-9]\|CLAUDE.md v3\." CLAUDE.md; then
12
- ((score++))
12
+ score=$((score + 1))
13
13
  echo "✓ CLAUDE.md version (v2.x+/v3.x)"
14
14
  else
15
15
  echo "✗ CLAUDE.md version not found"
@@ -17,7 +17,7 @@ fi
17
17
 
18
18
  # 2. SESSION START block
19
19
  if grep -q "## SESSION START" CLAUDE.md && grep -q "uap task ready" CLAUDE.md; then
20
- ((score++))
20
+ score=$((score + 1))
21
21
  echo "✓ SESSION START block with uap task ready"
22
22
  else
23
23
  echo "✗ SESSION START block MISSING"
@@ -25,7 +25,7 @@ fi
25
25
 
26
26
  # 3. DECISION LOOP with skills reference
27
27
  if grep -q "@Skill:name.md" CLAUDE.md; then
28
- ((score++))
28
+ score=$((score + 1))
29
29
  echo "✓ DECISION LOOP with @Skill:name.md reference"
30
30
  else
31
31
  echo "✗ DECISION LOOP skills reference MISSING"
@@ -33,7 +33,7 @@ fi
33
33
 
34
34
  # 4. MANDATORY worktree enforcement
35
35
  if grep -q "WORKTREE WORKFLOW — MANDATORY\|## WORKTREE WORKFLOW.*MANDATORY" CLAUDE.md; then
36
- ((score++))
36
+ score=$((score + 1))
37
37
  echo "✓ MANDATORY worktree enforcement present"
38
38
  else
39
39
  echo "✗ MANDATORY worktree enforcement MISSING"
@@ -41,7 +41,7 @@ fi
41
41
 
42
42
  # 5. PARALLEL REVIEW PROTOCOL
43
43
  if grep -q "## PARALLEL REVIEW PROTOCOL" CLAUDE.md; then
44
- ((score++))
44
+ score=$((score + 1))
45
45
  echo "✓ PARALLEL REVIEW PROTOCOL present"
46
46
  else
47
47
  echo "✗ PARALLEL REVIEW PROTOCOL MISSING"
@@ -49,7 +49,7 @@ fi
49
49
 
50
50
  # 6. Schema diff gate ordering
51
51
  if grep -q "BLOCKING PREREQUISITES.*Schema Diff Gate\|1\. \*\*Schema Diff Gate" CLAUDE.md; then
52
- ((score++))
52
+ score=$((score + 1))
53
53
  echo "✓ Schema diff gate in BLOCKING PREREQUISITES"
54
54
  else
55
55
  echo "✗ Schema diff gate NOT in blocking prerequisites"
@@ -57,7 +57,7 @@ fi
57
57
 
58
58
  # 7. VERIFIER-FIRST section
59
59
  if grep -q "## VERIFIER-FIRST" CLAUDE.md; then
60
- ((score++))
60
+ score=$((score + 1))
61
61
  echo "✓ VERIFIER-FIRST section present"
62
62
  else
63
63
  echo "✗ VERIFIER-FIRST MISSING"
@@ -65,7 +65,7 @@ fi
65
65
 
66
66
  # 8. COMPLETION GATES - MANDATORY
67
67
  if grep -q "COMPLETION GATES.*-.*MANDATORY\|## COMPLETION GATES - MANDATORY" CLAUDE.md; then
68
- ((score++))
68
+ score=$((score + 1))
69
69
  echo "✓ COMPLETION GATES - MANDATORY present"
70
70
  else
71
71
  echo "✗ COMPLETION GATES - MANDATORY MISSING"
@@ -73,7 +73,7 @@ fi
73
73
 
74
74
  # 9. Pattern Router requirement
75
75
  if grep -q "Pattern.*Router\|pattern router" CLAUDE.md; then
76
- ((score++))
76
+ score=$((score + 1))
77
77
  echo "✓ Pattern Router documented"
78
78
  else
79
79
  echo "✗ Pattern Router MISSING"
@@ -81,7 +81,7 @@ fi
81
81
 
82
82
  # 10. RTK includes
83
83
  if grep -q "@hooks-session-start.md\|@PreCompact.md" CLAUDE.md; then
84
- ((score++))
84
+ score=$((score + 1))
85
85
  echo "✓ RTK includes (@hooks-session-start, @PreCompact)"
86
86
  else
87
87
  echo "✗ RTK includes MISSING"
@@ -89,7 +89,7 @@ fi
89
89
 
90
90
  # 11. Verifier loop enforcement (min 3 runs)
91
91
  if grep -q "MANDATORY.*minimum 3 times\|MANDATORY.*3 times" CLAUDE.md; then
92
- ((score++))
92
+ score=$((score + 1))
93
93
  echo "✓ Verifier loop enforced (min 3 runs)"
94
94
  else
95
95
  echo "✗ Verifier loop enforcement MISSING"
@@ -97,7 +97,7 @@ fi
97
97
 
98
98
  # 12. Skills directory structure
99
99
  if [ -d ".factory/skills" ] && [ "$(ls -A .factory/skills 2>/dev/null)" ]; then
100
- ((score++))
100
+ score=$((score + 1))
101
101
  echo "✓ Skills directory populated"
102
102
  else
103
103
  echo "✗ Skills directory MISSING or empty"
@@ -123,7 +123,7 @@ if [ -f "$COORD_DB" ]; then
123
123
  " 2>/dev/null || true)
124
124
 
125
125
  ACTIVE_WORK=$(sqlite3 "$COORD_DB" "
126
- SELECT agent_id || ' -> ' || resources
126
+ SELECT agent_id || ' -> ' || resource
127
127
  FROM work_announcements
128
128
  WHERE completed_at IS NULL
129
129
  ORDER BY announced_at DESC LIMIT 5;
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=tool-calls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-calls.d.ts","sourceRoot":"","sources":["../../src/bin/tool-calls.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { toolCallsCommand } from '../cli/tool-calls.js';
3
- toolCallsCommand();
4
- //# sourceMappingURL=tool-calls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../src/bin/tool-calls.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,gBAAgB,EAAE,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Completion Gates - Programmatic enforcement of mandatory checks
3
- *
4
- * The UAP protocol defines 3 mandatory gates that must pass before
5
- * any task can be considered "done":
6
- *
7
- * 1. OUTPUT_EXISTS - Verifiable output was produced (files changed, tests written, etc.)
8
- * 2. CONSTRAINTS_MET - All constraints from the task specification are satisfied
9
- * 3. TESTS_PASS - Relevant tests pass (or no tests were broken)
10
- *
11
- * This module provides runtime enforcement of these gates.
12
- */
13
- export interface GateResult {
14
- gate: string;
15
- passed: boolean;
16
- message: string;
17
- details?: string;
18
- }
19
- export interface CompletionReport {
20
- allPassed: boolean;
21
- gates: GateResult[];
22
- timestamp: string;
23
- }
24
- /**
25
- * Gate 1: Verify that output exists.
26
- * Checks that there are staged or unstaged changes in git,
27
- * indicating work was actually done.
28
- */
29
- export declare function checkOutputExists(projectDir: string): GateResult;
30
- /**
31
- * Gate 2: Verify constraints are met.
32
- * Checks that TypeScript compiles without errors and linting passes.
33
- */
34
- export declare function checkConstraintsMet(projectDir: string): GateResult;
35
- /**
36
- * Gate 3: Verify tests pass.
37
- * Runs the project test suite and checks for failures.
38
- */
39
- export declare function checkTestsPass(projectDir: string): GateResult;
40
- /**
41
- * Run all completion gates and produce a report.
42
- */
43
- export declare function runCompletionGates(projectDir: string, options?: {
44
- skipTests?: boolean;
45
- skipTypeCheck?: boolean;
46
- }): CompletionReport;
47
- /**
48
- * Format a completion report for terminal output.
49
- */
50
- export declare function formatCompletionReport(report: CompletionReport): string;
51
- //# sourceMappingURL=completion-gates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion-gates.d.ts","sourceRoot":"","sources":["../../src/cli/completion-gates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAkDhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CA0BlE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAoC7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,gBAAgB,CAiClB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA0BvE"}
@@ -1,201 +0,0 @@
1
- /**
2
- * Completion Gates - Programmatic enforcement of mandatory checks
3
- *
4
- * The UAP protocol defines 3 mandatory gates that must pass before
5
- * any task can be considered "done":
6
- *
7
- * 1. OUTPUT_EXISTS - Verifiable output was produced (files changed, tests written, etc.)
8
- * 2. CONSTRAINTS_MET - All constraints from the task specification are satisfied
9
- * 3. TESTS_PASS - Relevant tests pass (or no tests were broken)
10
- *
11
- * This module provides runtime enforcement of these gates.
12
- */
13
- import { execSync } from 'child_process';
14
- import { existsSync } from 'fs';
15
- /**
16
- * Gate 1: Verify that output exists.
17
- * Checks that there are staged or unstaged changes in git,
18
- * indicating work was actually done.
19
- */
20
- export function checkOutputExists(projectDir) {
21
- try {
22
- const status = execSync('git status --porcelain', {
23
- cwd: projectDir,
24
- encoding: 'utf-8',
25
- timeout: 10000,
26
- }).trim();
27
- if (status.length > 0) {
28
- const changedFiles = status.split('\n').length;
29
- return {
30
- gate: 'OUTPUT_EXISTS',
31
- passed: true,
32
- message: `${changedFiles} file(s) changed`,
33
- details: status,
34
- };
35
- }
36
- // Check if there are new commits not yet pushed
37
- try {
38
- const unpushed = execSync('git log @{u}..HEAD --oneline 2>/dev/null || echo ""', {
39
- cwd: projectDir,
40
- encoding: 'utf-8',
41
- timeout: 10000,
42
- }).trim();
43
- if (unpushed.length > 0) {
44
- return {
45
- gate: 'OUTPUT_EXISTS',
46
- passed: true,
47
- message: 'Unpushed commits found',
48
- details: unpushed,
49
- };
50
- }
51
- }
52
- catch {
53
- // No upstream tracking, ignore
54
- }
55
- return {
56
- gate: 'OUTPUT_EXISTS',
57
- passed: false,
58
- message: 'No changes detected - no output was produced',
59
- };
60
- }
61
- catch (error) {
62
- return {
63
- gate: 'OUTPUT_EXISTS',
64
- passed: false,
65
- message: `Could not check git status: ${error instanceof Error ? error.message : String(error)}`,
66
- };
67
- }
68
- }
69
- /**
70
- * Gate 2: Verify constraints are met.
71
- * Checks that TypeScript compiles without errors and linting passes.
72
- */
73
- export function checkConstraintsMet(projectDir) {
74
- // Check TypeScript compilation
75
- try {
76
- execSync('npx tsc --noEmit 2>&1', {
77
- cwd: projectDir,
78
- encoding: 'utf-8',
79
- timeout: 60000,
80
- });
81
- }
82
- catch (error) {
83
- const stderr = error instanceof Error && 'stderr' in error
84
- ? String(error.stderr)
85
- : String(error);
86
- return {
87
- gate: 'CONSTRAINTS_MET',
88
- passed: false,
89
- message: 'TypeScript compilation failed',
90
- details: stderr.slice(0, 500),
91
- };
92
- }
93
- return {
94
- gate: 'CONSTRAINTS_MET',
95
- passed: true,
96
- message: 'TypeScript compilation passed',
97
- };
98
- }
99
- /**
100
- * Gate 3: Verify tests pass.
101
- * Runs the project test suite and checks for failures.
102
- */
103
- export function checkTestsPass(projectDir) {
104
- // Check if package.json has a test script
105
- const pkgPath = `${projectDir}/package.json`;
106
- if (!existsSync(pkgPath)) {
107
- return {
108
- gate: 'TESTS_PASS',
109
- passed: true,
110
- message: 'No package.json found - skipping test gate',
111
- };
112
- }
113
- try {
114
- const output = execSync('npm test 2>&1', {
115
- cwd: projectDir,
116
- encoding: 'utf-8',
117
- timeout: 120000,
118
- });
119
- return {
120
- gate: 'TESTS_PASS',
121
- passed: true,
122
- message: 'All tests passed',
123
- details: output.slice(-300),
124
- };
125
- }
126
- catch (error) {
127
- const output = error instanceof Error && 'stdout' in error
128
- ? String(error.stdout)
129
- : String(error);
130
- return {
131
- gate: 'TESTS_PASS',
132
- passed: false,
133
- message: 'Tests failed',
134
- details: output.slice(-500),
135
- };
136
- }
137
- }
138
- /**
139
- * Run all completion gates and produce a report.
140
- */
141
- export function runCompletionGates(projectDir, options) {
142
- const gates = [];
143
- // Gate 1: Output exists
144
- gates.push(checkOutputExists(projectDir));
145
- // Gate 2: Constraints met (TypeScript compilation)
146
- if (options?.skipTypeCheck) {
147
- gates.push({
148
- gate: 'CONSTRAINTS_MET',
149
- passed: true,
150
- message: 'Skipped (--skip-typecheck)',
151
- });
152
- }
153
- else {
154
- gates.push(checkConstraintsMet(projectDir));
155
- }
156
- // Gate 3: Tests pass
157
- if (options?.skipTests) {
158
- gates.push({
159
- gate: 'TESTS_PASS',
160
- passed: true,
161
- message: 'Skipped (--skip-tests)',
162
- });
163
- }
164
- else {
165
- gates.push(checkTestsPass(projectDir));
166
- }
167
- return {
168
- allPassed: gates.every((g) => g.passed),
169
- gates,
170
- timestamp: new Date().toISOString(),
171
- };
172
- }
173
- /**
174
- * Format a completion report for terminal output.
175
- */
176
- export function formatCompletionReport(report) {
177
- const lines = [];
178
- lines.push('=== Completion Gates Report ===');
179
- lines.push('');
180
- for (const gate of report.gates) {
181
- const icon = gate.passed ? 'PASS' : 'FAIL';
182
- lines.push(`[${icon}] ${gate.gate}: ${gate.message}`);
183
- if (gate.details && !gate.passed) {
184
- const detailLines = gate.details.split('\n').slice(0, 5);
185
- for (const dl of detailLines) {
186
- lines.push(` ${dl}`);
187
- }
188
- }
189
- }
190
- lines.push('');
191
- if (report.allPassed) {
192
- lines.push('All gates passed - work is complete.');
193
- }
194
- else {
195
- const failed = report.gates.filter((g) => !g.passed).map((g) => g.gate);
196
- lines.push(`BLOCKED: ${failed.join(', ')} gate(s) failed.`);
197
- lines.push('Fix the issues above before marking work as done.');
198
- }
199
- return lines.join('\n');
200
- }
201
- //# sourceMappingURL=completion-gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion-gates.js","sourceRoot":"","sources":["../../src/cli/completion-gates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAehC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE;YAChD,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,GAAG,YAAY,kBAAkB;gBAC1C,OAAO,EAAE,MAAM;aAChB,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,qDAAqD,EAAE;gBAC/E,GAAG,EAAE,UAAU;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE,QAAQ;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,8CAA8C;SACxD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACjG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,+BAA+B;IAC/B,IAAI,CAAC;QACH,QAAQ,CAAC,uBAAuB,EAAE;YAChC,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GACV,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK;YACzC,CAAC,CAAC,MAAM,CAAE,KAA6B,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,+BAA+B;KACzC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,0CAA0C;IAC1C,MAAM,OAAO,GAAG,GAAG,UAAU,eAAe,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,4CAA4C;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE;YACvC,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;SAC5B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GACV,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK;YACzC,CAAC,CAAC,MAAM,CAAE,KAA6B,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;SAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,OAGC;IAED,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1C,mDAAmD;IACnD,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,4BAA4B;SACtC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,wBAAwB;SAClC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACvC,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzD,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * RTK (Required Template Keys) Validation
3
- *
4
- * Validates that CLAUDE.md contains all mandatory sections required by
5
- * the UAP protocol. Replaces the v3.0.0 stub that always returned valid.
6
- *
7
- * Required sections are defined by the ENFORCEMENT_CHECKS comment in CLAUDE.md:
8
- * SESSION_START, DECISION_LOOP, MANDATORY_WORKTREE, PARALLEL_REVIEW,
9
- * SCHEMA_DIFF, GATES, RTK_INCLUDES, PATTERN_ROUTER, VALIDATE_PLAN
10
- */
11
- export interface RTKValidationResult {
12
- valid: boolean;
13
- missing: string[];
14
- found: string[];
15
- warnings: string[];
16
- }
17
- /**
18
- * Validate that CLAUDE.md contains all required RTK sections.
19
- *
20
- * @param projectDir - Project root directory (defaults to cwd)
21
- * @returns Validation result with missing/found sections
22
- */
23
- export declare function validateRTKIncludes(projectDir?: string): RTKValidationResult;
24
- //# sourceMappingURL=rtk-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rtk-validation.d.ts","sourceRoot":"","sources":["../../src/cli/rtk-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+DD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,CA+D5E"}