@harness-engineering/cli 4.0.1 → 4.2.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 (86) hide show
  1. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +40 -8
  2. package/dist/agents/skills/claude-code/harness-catalog-retrospective/SKILL.md +124 -0
  3. package/dist/agents/skills/claude-code/harness-catalog-retrospective/skill.yaml +48 -0
  4. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +13 -0
  5. package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +3 -0
  6. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +3 -1
  7. package/dist/agents/skills/claude-code/pre-merge-brief/SKILL.md +86 -0
  8. package/dist/agents/skills/claude-code/pre-merge-brief/skill.yaml +67 -0
  9. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +40 -8
  10. package/dist/agents/skills/codex/harness-catalog-retrospective/SKILL.md +124 -0
  11. package/dist/agents/skills/codex/harness-catalog-retrospective/skill.yaml +48 -0
  12. package/dist/agents/skills/codex/harness-execution/SKILL.md +13 -0
  13. package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +3 -0
  14. package/dist/agents/skills/codex/harness-planning/SKILL.md +3 -1
  15. package/dist/agents/skills/codex/pre-merge-brief/SKILL.md +86 -0
  16. package/dist/agents/skills/codex/pre-merge-brief/skill.yaml +67 -0
  17. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +40 -8
  18. package/dist/agents/skills/cursor/harness-catalog-retrospective/SKILL.md +124 -0
  19. package/dist/agents/skills/cursor/harness-catalog-retrospective/skill.yaml +48 -0
  20. package/dist/agents/skills/cursor/harness-execution/SKILL.md +13 -0
  21. package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +3 -0
  22. package/dist/agents/skills/cursor/harness-planning/SKILL.md +3 -1
  23. package/dist/agents/skills/cursor/pre-merge-brief/SKILL.md +86 -0
  24. package/dist/agents/skills/cursor/pre-merge-brief/skill.yaml +67 -0
  25. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +40 -8
  26. package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/SKILL.md +124 -0
  27. package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/skill.yaml +48 -0
  28. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +13 -0
  29. package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +3 -0
  30. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +3 -1
  31. package/dist/agents/skills/gemini-cli/pre-merge-brief/SKILL.md +86 -0
  32. package/dist/agents/skills/gemini-cli/pre-merge-brief/skill.yaml +67 -0
  33. package/dist/{agents-md-VJLYEH2S.js → agents-md-BK2UPKUC.js} +4 -4
  34. package/dist/analyzer-XRCV63KC-6T2Z32XC.js +26 -0
  35. package/dist/{architecture-YQH2NYXY.js → architecture-7PNQZOWV.js} +5 -5
  36. package/dist/{assess-project-KOTAPAHD.js → assess-project-2QPCNN7N.js} +5 -3
  37. package/dist/bin/harness-mcp.js +15 -15
  38. package/dist/bin/harness.js +26 -26
  39. package/dist/{check-phase-gate-CHU2E3OU.js → check-phase-gate-RZUSDB3O.js} +5 -5
  40. package/dist/{chunk-MMLQPHZ5.js → chunk-33OU3LYX.js} +380 -15
  41. package/dist/{chunk-XAVMTAUT.js → chunk-6STDKKAM.js} +19 -3
  42. package/dist/{chunk-I3CGCZJF.js → chunk-BJDT3VGQ.js} +6 -6
  43. package/dist/{chunk-M7F2PPN3.js → chunk-D5YCPIK6.js} +2 -2
  44. package/dist/{chunk-SDMV4QHM.js → chunk-DBCC7KIW.js} +25 -7
  45. package/dist/{chunk-E5EW5HVJ.js → chunk-DVG6DDX6.js} +1 -1
  46. package/dist/{chunk-4VXFZSYF.js → chunk-DW6HE5DH.js} +2 -2
  47. package/dist/{chunk-7PJCK7UE.js → chunk-E5KJOUHI.js} +7 -7
  48. package/dist/{chunk-6SCYTIF4.js → chunk-HU7NS7JA.js} +32 -7
  49. package/dist/{chunk-36GQREOE.js → chunk-HUC73DZC.js} +3 -3
  50. package/dist/{chunk-EYMOPFSD.js → chunk-J5MFNKE7.js} +2 -2
  51. package/dist/{chunk-JPVOI7GP.js → chunk-J7H5I4FO.js} +2 -2
  52. package/dist/{chunk-RG3TNIUB.js → chunk-K5R2I37T.js} +208 -97
  53. package/dist/{chunk-AAUY53CC.js → chunk-KHL6WFRL.js} +2 -2
  54. package/dist/{chunk-OQ6KOQEV.js → chunk-KYFXXEK3.js} +3 -3
  55. package/dist/{chunk-5RSXUAMN.js → chunk-MHHISNS2.js} +2 -2
  56. package/dist/{chunk-GHBFNLV2.js → chunk-RRCS27GT.js} +1531 -1175
  57. package/dist/{chunk-6YFHUIGT.js → chunk-RZTLXZHJ.js} +59 -21
  58. package/dist/{chunk-AX5KGRM6.js → chunk-SI4O2W4H.js} +2 -2
  59. package/dist/{chunk-BDGTZRZ6.js → chunk-UEXQMI6K.js} +56 -44
  60. package/dist/{chunk-7TIJXWG3.js → chunk-V2GJE5J5.js} +3 -3
  61. package/dist/{chunk-T746REAE.js → chunk-VC2B275U.js} +2 -2
  62. package/dist/{chunk-SEA2PFVI.js → chunk-XACP5P2J.js} +2 -2
  63. package/dist/{chunk-UWVMJEUJ.js → chunk-YTJIRQON.js} +2 -2
  64. package/dist/{chunk-YANR2RL7.js → chunk-ZIJABBGZ.js} +2 -2
  65. package/dist/{ci-workflow-HO4WKGNG.js → ci-workflow-LGN7LHHO.js} +4 -4
  66. package/dist/{dist-ICW4QUEW.js → dist-FBBADRYS.js} +3 -1
  67. package/dist/{dist-6D2F2J57.js → dist-LE5AU7FR.js} +19 -3
  68. package/dist/{docs-FP47JONV.js → docs-3BTPSHKE.js} +5 -5
  69. package/dist/{engine-YUA6IYOG.js → engine-GWGU4AMH.js} +4 -4
  70. package/dist/{entropy-DBW2INZU.js → entropy-35XURODP.js} +7 -4
  71. package/dist/{feedback-BPHADTRQ.js → feedback-NDGZZ37W.js} +1 -1
  72. package/dist/{generate-agent-definitions-KPVGBGDY.js → generate-agent-definitions-PYZ3E7SP.js} +5 -5
  73. package/dist/hooks/sentinel-pre.js +15 -138
  74. package/dist/index.d.ts +61 -0
  75. package/dist/index.js +25 -25
  76. package/dist/{loader-QOJQ6NZM.js → loader-QK2OJXKB.js} +4 -4
  77. package/dist/{mcp-ZPX6O767.js → mcp-Z5YMV7TA.js} +15 -15
  78. package/dist/{performance-FXYTGJGQ.js → performance-VAYOYPVK.js} +5 -5
  79. package/dist/{review-pipeline-2TFQ5OAE.js → review-pipeline-UETEOWSS.js} +4 -4
  80. package/dist/{runtime-XK6ZCHKE.js → runtime-J7KFACTK.js} +4 -4
  81. package/dist/{security-4W2P5ZGI.js → security-6AIUZXF5.js} +1 -1
  82. package/dist/{state-events-ECQAIZLU.js → state-events-XQPHGLG5.js} +4 -4
  83. package/dist/{validate-64KTEGIE.js → validate-ON7YMVLY.js} +5 -5
  84. package/dist/{validate-cross-check-J5PVGICB.js → validate-cross-check-HKKQA7K5.js} +4 -4
  85. package/package.json +8 -7
  86. package/dist/analyzer-V633GUHY-OV335HGM.js +0 -26
@@ -2,7 +2,7 @@ import {
2
2
  Err,
3
3
  Ok,
4
4
  init_dist
5
- } from "./chunk-BDGTZRZ6.js";
5
+ } from "./chunk-UEXQMI6K.js";
6
6
  import {
7
7
  DEFAULT_SKIP_DIRS,
8
8
  init_dist as init_dist2,
@@ -12,7 +12,7 @@ import {
12
12
  __esm
13
13
  } from "./chunk-KFQGP6VL.js";
14
14
 
15
- // ../core/dist/chunk-MUWJHO2S.mjs
15
+ // ../core/dist/chunk-JZ7UO3OF.mjs
16
16
  import { parse } from "@typescript-eslint/typescript-estree";
17
17
  import { access, constants, readFile } from "fs";
18
18
  import { promisify } from "util";
@@ -1021,18 +1021,57 @@ function extractPythonFromImport(child) {
1021
1021
  kind: "value"
1022
1022
  };
1023
1023
  }
1024
- function extractPythonExport(child) {
1025
- if (child.type === "function_definition" || child.type === "class_definition") {
1026
- return makeNamedExport(child);
1027
- }
1028
- if (child.type === "assignment") {
1029
- const left = child.childForFieldName("left") ?? child.children[0];
1030
- if (left && !left.text.startsWith("_")) {
1031
- return { name: left.text, type: "named", location: makeLocation2(child), isReExport: false };
1032
- }
1024
+ function makePythonExport(name, node) {
1025
+ return { name, type: "named", location: makeLocation2(node), isReExport: false };
1026
+ }
1027
+ function pythonAssignmentName(assignment) {
1028
+ const left = assignment.childForFieldName("left") ?? assignment.children[0];
1029
+ if (left && left.type === "identifier" && !left.text.startsWith("_")) {
1030
+ return left.text;
1033
1031
  }
1034
1032
  return null;
1035
1033
  }
1034
+ function unwrapPythonDefinition(node) {
1035
+ return node.childForFieldName("definition") ?? node.namedChildren.find(
1036
+ (c) => c.type === "function_definition" || c.type === "class_definition"
1037
+ ) ?? null;
1038
+ }
1039
+ function publicPythonDefName(node) {
1040
+ const name = node.childForFieldName("name");
1041
+ return name && !name.text.startsWith("_") ? name.text : null;
1042
+ }
1043
+ function collectExpressionStatementExports(node, out) {
1044
+ for (const child of node.namedChildren) {
1045
+ if (child.type !== "assignment") continue;
1046
+ const name = pythonAssignmentName(child);
1047
+ if (name) out.push(makePythonExport(name, child));
1048
+ }
1049
+ }
1050
+ function collectClassExports(node, out, descendIntoClass) {
1051
+ const name = publicPythonDefName(node);
1052
+ if (name) out.push(makePythonExport(name, node));
1053
+ const body = descendIntoClass ? node.childForFieldName("body") : null;
1054
+ if (!body) return;
1055
+ for (const member of body.namedChildren) {
1056
+ collectPythonExports(member, out, false);
1057
+ }
1058
+ }
1059
+ function collectPythonExports(node, out, descendIntoClass) {
1060
+ if (node.type === "decorated_definition") {
1061
+ const def = unwrapPythonDefinition(node);
1062
+ if (def) collectPythonExports(def, out, descendIntoClass);
1063
+ } else if (node.type === "expression_statement") {
1064
+ collectExpressionStatementExports(node, out);
1065
+ } else if (node.type === "function_definition") {
1066
+ const name = publicPythonDefName(node);
1067
+ if (name) out.push(makePythonExport(name, node));
1068
+ } else if (node.type === "class_definition") {
1069
+ collectClassExports(node, out, descendIntoClass);
1070
+ } else if (node.type === "assignment") {
1071
+ const name = pythonAssignmentName(node);
1072
+ if (name) out.push(makePythonExport(name, node));
1073
+ }
1074
+ }
1036
1075
  function extractGoImportPath(spec) {
1037
1076
  const pathNode = spec.childForFieldName("path") ?? spec.children.find((c) => c.type === "interpreted_string_literal");
1038
1077
  return pathNode ? pathNode.text.replace(/"/g, "") : null;
@@ -1108,8 +1147,8 @@ function getDefaultRegistry() {
1108
1147
  return registry;
1109
1148
  }
1110
1149
  var accessAsync, readFileAsync, DEFAULT_FIND_FILES_IGNORE, TypeScriptParser, EXTENSION_MAP, parserCache, initialized, GRAMMAR_MAP, TOP_LEVEL_TYPES, METHOD_TYPES, IDENTIFIER_TYPES, NAME_EXTRACTORS, EXTENSION_BY_LANG, JS_EXT_FALLBACKS, DEFAULT_THRESHOLDS, FUNCTION_PATTERNS, DECISION_PATTERNS, DEFAULT_THRESHOLDS2, pythonStrategy, goStrategy, RUST_USE_ARG_TYPES, RUST_PUB_ITEM_TYPES, rustStrategy, JAVA_IMPORT_TYPES, JAVA_EXPORT_TYPES, javaStrategy, STRATEGIES, TreeSitterParser, ParserRegistry, defaultRegistry;
1111
- var init_chunk_MUWJHO2S = __esm({
1112
- "../core/dist/chunk-MUWJHO2S.mjs"() {
1150
+ var init_chunk_JZ7UO3OF = __esm({
1151
+ "../core/dist/chunk-JZ7UO3OF.mjs"() {
1113
1152
  "use strict";
1114
1153
  init_dist();
1115
1154
  accessAsync = promisify(access);
@@ -1394,8 +1433,7 @@ var init_chunk_MUWJHO2S = __esm({
1394
1433
  extractExports(root) {
1395
1434
  const exports = [];
1396
1435
  for (const child of root.children) {
1397
- const exp = extractPythonExport(child);
1398
- if (exp) exports.push(exp);
1436
+ collectPythonExports(child, exports, true);
1399
1437
  }
1400
1438
  return exports;
1401
1439
  }
@@ -1605,7 +1643,7 @@ var init_chunk_MUWJHO2S = __esm({
1605
1643
  }
1606
1644
  });
1607
1645
 
1608
- // ../core/dist/chunk-S4DTDJ6J.mjs
1646
+ // ../core/dist/chunk-IHRT6II2.mjs
1609
1647
  import { resolve as resolve2 } from "path";
1610
1648
  import { minimatch as minimatch2 } from "minimatch";
1611
1649
  import { join, resolve as resolve3 } from "path";
@@ -3062,10 +3100,10 @@ function generateSuggestions(deadCode, drift, patterns) {
3062
3100
  };
3063
3101
  }
3064
3102
  var TS_HINTS, TS_CONVENTIONS, PYTHON_HINTS, PYTHON_CONVENTIONS, DEFAULT_INCLUDE_PATTERNS, BCP47_LOCALE_RE, FILE_REFERENCE_RE, CODE_BLOCK_LANGUAGES, DEFAULT_FORWARD_LOOKING_PATHS, DEFAULT_DRIFT_CONFIG, JS_EXT_FALLBACKS2, FILE_TYPES, EXPORT_TYPES, CONVENTION_DESCRIPTIONS, RULE_CHECKERS, EntropyAnalyzer;
3065
- var init_chunk_S4DTDJ6J = __esm({
3066
- "../core/dist/chunk-S4DTDJ6J.mjs"() {
3103
+ var init_chunk_IHRT6II2 = __esm({
3104
+ "../core/dist/chunk-IHRT6II2.mjs"() {
3067
3105
  "use strict";
3068
- init_chunk_MUWJHO2S();
3106
+ init_chunk_JZ7UO3OF();
3069
3107
  init_dist2();
3070
3108
  init_dist2();
3071
3109
  TS_HINTS = ['Add "exports" or "main" to package.json', "Create src/index.ts"];
@@ -3393,7 +3431,7 @@ export {
3393
3431
  detectComplexityViolations,
3394
3432
  detectCouplingViolations,
3395
3433
  getDefaultRegistry,
3396
- init_chunk_MUWJHO2S,
3434
+ init_chunk_JZ7UO3OF,
3397
3435
  buildSnapshot,
3398
3436
  detectDocDrift,
3399
3437
  detectDeadCode,
@@ -3402,5 +3440,5 @@ export {
3402
3440
  detectSizeBudgetViolations,
3403
3441
  generateSuggestions,
3404
3442
  EntropyAnalyzer,
3405
- init_chunk_S4DTDJ6J
3443
+ init_chunk_IHRT6II2
3406
3444
  };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-MMLQPHZ5.js";
3
+ } from "./chunk-33OU3LYX.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
7
- } from "./chunk-BDGTZRZ6.js";
7
+ } from "./chunk-UEXQMI6K.js";
8
8
 
9
9
  // src/persona/generators/ci-workflow.ts
10
10
  init_dist();
@@ -9,6 +9,7 @@ import { z as z3 } from "zod";
9
9
  import { z as z4 } from "zod";
10
10
  import { z as z5 } from "zod";
11
11
  import { z as z6 } from "zod";
12
+ import { z as z7 } from "zod";
12
13
  function Ok(value) {
13
14
  return { ok: true, value };
14
15
  }
@@ -21,7 +22,7 @@ function isOk(result) {
21
22
  function isErr(result) {
22
23
  return result.ok === false;
23
24
  }
24
- var STANDARD_COGNITIVE_MODES, DEFAULT_SKILL_CONTEXT_BUDGET, SESSION_SECTION_NAMES, TrajectoryMetadataSchema, PromptCacheStatsSchema, OTLPKeyValueSchema, OTLPSpanSchema, REQUIRED_STRATEGY_SECTIONS, OPTIONAL_STRATEGY_SECTIONS, TokenScopeSchema, BridgeKindSchema, AuthTokenSchema, AuthTokenPublicSchema, AuthAuditEntrySchema, WebhookSubscriptionSchema, WebhookSubscriptionPublicSchema, GatewayEventSchema, WebhookDeliveryStatusSchema, WebhookDeliverySchema, INDEXED_FILE_KINDS, SessionSummarySchema, INSIGHTS_KEYS, SESSIONS_DEFAULTS, NotificationSinkKindSchema, NotificationSeveritySchema, NotificationActionSchema, NotificationEnvelopeSchema, NotificationSinkConfigSchema, NotificationsConfigSchema, NotificationDeliveryResultSchema, SkillProvenanceSchema, ProposalKindSchema, ProposalStatusSchema, ProposalGateFindingSchema, ProposalGateSchema, ProposalDecisionSchema, ProposalContentSchema, ProposalSourceSchema, SkillProposalSchema, EmitSkillProposalInputSchema, EditProposalInputSchema;
25
+ var STANDARD_COGNITIVE_MODES, DEFAULT_SKILL_CONTEXT_BUDGET, SESSION_SECTION_NAMES, TrajectoryMetadataSchema, PromptCacheStatsSchema, OTLPKeyValueSchema, OTLPSpanSchema, REQUIRED_STRATEGY_SECTIONS, OPTIONAL_STRATEGY_SECTIONS, TokenScopeSchema, BridgeKindSchema, AuthTokenSchema, AuthTokenPublicSchema, AuthAuditEntrySchema, WebhookSubscriptionSchema, WebhookSubscriptionPublicSchema, GatewayEventSchema, WebhookDeliveryStatusSchema, WebhookDeliverySchema, INDEXED_FILE_KINDS, SessionSummarySchema, INSIGHTS_KEYS, SESSIONS_DEFAULTS, NotificationSinkKindSchema, NotificationSeveritySchema, NotificationActionSchema, NotificationEnvelopeSchema, NotificationSinkConfigSchema, NotificationsConfigSchema, NotificationDeliveryResultSchema, PlanTaskSchema, SkillProvenanceSchema, ProposalKindSchema, ProposalStatusSchema, ProposalGateFindingSchema, ProposalGateSchema, ProposalDecisionSchema, ProposalContentSchema, ProposalSourceSchema, SkillProposalSchema, EmitSkillProposalInputSchema, EditProposalInputSchema;
25
26
  var init_dist = __esm({
26
27
  "../types/dist/index.mjs"() {
27
28
  STANDARD_COGNITIVE_MODES = [
@@ -234,48 +235,58 @@ var init_dist = __esm({
234
235
  httpStatus: z5.number().int().optional()
235
236
  })
236
237
  ]);
237
- SkillProvenanceSchema = z6.enum(["community", "agent-proposed", "user-authored"]);
238
- ProposalKindSchema = z6.enum(["new-skill", "refinement"]);
239
- ProposalStatusSchema = z6.enum([
238
+ PlanTaskSchema = z6.object({
239
+ /** Stable, unique task id within a plan. */
240
+ id: z6.string().min(1),
241
+ /** Files the task is expected to touch — the independence-checking input. */
242
+ files: z6.array(z6.string()),
243
+ /** Ids of tasks that must complete before this one (explicit DAG edges). */
244
+ dependsOn: z6.array(z6.string()).optional(),
245
+ /** Path globs the task claims ownership of. Consumed if present; defined by #601. */
246
+ owns: z6.array(z6.string()).optional()
247
+ }).strict();
248
+ SkillProvenanceSchema = z7.enum(["community", "agent-proposed", "user-authored"]);
249
+ ProposalKindSchema = z7.enum(["new-skill", "refinement"]);
250
+ ProposalStatusSchema = z7.enum([
240
251
  "open",
241
252
  "gate-running",
242
253
  "gate-failed",
243
254
  "approved",
244
255
  "rejected"
245
256
  ]);
246
- ProposalGateFindingSchema = z6.object({
247
- severity: z6.enum(["error", "warning"]),
248
- title: z6.string(),
249
- detail: z6.string()
257
+ ProposalGateFindingSchema = z7.object({
258
+ severity: z7.enum(["error", "warning"]),
259
+ title: z7.string(),
260
+ detail: z7.string()
250
261
  });
251
- ProposalGateSchema = z6.object({
252
- lastRunAt: z6.string().datetime().optional(),
253
- findings: z6.array(ProposalGateFindingSchema).optional()
262
+ ProposalGateSchema = z7.object({
263
+ lastRunAt: z7.string().datetime().optional(),
264
+ findings: z7.array(ProposalGateFindingSchema).optional()
254
265
  });
255
- ProposalDecisionSchema = z6.object({
256
- decidedAt: z6.string().datetime(),
257
- decidedBy: z6.string(),
258
- action: z6.enum(["approved", "rejected"]),
259
- reason: z6.string().optional()
266
+ ProposalDecisionSchema = z7.object({
267
+ decidedAt: z7.string().datetime(),
268
+ decidedBy: z7.string(),
269
+ action: z7.enum(["approved", "rejected"]),
270
+ reason: z7.string().optional()
260
271
  });
261
- ProposalContentSchema = z6.object({
262
- name: z6.string().regex(/^[a-z][a-z0-9-]*$/).max(64),
263
- description: z6.string().min(20).max(280),
264
- skillYaml: z6.string().optional(),
265
- skillMd: z6.string().optional(),
266
- diff: z6.string().optional()
272
+ ProposalContentSchema = z7.object({
273
+ name: z7.string().regex(/^[a-z][a-z0-9-]*$/).max(64),
274
+ description: z7.string().min(20).max(280),
275
+ skillYaml: z7.string().optional(),
276
+ skillMd: z7.string().optional(),
277
+ diff: z7.string().optional()
267
278
  }).strict();
268
- ProposalSourceSchema = z6.object({
269
- sessionId: z6.string().optional(),
270
- taskId: z6.string().optional(),
271
- justification: z6.string().min(20).max(2e3)
279
+ ProposalSourceSchema = z7.object({
280
+ sessionId: z7.string().optional(),
281
+ taskId: z7.string().optional(),
282
+ justification: z7.string().min(20).max(2e3)
272
283
  });
273
- SkillProposalSchema = z6.object({
274
- id: z6.string().min(1),
275
- createdAt: z6.string().datetime(),
284
+ SkillProposalSchema = z7.object({
285
+ id: z7.string().min(1),
286
+ createdAt: z7.string().datetime(),
276
287
  kind: ProposalKindSchema,
277
- targetSkill: z6.string().optional(),
278
- proposedBy: z6.string().min(1),
288
+ targetSkill: z7.string().optional(),
289
+ proposedBy: z7.string().min(1),
279
290
  source: ProposalSourceSchema,
280
291
  content: ProposalContentSchema,
281
292
  status: ProposalStatusSchema,
@@ -285,21 +296,21 @@ var init_dist = __esm({
285
296
  if (val.kind === "new-skill") {
286
297
  if (!val.content.skillYaml || !val.content.skillMd) {
287
298
  ctx.addIssue({
288
- code: z6.ZodIssueCode.custom,
299
+ code: z7.ZodIssueCode.custom,
289
300
  path: ["content"],
290
301
  message: "new-skill proposals require skillYaml and skillMd"
291
302
  });
292
303
  }
293
304
  if (val.targetSkill) {
294
305
  ctx.addIssue({
295
- code: z6.ZodIssueCode.custom,
306
+ code: z7.ZodIssueCode.custom,
296
307
  path: ["targetSkill"],
297
308
  message: "targetSkill is forbidden on new-skill proposals"
298
309
  });
299
310
  }
300
311
  if (val.content.diff) {
301
312
  ctx.addIssue({
302
- code: z6.ZodIssueCode.custom,
313
+ code: z7.ZodIssueCode.custom,
303
314
  path: ["content", "diff"],
304
315
  message: "diff is forbidden on new-skill proposals"
305
316
  });
@@ -307,37 +318,37 @@ var init_dist = __esm({
307
318
  } else if (val.kind === "refinement") {
308
319
  if (!val.targetSkill) {
309
320
  ctx.addIssue({
310
- code: z6.ZodIssueCode.custom,
321
+ code: z7.ZodIssueCode.custom,
311
322
  path: ["targetSkill"],
312
323
  message: "refinement proposals require targetSkill"
313
324
  });
314
325
  }
315
326
  if (!val.content.diff) {
316
327
  ctx.addIssue({
317
- code: z6.ZodIssueCode.custom,
328
+ code: z7.ZodIssueCode.custom,
318
329
  path: ["content", "diff"],
319
330
  message: "refinement proposals require a unified diff"
320
331
  });
321
332
  }
322
333
  if (val.content.skillYaml || val.content.skillMd) {
323
334
  ctx.addIssue({
324
- code: z6.ZodIssueCode.custom,
335
+ code: z7.ZodIssueCode.custom,
325
336
  path: ["content"],
326
337
  message: "skillYaml/skillMd are forbidden on refinement proposals (use diff)"
327
338
  });
328
339
  }
329
340
  }
330
341
  });
331
- EmitSkillProposalInputSchema = z6.object({
342
+ EmitSkillProposalInputSchema = z7.object({
332
343
  kind: ProposalKindSchema,
333
- targetSkill: z6.string().optional(),
334
- proposedBy: z6.string().min(1).max(120),
335
- justification: z6.string().min(20).max(2e3),
336
- sessionId: z6.string().optional(),
337
- taskId: z6.string().optional(),
344
+ targetSkill: z7.string().optional(),
345
+ proposedBy: z7.string().min(1).max(120),
346
+ justification: z7.string().min(20).max(2e3),
347
+ sessionId: z7.string().optional(),
348
+ taskId: z7.string().optional(),
338
349
  content: ProposalContentSchema
339
350
  });
340
- EditProposalInputSchema = z6.object({
351
+ EditProposalInputSchema = z7.object({
341
352
  content: ProposalContentSchema.partial()
342
353
  });
343
354
  }
@@ -378,6 +389,7 @@ export {
378
389
  NotificationSinkConfigSchema,
379
390
  NotificationsConfigSchema,
380
391
  NotificationDeliveryResultSchema,
392
+ PlanTaskSchema,
381
393
  SkillProvenanceSchema,
382
394
  ProposalKindSchema,
383
395
  ProposalStatusSchema,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-Y6SUQC32.js";
4
4
  import {
5
5
  resolveConfig
6
- } from "./chunk-XAVMTAUT.js";
6
+ } from "./chunk-6STDKKAM.js";
7
7
  import {
8
8
  logger
9
9
  } from "./chunk-EBJQ6N4M.js";
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-3WGJMBKH.js";
13
13
  import {
14
14
  init_dist
15
- } from "./chunk-MMLQPHZ5.js";
15
+ } from "./chunk-33OU3LYX.js";
16
16
  import {
17
17
  Ok
18
- } from "./chunk-BDGTZRZ6.js";
18
+ } from "./chunk-UEXQMI6K.js";
19
19
 
20
20
  // src/commands/check-phase-gate.ts
21
21
  init_dist();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-MMLQPHZ5.js";
3
+ } from "./chunk-33OU3LYX.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
7
- } from "./chunk-BDGTZRZ6.js";
7
+ } from "./chunk-UEXQMI6K.js";
8
8
 
9
9
  // src/persona/generators/agents-md.ts
10
10
  init_dist();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-MMLQPHZ5.js";
3
+ } from "./chunk-33OU3LYX.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
7
- } from "./chunk-BDGTZRZ6.js";
7
+ } from "./chunk-UEXQMI6K.js";
8
8
 
9
9
  // src/mcp/utils/config-resolver.ts
10
10
  init_dist();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_dist
3
- } from "./chunk-MMLQPHZ5.js";
3
+ } from "./chunk-33OU3LYX.js";
4
4
  import {
5
5
  Err,
6
6
  Ok
7
- } from "./chunk-BDGTZRZ6.js";
7
+ } from "./chunk-UEXQMI6K.js";
8
8
 
9
9
  // src/templates/engine.ts
10
10
  init_dist();
@@ -3,11 +3,11 @@ import {
3
3
  } from "./chunk-KET4QQZB.js";
4
4
  import {
5
5
  init_dist
6
- } from "./chunk-MMLQPHZ5.js";
6
+ } from "./chunk-33OU3LYX.js";
7
7
  import {
8
8
  Err,
9
9
  Ok
10
- } from "./chunk-BDGTZRZ6.js";
10
+ } from "./chunk-UEXQMI6K.js";
11
11
 
12
12
  // src/persona/generators/runtime.ts
13
13
  init_dist();
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  generateCIWorkflow
3
- } from "./chunk-AX5KGRM6.js";
4
- import "./chunk-MMLQPHZ5.js";
5
- import "./chunk-6YFHUIGT.js";
6
- import "./chunk-BDGTZRZ6.js";
3
+ } from "./chunk-SI4O2W4H.js";
4
+ import "./chunk-33OU3LYX.js";
5
+ import "./chunk-RZTLXZHJ.js";
6
+ import "./chunk-UEXQMI6K.js";
7
7
  import "./chunk-WZJR6SOI.js";
8
8
  import "./chunk-QCLOIUMX.js";
9
9
  import "./chunk-XARGEOJV.js";
@@ -21,6 +21,7 @@ import {
21
21
  OTLPKeyValueSchema,
22
22
  OTLPSpanSchema,
23
23
  Ok,
24
+ PlanTaskSchema,
24
25
  PromptCacheStatsSchema,
25
26
  ProposalContentSchema,
26
27
  ProposalDecisionSchema,
@@ -45,7 +46,7 @@ import {
45
46
  init_dist,
46
47
  isErr,
47
48
  isOk
48
- } from "./chunk-BDGTZRZ6.js";
49
+ } from "./chunk-UEXQMI6K.js";
49
50
  import "./chunk-KFQGP6VL.js";
50
51
  init_dist();
51
52
  export {
@@ -71,6 +72,7 @@ export {
71
72
  OTLPKeyValueSchema,
72
73
  OTLPSpanSchema,
73
74
  Ok,
75
+ PlanTaskSchema,
74
76
  PromptCacheStatsSchema,
75
77
  ProposalContentSchema,
76
78
  ProposalDecisionSchema,
@@ -205,6 +205,7 @@ import {
205
205
  buildExclusionSet,
206
206
  buildExternalId,
207
207
  buildProjectContext,
208
+ buildTaskGraph,
208
209
  calculateCacheSavings,
209
210
  calculateCost,
210
211
  calibrateDepth,
@@ -304,6 +305,7 @@ import {
304
305
  generateAgentsMap,
305
306
  generateRubric,
306
307
  getActionEmitter,
308
+ getCatalogRetrospectiveReport,
307
309
  getExitCode,
308
310
  getFeedbackConfig,
309
311
  getInjectionPatterns,
@@ -324,6 +326,7 @@ import {
324
326
  injectionRules,
325
327
  insecureDefaultsRules,
326
328
  invalidateCheckState,
329
+ isAbandonedMidWorkflow,
327
330
  isBadPort,
328
331
  isClaimableBy,
329
332
  isDuplicateFinding,
@@ -385,12 +388,14 @@ import {
385
388
  parseManifest,
386
389
  parseMeta,
387
390
  parseProtectedRegions,
391
+ parseReferencedIssues,
388
392
  parseRoadmap,
389
393
  parseSections,
390
394
  parseSecurityConfig,
391
395
  parseShard,
392
396
  parseStrategyDoc,
393
397
  pathTraversalRules,
398
+ planParallelization,
394
399
  presetKind,
395
400
  previewFix,
396
401
  projectValue,
@@ -417,6 +422,7 @@ import {
417
422
  release,
418
423
  removeContributions,
419
424
  removeProvenance,
425
+ renderRetrospectiveMarkdown,
420
426
  requestMultiplePeerReviews,
421
427
  requestPeerReview,
422
428
  resetFeedbackConfig,
@@ -501,6 +507,7 @@ import {
501
507
  validateFindings,
502
508
  validateKnowledgeMap,
503
509
  validatePatternConfig,
510
+ validatePlanTasks,
504
511
  validatePulseConfig,
505
512
  validateRoadmapMode,
506
513
  validateSolutionsDir,
@@ -516,7 +523,7 @@ import {
516
523
  writeStrategyDoc,
517
524
  writeTaint,
518
525
  xssRules
519
- } from "./chunk-MMLQPHZ5.js";
526
+ } from "./chunk-33OU3LYX.js";
520
527
  import {
521
528
  EXTENSION_MAP,
522
529
  EntropyAnalyzer,
@@ -542,7 +549,7 @@ import {
542
549
  resetParserCache,
543
550
  resolveFileToLayer,
544
551
  validateDependencies
545
- } from "./chunk-6YFHUIGT.js";
552
+ } from "./chunk-RZTLXZHJ.js";
546
553
  import {
547
554
  AuthAuditEntrySchema,
548
555
  AuthTokenPublicSchema,
@@ -566,6 +573,7 @@ import {
566
573
  OTLPKeyValueSchema,
567
574
  OTLPSpanSchema,
568
575
  Ok,
576
+ PlanTaskSchema,
569
577
  PromptCacheStatsSchema,
570
578
  ProposalContentSchema,
571
579
  ProposalDecisionSchema,
@@ -589,7 +597,7 @@ import {
589
597
  WebhookSubscriptionSchema,
590
598
  isErr,
591
599
  isOk
592
- } from "./chunk-BDGTZRZ6.js";
600
+ } from "./chunk-UEXQMI6K.js";
593
601
  import "./chunk-WZJR6SOI.js";
594
602
  import {
595
603
  ArchBaselineSchema,
@@ -756,6 +764,7 @@ export {
756
764
  PII_LINE_RE,
757
765
  PII_TOKENS,
758
766
  PatternConfigSchema,
767
+ PlanTaskSchema,
759
768
  PredictionEngine,
760
769
  PredictionOptionsSchema,
761
770
  RegressionResultSchema as PredictionRegressionResultSchema,
@@ -895,6 +904,7 @@ export {
895
904
  buildExternalId,
896
905
  buildProjectContext,
897
906
  buildSnapshot,
907
+ buildTaskGraph,
898
908
  calculateCacheSavings,
899
909
  calculateCost,
900
910
  calibrateDepth,
@@ -1006,6 +1016,7 @@ export {
1006
1016
  generateRubric,
1007
1017
  generateSuggestions,
1008
1018
  getActionEmitter,
1019
+ getCatalogRetrospectiveReport,
1009
1020
  getExitCode,
1010
1021
  getFeedbackConfig,
1011
1022
  getInjectionPatterns,
@@ -1027,6 +1038,7 @@ export {
1027
1038
  injectionRules,
1028
1039
  insecureDefaultsRules,
1029
1040
  invalidateCheckState,
1041
+ isAbandonedMidWorkflow,
1030
1042
  isBadPort,
1031
1043
  isClaimableBy,
1032
1044
  isDuplicateFinding,
@@ -1091,6 +1103,7 @@ export {
1091
1103
  parseManifest,
1092
1104
  parseMeta,
1093
1105
  parseProtectedRegions,
1106
+ parseReferencedIssues,
1094
1107
  parseRoadmap,
1095
1108
  parseSections,
1096
1109
  parseSecurityConfig,
@@ -1098,6 +1111,7 @@ export {
1098
1111
  parseSize,
1099
1112
  parseStrategyDoc,
1100
1113
  pathTraversalRules,
1114
+ planParallelization,
1101
1115
  presetKind,
1102
1116
  previewFix,
1103
1117
  projectValue,
@@ -1124,6 +1138,7 @@ export {
1124
1138
  release,
1125
1139
  removeContributions,
1126
1140
  removeProvenance,
1141
+ renderRetrospectiveMarkdown,
1127
1142
  requestMultiplePeerReviews,
1128
1143
  requestPeerReview,
1129
1144
  resetFeedbackConfig,
@@ -1211,6 +1226,7 @@ export {
1211
1226
  validateFindings,
1212
1227
  validateKnowledgeMap,
1213
1228
  validatePatternConfig,
1229
+ validatePlanTasks,
1214
1230
  validatePulseConfig,
1215
1231
  validateRoadmapMode,
1216
1232
  validateSolutionsDir,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  checkDocsDefinition,
3
3
  handleCheckDocs
4
- } from "./chunk-I3CGCZJF.js";
4
+ } from "./chunk-BJDT3VGQ.js";
5
5
  import "./chunk-RC3OI5NK.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-XAVMTAUT.js";
7
+ import "./chunk-6STDKKAM.js";
8
8
  import "./chunk-ZCZD7FHU.js";
9
9
  import "./chunk-3WGJMBKH.js";
10
- import "./chunk-MMLQPHZ5.js";
11
- import "./chunk-6YFHUIGT.js";
12
- import "./chunk-BDGTZRZ6.js";
10
+ import "./chunk-33OU3LYX.js";
11
+ import "./chunk-RZTLXZHJ.js";
12
+ import "./chunk-UEXQMI6K.js";
13
13
  import "./chunk-WZJR6SOI.js";
14
14
  import "./chunk-QCLOIUMX.js";
15
15
  import "./chunk-XARGEOJV.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  TemplateEngine
3
- } from "./chunk-UWVMJEUJ.js";
4
- import "./chunk-MMLQPHZ5.js";
5
- import "./chunk-6YFHUIGT.js";
6
- import "./chunk-BDGTZRZ6.js";
3
+ } from "./chunk-YTJIRQON.js";
4
+ import "./chunk-33OU3LYX.js";
5
+ import "./chunk-RZTLXZHJ.js";
6
+ import "./chunk-UEXQMI6K.js";
7
7
  import "./chunk-WZJR6SOI.js";
8
8
  import "./chunk-QCLOIUMX.js";
9
9
  import "./chunk-XARGEOJV.js";
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  detectEntropyDefinition,
3
3
  handleDetectEntropy
4
- } from "./chunk-SDMV4QHM.js";
4
+ } from "./chunk-DBCC7KIW.js";
5
5
  import "./chunk-RC3OI5NK.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-MMLQPHZ5.js";
8
- import "./chunk-6YFHUIGT.js";
9
- import "./chunk-BDGTZRZ6.js";
7
+ import "./chunk-6STDKKAM.js";
8
+ import "./chunk-ZCZD7FHU.js";
9
+ import "./chunk-3WGJMBKH.js";
10
+ import "./chunk-33OU3LYX.js";
11
+ import "./chunk-RZTLXZHJ.js";
12
+ import "./chunk-UEXQMI6K.js";
10
13
  import "./chunk-WZJR6SOI.js";
11
14
  import "./chunk-QCLOIUMX.js";
12
15
  import "./chunk-XARGEOJV.js";