@ai-dossier/cli 0.33.3 → 0.34.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/README.md CHANGED
@@ -1075,7 +1075,7 @@ ai-dossier plan validate --issue 462
1075
1075
 
1076
1076
  | Command | What it does | Writes? |
1077
1077
  |---|---|---|
1078
- | `post` | Validates the file's five sections, stamps `head=`, comments it via `gh issue comment` | yes |
1078
+ | `post` | Validates the file's five sections, stamps `head=`, comments it via `gh issue comment`; always discloses on stderr that it reads only the given file, never the issue's comment thread | yes |
1079
1079
  | `get` | Prints the latest artifact (raw in text mode, parsed fields with `--json`); exits 1 when no plan exists | no |
1080
1080
  | `validate` | Deterministic checks against the local clone; prints a `{valid, reasons[]}` JSON verdict; exits 1 when invalid | no |
1081
1081
 
@@ -1083,7 +1083,10 @@ ai-dossier plan validate --issue 462
1083
1083
  Files path not marked `(new)` exists at current HEAD (`git cat-file -e HEAD:<path>`) — a
1084
1084
  path marked `(new)` (the issue's scope is to create it) is exempt, and warns instead if it
1085
1085
  already exists — head-distance (commits on HEAD since the plan's `head=` — an info reason
1086
- when non-zero), and a risk-floor scan of
1086
+ when non-zero), discussion drift against the issue itself (non-artifact comments predating
1087
+ the plan are a `warn`, comments postdating it an `info`; `plan:v1`/`runstate:v1` comments
1088
+ never count, and the check reports rather than disappears when a timestamp is unreadable),
1089
+ and a risk-floor scan of
1087
1090
  Predicted Files (auth/secrets, payments/billing, migrations/schema, protocol surfaces are
1088
1091
  flagged as elevated-risk, info severity) — reporting `{check, severity, message}` reasons
1089
1092
  (full check/severity table in [docs/reference/plan-artifact.md](../docs/reference/plan-artifact.md)).
@@ -10,7 +10,7 @@ import type { Command } from 'commander';
10
10
  /** One finding of `validate`, machine-parseable by design. */
11
11
  export interface PlanValidationReason {
12
12
  /** Which check produced the finding. */
13
- check: 'artifact' | 'sections' | 'missing-file' | 'stale-plan' | 'head-distance' | 'risk-floor' | 'git';
13
+ check: 'artifact' | 'sections' | 'missing-file' | 'stale-plan' | 'head-distance' | 'discussion' | 'risk-floor' | 'git';
14
14
  /** `error` fails validity; `warn`/`info` are carried for the caller to act on. */
15
15
  severity: 'error' | 'warn' | 'info';
16
16
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CzC,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,KAAK,EACD,UAAU,GACV,UAAU,GACV,cAAc,GACd,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,KAAK,CAAC;IACV,kFAAkF;IAClF,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAsXD,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ1D"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoDzC,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,KAAK,EACD,UAAU,GACV,UAAU,GACV,cAAc,GACd,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,KAAK,CAAC;IACV,kFAAkF;IAClF,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AA0cD,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ1D"}
@@ -84,7 +84,7 @@ function fetchLatestPlan(issue, repo) {
84
84
  const result = (0, gh_1.tryFetchComments)(issue, repo);
85
85
  if (!result.ok)
86
86
  (0, gh_1.fail)([result.error]);
87
- const bodies = result.comments.map((c) => (typeof c?.body === 'string' ? c.body : ''));
87
+ const bodies = result.comments.map((c) => (0, gh_1.asString)(c?.body));
88
88
  const latest = (0, plan_artifact_1.findLatestPlan)(bodies);
89
89
  if (latest === null)
90
90
  return null;
@@ -95,8 +95,18 @@ function fetchLatestPlan(issue, repo) {
95
95
  createdAt: (0, gh_1.asString)(comment?.createdAt),
96
96
  author: (0, gh_1.asString)(comment?.author?.login),
97
97
  authorAssociation: (0, gh_1.asString)(comment?.authorAssociation),
98
+ comments: result.comments,
98
99
  };
99
100
  }
101
+ /**
102
+ * AC4 of #611: `post` takes a file, not the issue's comment thread — it never reads
103
+ * comments, so it cannot itself detect a correction posted there. Rather than let
104
+ * `validate`'s `valid: true` imply the plan is complete, `post` discloses the gap at write
105
+ * time, every time (dry-run and real): the operator posting a plan is the one positioned to
106
+ * know whether the issue has discussion since its body was written.
107
+ */
108
+ const DISCUSSION_DISCLOSURE = "Note: 'plan post' does not read the issue's comment thread — only the file you gave it. " +
109
+ "If the issue has comments since its body was written, re-check them before treating this plan as complete ('plan validate' reports a 'discussion' reason for every non-artifact comment on the issue, before or after the plan — it cannot tell which ones the plan already reflects).";
100
110
  /** `plan post` — validate a markdown file, stamp it with head=, comment it onto the issue. */
101
111
  function registerPostSubcommand(cmd) {
102
112
  cmd
@@ -138,6 +148,7 @@ function registerPostSubcommand(cmd) {
138
148
  ].join('\n'),
139
149
  ]);
140
150
  }
151
+ console.error(DISCUSSION_DISCLOSURE);
141
152
  if (options.dryRun) {
142
153
  (0, gh_1.printDryRun)(body, options.json, { head });
143
154
  return;
@@ -265,6 +276,61 @@ function artifactReasons(artifact) {
265
276
  }
266
277
  return reasons;
267
278
  }
279
+ /**
280
+ * `head-distance`'s analogue against the issue's own discussion instead of the repository
281
+ * (#611): comments the plan predates (a `warn` — the planner should have read them) and
282
+ * comments postdating it (an `info`, genuine drift since). `plan:v1`/`runstate:v1` artifact
283
+ * comments never count as discussion. A signal, not a gate — `valid` stays keyed off
284
+ * `severity: "error"` only, so neither case fails validity.
285
+ */
286
+ function discussionReason(severity, comments, when, advice) {
287
+ if (comments.length === 0)
288
+ return [];
289
+ return [
290
+ {
291
+ check: 'discussion',
292
+ severity,
293
+ message: `${comments.length} issue comment(s) posted ${when} this plan, newest at ${(0, plan_artifact_1.newestTimestamp)(comments) ?? 'an unreadable time'} — ${advice}.`,
294
+ },
295
+ ];
296
+ }
297
+ function discussionReasons(comments, planCreatedAt) {
298
+ const timestamped = comments.map((c) => ({
299
+ body: (0, gh_1.asString)(c?.body),
300
+ createdAt: (0, gh_1.asString)(c?.createdAt),
301
+ }));
302
+ // The plan's own timestamp is the only thing every comment is compared against. Without a
303
+ // readable one `discussionDrift` returns two empty buckets, which would render as "this
304
+ // issue has no discussion" — the one conclusion that is certainly wrong. Report the gap
305
+ // instead (#611), as a warn so `valid` is unaffected like every other discussion reason.
306
+ if (Number.isNaN(Date.parse(planCreatedAt))) {
307
+ const discussion = timestamped.filter((c) => !(0, plan_artifact_1.isArtifactComment)(c.body));
308
+ if (discussion.length === 0)
309
+ return [];
310
+ return [
311
+ {
312
+ check: 'discussion',
313
+ severity: 'warn',
314
+ message: `Could not compare this plan against ${discussion.length} issue comment(s): the plan comment's own createdAt is missing or unreadable ('${planCreatedAt || 'absent'}'). Read the thread by hand — 'gh issue view <number> --json comments'.`,
315
+ },
316
+ ];
317
+ }
318
+ const { predating, postdating } = (0, plan_artifact_1.discussionDrift)(timestamped, planCreatedAt);
319
+ const unreadable = (0, plan_artifact_1.unreadableCommentCount)(timestamped);
320
+ return [
321
+ ...discussionReason('warn', predating, 'before', 'the plan may not reflect them'),
322
+ ...discussionReason('info', postdating, 'after', 're-check the plan against them'),
323
+ ...(unreadable > 0
324
+ ? [
325
+ {
326
+ check: 'discussion',
327
+ severity: 'warn',
328
+ message: `${unreadable} issue comment(s) carry an unreadable createdAt and were not compared against this plan — read them by hand.`,
329
+ },
330
+ ]
331
+ : []),
332
+ ];
333
+ }
268
334
  /** `plan get` — print the latest artifact; exit 1 distinguishably when none exists. */
269
335
  function registerGetSubcommand(cmd) {
270
336
  cmd
@@ -328,6 +394,7 @@ function registerValidateSubcommand(cmd) {
328
394
  }
329
395
  else {
330
396
  reasons.push(...artifactReasons(found.artifact));
397
+ reasons.push(...discussionReasons(found.comments, found.createdAt));
331
398
  // Authorship signal, not a gate: selection is last-plan-wins by design (the
332
399
  // runstate:v1 convention), but a canonical plan from an account without write
333
400
  // access deserves a flag a consumer can act on.
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -141,4 +141,46 @@ export declare function scanRiskFloor(paths: readonly string[]): Array<{
141
141
  path: string;
142
142
  pattern: string;
143
143
  }>;
144
+ /**
145
+ * Whether a comment body IS an artifact comment (`plan:v1` or `runstate:v1`) rather than
146
+ * discussion (#611). Structural, by a **well-formed** opening marker — a plan body must
147
+ * parse under {@link parsePlanMarker}, not merely start with its prefix, so a comment
148
+ * opening `<!-- plan:v1 spoof -->` is discussion (which is what a reader would call it)
149
+ * rather than something the drift check silently skips. A plan or runstate comment quoted
150
+ * inside another comment (lines starting `>`) does not open the body and is likewise NOT
151
+ * excluded: it counts as discussion, same as a human's own words would.
152
+ */
153
+ export declare function isArtifactComment(body: string): boolean;
154
+ /** One issue comment as needed to compare it against the plan's own timestamp. */
155
+ export interface TimestampedComment {
156
+ body: string;
157
+ createdAt: string;
158
+ }
159
+ /** The two buckets {@link discussionDrift} splits an issue's non-artifact comments into. */
160
+ export interface DiscussionDrift {
161
+ /** Discussion older than the plan — comments the plan should already reflect. */
162
+ predating: TimestampedComment[];
163
+ /** Discussion newer than the plan — drift since the plan was written. */
164
+ postdating: TimestampedComment[];
165
+ }
166
+ /**
167
+ * Non-artifact comments on the issue, split by whether they predate or postdate the plan
168
+ * comment itself (#611). `head-distance` measures the plan's drift against the
169
+ * **repository**; this measures its drift against the **issue's own discussion** — the one
170
+ * place a human posts a correction. A comment whose timestamp cannot be parsed, or ties the
171
+ * plan's own timestamp exactly, counts as neither (there is nothing actionable to report);
172
+ * {@link unreadableCommentCount} reports the former separately so they are not silently
173
+ * dropped. An unparseable `planCreatedAt` yields both buckets empty — with no plan
174
+ * timestamp there is nothing to compare against, which callers must report rather than
175
+ * mistake for "this issue has no discussion".
176
+ */
177
+ export declare function discussionDrift(comments: readonly TimestampedComment[], planCreatedAt: string): DiscussionDrift;
178
+ /**
179
+ * How many non-artifact comments carry a `createdAt` {@link discussionDrift} could not
180
+ * parse, and so placed in neither bucket. Reported rather than dropped: an under-count is
181
+ * indistinguishable from a quiet issue otherwise (#611).
182
+ */
183
+ export declare function unreadableCommentCount(comments: readonly TimestampedComment[]): number;
184
+ /** The most recent `createdAt` among a set of comments, or `null` when the set is empty or every timestamp is unparseable. */
185
+ export declare function newestTimestamp(comments: readonly TimestampedComment[]): string | null;
144
186
  //# sourceMappingURL=plan-artifact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-artifact.d.ts","sourceRoot":"","sources":["../src/plan-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAKlD,wEAAwE;AACxE,eAAO,MAAM,aAAa,0FAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAKzD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAExD,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtC,sEAAsE;IACtE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIrE;AAmBD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AA6BD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAOpF;AAED,oHAAoH;AACpH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAMzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/D;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBnE;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CAOzE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACpC;AAcD,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAwB1D,CAAC;AAEF,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAQhG"}
1
+ {"version":3,"file":"plan-artifact.d.ts","sourceRoot":"","sources":["../src/plan-artifact.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,10 @@ exports.buildPlanComment = buildPlanComment;
24
24
  exports.parsePlanArtifact = parsePlanArtifact;
25
25
  exports.findLatestPlan = findLatestPlan;
26
26
  exports.scanRiskFloor = scanRiskFloor;
27
+ exports.isArtifactComment = isArtifactComment;
28
+ exports.discussionDrift = discussionDrift;
29
+ exports.unreadableCommentCount = unreadableCommentCount;
30
+ exports.newestTimestamp = newestTimestamp;
27
31
  const runstate_1 = require("./runstate");
28
32
  /**
29
33
  * Opens every plan artifact comment. Unlike the runstate marker, it carries `head=` — the
@@ -247,4 +251,73 @@ function scanRiskFloor(paths) {
247
251
  }
248
252
  return hits;
249
253
  }
254
+ /**
255
+ * Whether a comment body IS an artifact comment (`plan:v1` or `runstate:v1`) rather than
256
+ * discussion (#611). Structural, by a **well-formed** opening marker — a plan body must
257
+ * parse under {@link parsePlanMarker}, not merely start with its prefix, so a comment
258
+ * opening `<!-- plan:v1 spoof -->` is discussion (which is what a reader would call it)
259
+ * rather than something the drift check silently skips. A plan or runstate comment quoted
260
+ * inside another comment (lines starting `>`) does not open the body and is likewise NOT
261
+ * excluded: it counts as discussion, same as a human's own words would.
262
+ */
263
+ function isArtifactComment(body) {
264
+ return parsePlanMarker(body) !== null || body.startsWith(runstate_1.RUNSTATE_MARKER);
265
+ }
266
+ /**
267
+ * Non-artifact comments on the issue, split by whether they predate or postdate the plan
268
+ * comment itself (#611). `head-distance` measures the plan's drift against the
269
+ * **repository**; this measures its drift against the **issue's own discussion** — the one
270
+ * place a human posts a correction. A comment whose timestamp cannot be parsed, or ties the
271
+ * plan's own timestamp exactly, counts as neither (there is nothing actionable to report);
272
+ * {@link unreadableCommentCount} reports the former separately so they are not silently
273
+ * dropped. An unparseable `planCreatedAt` yields both buckets empty — with no plan
274
+ * timestamp there is nothing to compare against, which callers must report rather than
275
+ * mistake for "this issue has no discussion".
276
+ */
277
+ function discussionDrift(comments, planCreatedAt) {
278
+ const planTime = Date.parse(planCreatedAt);
279
+ const predating = [];
280
+ const postdating = [];
281
+ if (Number.isNaN(planTime))
282
+ return { predating, postdating };
283
+ for (const comment of comments) {
284
+ if (isArtifactComment(comment.body))
285
+ continue;
286
+ const time = Date.parse(comment.createdAt);
287
+ if (Number.isNaN(time))
288
+ continue;
289
+ if (time < planTime)
290
+ predating.push(comment);
291
+ else if (time > planTime)
292
+ postdating.push(comment);
293
+ }
294
+ return { predating, postdating };
295
+ }
296
+ /**
297
+ * How many non-artifact comments carry a `createdAt` {@link discussionDrift} could not
298
+ * parse, and so placed in neither bucket. Reported rather than dropped: an under-count is
299
+ * indistinguishable from a quiet issue otherwise (#611).
300
+ */
301
+ function unreadableCommentCount(comments) {
302
+ let unreadable = 0;
303
+ for (const comment of comments) {
304
+ if (isArtifactComment(comment.body))
305
+ continue;
306
+ if (Number.isNaN(Date.parse(comment.createdAt)))
307
+ unreadable += 1;
308
+ }
309
+ return unreadable;
310
+ }
311
+ /** The most recent `createdAt` among a set of comments, or `null` when the set is empty or every timestamp is unparseable. */
312
+ function newestTimestamp(comments) {
313
+ let newest = null;
314
+ for (const comment of comments) {
315
+ const time = Date.parse(comment.createdAt);
316
+ if (Number.isNaN(time))
317
+ continue;
318
+ if (newest === null || time > newest.time)
319
+ newest = { at: comment.createdAt, time };
320
+ }
321
+ return newest?.at ?? null;
322
+ }
250
323
  //# sourceMappingURL=plan-artifact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-artifact.js","sourceRoot":"","sources":["../src/plan-artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-artifact.js","sourceRoot":"","sources":["../src/plan-artifact.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAmCH,8BAEC;AAoCD,0CAIC;AA6DD,8DAOC;AAGD,sDAEC;AASD,4DAMC;AAOD,oDAGC;AAGD,4CAEC;AAUD,8CAkBC;AAiBD,wCAOC;AAwDD,sCAQC;AAWD,8CAEC;AA2BD,0CAiBC;AAOD,wDAOC;AAGD,0CAQC;AAxXD,yCAA8D;AAE9D;;;;;;;GAOG;AACU,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAElD,8BAA8B;AAC9B,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,wEAAwE;AAC3D,QAAA,aAAa,GAAG;IAC3B,SAAS;IACT,qBAAqB;IACrB,iBAAiB;IACjB,UAAU;IACV,YAAY;CACJ,CAAC;AAGX,wFAAwF;AACxF,MAAM,iBAAiB,GAAG,0CAA0C,CAAC;AAErE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,0BAAe,CAAC;AAqBxD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,IAAiB;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC;IACtE,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM;QAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAWD;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,WAAmB;IAC3D,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oHAAoH;AACpH,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,IAAI,GAAG,CACZ,yBAAyB,CAAC,WAAW,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,MAAM,OAAO,GAAG,qBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9F,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAgC,OAAO,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,mFAAmF;AACnF,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IAC7D,OAAO,GAAG,0BAAkB,QAAQ,IAAI,GAAG,aAAa,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AACrF,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,EAAiC,CAAC;IACnD,KAAK,MAAM,OAAO,IAAI,qBAAa,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,EAAE,IAAI;QACT,QAAQ;QACR,QAAQ;QACR,cAAc,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,QAAQ,EAAE,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AASD;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,aAAuB;IACpD,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAiBD,2FAA2F;AAC3F,SAAS,cAAc,CAAC,IAAY,EAAE,EAAU;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACzD,oFAAoF;IACpF,kEAAkE;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC;AAEY,QAAA,mBAAmB,GAAgC;IAC9D;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,cAAc,CACZ,CAAC,EACD,sFAAsF,CACvF,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;KACvC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,cAAc,CAAC,CAAC,EAAE,oEAAoE,CAAC;KAC1F;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,cAAc,CAAC,CAAC,EAAE,+DAA+D,CAAC;YAClF,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACpB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,0DAA0D,CAAC;KAC9F;CACF,CAAC;AAEF,8DAA8D;AAC9D,SAAgB,aAAa,CAAC,KAAwB;IACpD,MAAM,IAAI,GAA6C,EAAE,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,2BAAmB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,0BAAe,CAAC,CAAC;AAC5E,CAAC;AAgBD;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC7B,QAAuC,EACvC,aAAqB;IAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAyB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAE7D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,IAAI,IAAI,GAAG,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxC,IAAI,IAAI,GAAG,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,QAAuC;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAAE,UAAU,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8HAA8H;AAC9H,SAAgB,eAAe,CAAC,QAAuC;IACrE,IAAI,MAAM,GAAwC,IAAI,CAAC;IACvD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI;YAAE,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-dossier/cli",
3
- "version": "0.33.3",
3
+ "version": "0.34.1",
4
4
  "description": "Create, verify, sign, publish, and run dossiers — portable, signed, versioned skills for any LLM tool. The dossier ⇄ Claude Code skill bridge (install-skill / skill-export).",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "@ai-dossier/core": "^1.6.0",
57
- "@ai-dossier/sched": "^0.22.0",
57
+ "@ai-dossier/sched": "^0.23.0",
58
58
  "@ai-dossier/worktree-pool": "^0.6.1",
59
59
  "commander": "^12.1.0",
60
60
  "yaml": "^2.8.3"