@seanmars/tospec 0.19.0-beta.5 → 0.19.0-beta.7

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 (87) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +15 -4
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +19 -2
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/dashboard.d.ts +32 -7
  9. package/dist/commands/dashboard.d.ts.map +1 -1
  10. package/dist/commands/dashboard.js +139 -12
  11. package/dist/commands/dashboard.js.map +1 -1
  12. package/dist/commands/decision.d.ts.map +1 -1
  13. package/dist/commands/decision.js +32 -8
  14. package/dist/commands/decision.js.map +1 -1
  15. package/dist/commands/show.d.ts.map +1 -1
  16. package/dist/commands/show.js +11 -2
  17. package/dist/commands/show.js.map +1 -1
  18. package/dist/commands/validate.d.ts +19 -0
  19. package/dist/commands/validate.d.ts.map +1 -1
  20. package/dist/commands/validate.js +50 -9
  21. package/dist/commands/validate.js.map +1 -1
  22. package/dist/commands/workflow/status.d.ts.map +1 -1
  23. package/dist/commands/workflow/status.js +3 -0
  24. package/dist/commands/workflow/status.js.map +1 -1
  25. package/dist/core/archive.d.ts.map +1 -1
  26. package/dist/core/archive.js +52 -15
  27. package/dist/core/archive.js.map +1 -1
  28. package/dist/core/artifact-graph/graph.d.ts +13 -3
  29. package/dist/core/artifact-graph/graph.d.ts.map +1 -1
  30. package/dist/core/artifact-graph/graph.js +16 -6
  31. package/dist/core/artifact-graph/graph.js.map +1 -1
  32. package/dist/core/artifact-graph/instruction-loader.d.ts +11 -0
  33. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  34. package/dist/core/artifact-graph/instruction-loader.js +45 -6
  35. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  36. package/dist/core/artifact-graph/outputs.d.ts +17 -6
  37. package/dist/core/artifact-graph/outputs.d.ts.map +1 -1
  38. package/dist/core/artifact-graph/outputs.js +17 -6
  39. package/dist/core/artifact-graph/outputs.js.map +1 -1
  40. package/dist/core/codex-residue.d.ts +6 -5
  41. package/dist/core/codex-residue.d.ts.map +1 -1
  42. package/dist/core/codex-residue.js +23 -8
  43. package/dist/core/codex-residue.js.map +1 -1
  44. package/dist/core/config.d.ts +7 -0
  45. package/dist/core/config.d.ts.map +1 -1
  46. package/dist/core/config.js +12 -1
  47. package/dist/core/config.js.map +1 -1
  48. package/dist/core/init.d.ts +4 -2
  49. package/dist/core/init.d.ts.map +1 -1
  50. package/dist/core/init.js +53 -45
  51. package/dist/core/init.js.map +1 -1
  52. package/dist/core/local-server.d.ts +30 -4
  53. package/dist/core/local-server.d.ts.map +1 -1
  54. package/dist/core/local-server.js +48 -13
  55. package/dist/core/local-server.js.map +1 -1
  56. package/dist/core/migrate.d.ts +3 -1
  57. package/dist/core/migrate.d.ts.map +1 -1
  58. package/dist/core/migrate.js +54 -4
  59. package/dist/core/migrate.js.map +1 -1
  60. package/dist/core/parsers/requirement-blocks.js +32 -9
  61. package/dist/core/parsers/requirement-blocks.js.map +1 -1
  62. package/dist/core/templates/workflows/issue.d.ts.map +1 -1
  63. package/dist/core/templates/workflows/issue.js +3 -0
  64. package/dist/core/templates/workflows/issue.js.map +1 -1
  65. package/dist/core/update.js +7 -7
  66. package/dist/core/update.js.map +1 -1
  67. package/dist/core/validation/validator.d.ts +21 -2
  68. package/dist/core/validation/validator.d.ts.map +1 -1
  69. package/dist/core/validation/validator.js +75 -28
  70. package/dist/core/validation/validator.js.map +1 -1
  71. package/dist/utils/change-utils.d.ts +3 -2
  72. package/dist/utils/change-utils.d.ts.map +1 -1
  73. package/dist/utils/change-utils.js +12 -11
  74. package/dist/utils/change-utils.js.map +1 -1
  75. package/dist/utils/link.d.ts +19 -16
  76. package/dist/utils/link.d.ts.map +1 -1
  77. package/dist/utils/link.js +18 -54
  78. package/dist/utils/link.js.map +1 -1
  79. package/dist/utils/spec-files.d.ts +12 -0
  80. package/dist/utils/spec-files.d.ts.map +1 -1
  81. package/dist/utils/spec-files.js +34 -0
  82. package/dist/utils/spec-files.js.map +1 -1
  83. package/package.json +1 -1
  84. package/schemas/issue/schema.yaml +4 -2
  85. package/schemas/issue/templates/spec.md +12 -2
  86. package/schemas/sdd/schema.yaml +4 -0
  87. package/schemas/sdd/templates/spec.md +12 -2
@@ -4,6 +4,7 @@ import { type ProjectConfig } from '../project-config.js';
4
4
  import type { PlanningHome } from '../planning-home.js';
5
5
  import type { ChangeMetadata } from '../change-metadata/index.js';
6
6
  import type { CompletedSet } from './types.js';
7
+ import type { CommandDiagnostic } from '../../commands/shared-output.js';
7
8
  /**
8
9
  * Error thrown when loading a template fails.
9
10
  */
@@ -33,6 +34,14 @@ export interface ChangeContext {
33
34
  planningHome?: PlanningHome;
34
35
  /** Parsed change metadata, when present */
35
36
  metadata?: ChangeMetadata;
37
+ /**
38
+ * Artifact ids this specific change has declared away (currently only
39
+ * `specs`, via `skip_specs: true`) — treated like a schema-level `optional`
40
+ * artifact, but decided per change rather than by the schema.
41
+ */
42
+ skippedArtifacts?: ReadonlySet<string>;
43
+ /** Set when `skip_specs` is present but not a boolean — surfaced, never silently dropped. */
44
+ skipSpecsInvalidReason?: string;
36
45
  }
37
46
  export interface LoadChangeContextOptions {
38
47
  changeDir?: string;
@@ -126,6 +135,8 @@ export interface ChangeStatus {
126
135
  applyRequires: string[];
127
136
  /** Status of each artifact */
128
137
  artifacts: ArtifactStatus[];
138
+ /** Non-blocking diagnostics about the change itself (e.g. an unusable skip_specs value). Absent when there is nothing to report. */
139
+ status?: CommandDiagnostic[];
129
140
  }
130
141
  export interface ArtifactPathSummary {
131
142
  outputPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-loader.d.ts","sourceRoot":"","sources":["../../../src/core/artifact-graph/instruction-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruction-loader.d.ts","sourceRoot":"","sources":["../../../src/core/artifact-graph/instruction-loader.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { collectAllArtifactIds, fileStamp, getSchemaDir, resolveSchema } from '.
4
4
  import { ArtifactGraph } from './graph.js';
5
5
  import { detectCompleted } from './state.js';
6
6
  import { resolveArtifactOutputs } from './outputs.js';
7
- import { readChangeMetadata, resolveSchemaForChange } from '../../utils/change-metadata.js';
7
+ import { METADATA_FILENAME, readChangeMetadata, readSkipSpecsMarker, resolveSchemaForChange, } from '../../utils/change-metadata.js';
8
8
  import { FileSystemUtils } from '../../utils/file-system.js';
9
9
  import { buildActionContext, buildNextSteps, summarizePlanningHome, } from '../change-status-policy.js';
10
10
  import { readProjectConfig, validateConfigRules } from '../project-config.js';
@@ -77,7 +77,27 @@ export function loadTemplate(schemaName, templatePath, projectRoot) {
77
77
  */
78
78
  export function loadChangeContext(projectRoot, changeName, schemaName, options = {}) {
79
79
  const changeDir = FileSystemUtils.canonicalizeExistingPath(options.changeDir ?? path.join(projectRoot, 'tospec', 'changes', changeName));
80
- const metadata = readChangeMetadata(changeDir, projectRoot) ?? undefined;
80
+ // Read independently of readChangeMetadata below: it never throws (a
81
+ // malformed value is reported via invalidReason, not an exception), so it
82
+ // stays available even when the full metadata parse does throw because of
83
+ // that same field.
84
+ const skipSpecsMarker = readSkipSpecsMarker(changeDir);
85
+ let metadata;
86
+ try {
87
+ metadata = readChangeMetadata(changeDir, projectRoot) ?? undefined;
88
+ }
89
+ catch (error) {
90
+ // readChangeMetadata validates the whole document as a unit, so an
91
+ // invalid skip_specs value fails everything else in it too — including
92
+ // fields (schema, decisions, ...) that have nothing to do with skip_specs
93
+ // and did not cause the failure. Only recover when skipSpecsMarker
94
+ // independently confirms skip_specs is the field at fault; any other
95
+ // cause still throws, since there is no way to tell what the rest of the
96
+ // metadata should have been.
97
+ if (!skipSpecsMarker.invalidReason)
98
+ throw error;
99
+ metadata = undefined;
100
+ }
81
101
  const resolvedSchemaName = resolveSchemaForChange(changeDir, schemaName, projectRoot, {
82
102
  metadata: metadata ?? null,
83
103
  });
@@ -90,11 +110,20 @@ export function loadChangeContext(projectRoot, changeName, schemaName, options =
90
110
  for (const id of stubs) {
91
111
  completed.delete(id);
92
112
  }
113
+ // skip_specs is the per-change escape hatch from a schema's default
114
+ // `specs` requirement. Scoped to the `specs` id by convention, matching
115
+ // validate.ts's and archive.ts's existing readers of this marker.
116
+ const skippedArtifacts = new Set();
117
+ if (skipSpecsMarker.declared && graph.getArtifact('specs')) {
118
+ skippedArtifacts.add('specs');
119
+ }
93
120
  return {
94
121
  graph,
95
122
  completed,
96
123
  stubs,
97
124
  schemaName: resolvedSchemaName,
125
+ skippedArtifacts,
126
+ ...(skipSpecsMarker.invalidReason ? { skipSpecsInvalidReason: skipSpecsMarker.invalidReason } : {}),
98
127
  changeName,
99
128
  changeDir,
100
129
  projectRoot,
@@ -235,8 +264,8 @@ export function formatChangeStatus(context) {
235
264
  const schema = resolveSchema(context.schemaName, context.projectRoot);
236
265
  const applyRequires = schema.apply?.requires ?? schema.artifacts.map(a => a.id);
237
266
  const artifacts = context.graph.getAllArtifacts();
238
- const ready = new Set(context.graph.getNextArtifacts(context.completed));
239
- const blocked = context.graph.getBlocked(context.completed);
267
+ const ready = new Set(context.graph.getNextArtifacts(context.completed, context.skippedArtifacts));
268
+ const blocked = context.graph.getBlocked(context.completed, context.skippedArtifacts);
240
269
  const artifactPaths = {};
241
270
  const artifactStatuses = artifacts.map(artifact => {
242
271
  artifactPaths[artifact.id] = {
@@ -250,7 +279,7 @@ export function formatChangeStatus(context) {
250
279
  ? 'done'
251
280
  : context.stubs?.has(artifact.id)
252
281
  ? 'stub'
253
- : artifact.optional
282
+ : artifact.optional || context.skippedArtifacts?.has(artifact.id)
254
283
  ? 'skipped'
255
284
  : ready.has(artifact.id)
256
285
  ? 'ready'
@@ -269,8 +298,17 @@ export function formatChangeStatus(context) {
269
298
  const buildOrder = context.graph.getBuildOrder();
270
299
  const orderMap = new Map(buildOrder.map((id, idx) => [id, idx]));
271
300
  artifactStatuses.sort((a, b) => (orderMap.get(a.id) ?? 0) - (orderMap.get(b.id) ?? 0));
272
- const isComplete = context.graph.isComplete(context.completed);
301
+ const isComplete = context.graph.isComplete(context.completed, context.skippedArtifacts);
273
302
  const artifactIds = artifactStatuses.map((artifact) => artifact.id);
303
+ const statusDiagnostics = [];
304
+ if (context.skipSpecsInvalidReason) {
305
+ statusDiagnostics.push({
306
+ severity: 'warning',
307
+ code: 'skip_specs_invalid',
308
+ message: `Invalid ${METADATA_FILENAME}: ${context.skipSpecsInvalidReason}`,
309
+ fix: 'Set skip_specs to true or false, or remove the key.',
310
+ });
311
+ }
274
312
  return {
275
313
  changeName: context.changeName,
276
314
  schemaName: context.schemaName,
@@ -289,6 +327,7 @@ export function formatChangeStatus(context) {
289
327
  artifactIds,
290
328
  }),
291
329
  artifacts: artifactStatuses,
330
+ ...(statusDiagnostics.length ? { status: statusDiagnostics } : {}),
292
331
  };
293
332
  }
294
333
  //# sourceMappingURL=instruction-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-loader.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/instruction-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruction-loader.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/instruction-loader.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,24 @@ export declare function isGlobPattern(pattern: string): boolean;
8
8
  */
9
9
  export declare function resolveArtifactOutputs(changeDir: string, generates: string): string[];
10
10
  /**
11
- * Async twin of {@link resolveArtifactOutputs}, for server paths.
11
+ * Async twin of {@link resolveArtifactOutputs}, for `collectChangeDetail` — its
12
+ * only caller, and the reason it is worth keeping a second implementation.
13
+ * A detail pane is fetched while the overview may still be aggregating, so its
14
+ * per-artifact resolution is the one that has something to interleave with.
12
15
  *
13
- * The dashboard recomputes every change's artifact status on every file save
14
- * (fs.watch → 200 ms debounce → SSE → refetch). Doing that synchronously held
15
- * the event loop for the whole aggregation, so the server answered nothing else
16
- * meanwhile — including the SSE heartbeat and any concurrent request. The CLI's
17
- * callers stay on the synchronous export: they have nothing to interleave with.
16
+ * It does **not** serve the save-triggered overview, despite what the change
17
+ * that introduced it was named after. `collectOverview` reaches this module only
18
+ * through `artifactSummaryFor` → `formatChangeStatus` → `artifactOutputExists`
19
+ * and through `listTasksForChange`, both synchronous — deliberately, and
20
+ * measured: dashboard-data.ts records 2.1 ms as the longest stall across 30
21
+ * changes with the sync resolver in place, because the awaits already sitting in
22
+ * that loop break the work across iterations. What removed the cost there was
23
+ * the single-wildcard `readdir` fast path above, not asynchrony.
24
+ *
25
+ * The duplicated branch structure is held to the sync version by the parity
26
+ * cases in test/core/artifact-graph/outputs.test.ts, which run both resolvers
27
+ * over each branch — non-glob, fast path, fast-glob fallback, missing prefix —
28
+ * and assert identical results. Any behaviour added to one belongs in that list.
18
29
  */
19
30
  export declare function resolveArtifactOutputsAsync(changeDir: string, generates: string): Promise<string[]>;
20
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../../src/core/artifact-graph/outputs.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAyCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2CnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAElF"}
1
+ {"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../../src/core/artifact-graph/outputs.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAyCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CrF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2CnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAElF"}
@@ -101,13 +101,24 @@ export function resolveArtifactOutputs(changeDir, generates) {
101
101
  return finalizeMatches(matches);
102
102
  }
103
103
  /**
104
- * Async twin of {@link resolveArtifactOutputs}, for server paths.
104
+ * Async twin of {@link resolveArtifactOutputs}, for `collectChangeDetail` — its
105
+ * only caller, and the reason it is worth keeping a second implementation.
106
+ * A detail pane is fetched while the overview may still be aggregating, so its
107
+ * per-artifact resolution is the one that has something to interleave with.
105
108
  *
106
- * The dashboard recomputes every change's artifact status on every file save
107
- * (fs.watch → 200 ms debounce → SSE → refetch). Doing that synchronously held
108
- * the event loop for the whole aggregation, so the server answered nothing else
109
- * meanwhile — including the SSE heartbeat and any concurrent request. The CLI's
110
- * callers stay on the synchronous export: they have nothing to interleave with.
109
+ * It does **not** serve the save-triggered overview, despite what the change
110
+ * that introduced it was named after. `collectOverview` reaches this module only
111
+ * through `artifactSummaryFor` → `formatChangeStatus` → `artifactOutputExists`
112
+ * and through `listTasksForChange`, both synchronous — deliberately, and
113
+ * measured: dashboard-data.ts records 2.1 ms as the longest stall across 30
114
+ * changes with the sync resolver in place, because the awaits already sitting in
115
+ * that loop break the work across iterations. What removed the cost there was
116
+ * the single-wildcard `readdir` fast path above, not asynchrony.
117
+ *
118
+ * The duplicated branch structure is held to the sync version by the parity
119
+ * cases in test/core/artifact-graph/outputs.test.ts, which run both resolvers
120
+ * over each branch — non-glob, fast path, fast-glob fallback, missing prefix —
121
+ * and assert identical results. Any behaviour added to one belongs in that list.
111
122
  */
112
123
  export async function resolveArtifactOutputsAsync(changeDir, generates) {
113
124
  if (!isGlobPattern(generates)) {
@@ -1 +1 @@
1
- {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/outputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/outputs.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,13 @@
9
9
  * delete them must not exist here. Removing leftovers stays the user's call.
10
10
  */
11
11
  /**
12
- * Whether `<projectPath>/.codex` still holds tospec output: a tospec skill
13
- * directory, or any file under its rules directory. Either alone is enough —
14
- * a user who cleaned up one half should still hear about the other.
12
+ * Whether `<projectPath>/.codex` still holds tospec output: a `tospec-` skill
13
+ * directory, or a file under `rules/tospec/`. Either alone is enough — a user
14
+ * who cleaned up one half should still hear about the other.
15
15
  *
16
- * The directory merely existing is not enough: a project that only ever kept
17
- * its own Codex settings there would otherwise be told to delete them.
16
+ * Both halves match only what tospec itself writes. The directory merely
17
+ * existing is not enough: a project that only ever kept its own Codex settings
18
+ * there would otherwise be told to delete them.
18
19
  */
19
20
  export declare function hasResidualCodexOutput(projectPath: string): boolean;
20
21
  /** Shared by init and update so neither can report what the other suppresses. */
@@ -1 +1 @@
1
- {"version":3,"file":"codex-residue.d.ts","sourceRoot":"","sources":["../../src/core/codex-residue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6BH;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,qQAC6N,CAAC"}
1
+ {"version":3,"file":"codex-residue.d.ts","sourceRoot":"","sources":["../../src/core/codex-residue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2CH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,qQAC6N,CAAC"}
@@ -13,6 +13,8 @@ import * as fs from 'node:fs';
13
13
  const CODEX_DIR = '.codex';
14
14
  /** Skill directories tospec generates are named `tospec-<workflow>`. */
15
15
  const SKILL_DIR_PREFIX = 'tospec-';
16
+ /** Rules tospec writes land under `<tool>/rules/tospec/`, never loose in `rules/`. */
17
+ const RULES_SUBDIR = 'tospec';
16
18
  function hasTospecSkillDir(codexDir) {
17
19
  try {
18
20
  return fs
@@ -23,10 +25,22 @@ function hasTospecSkillDir(codexDir) {
23
25
  return false;
24
26
  }
25
27
  }
26
- function hasAnyRuleFile(codexDir) {
28
+ /**
29
+ * Scoped to `rules/tospec/` rather than all of `rules/`, for the same reason
30
+ * the skill check is scoped to the `tospec-` prefix: `writeToolRules` only ever
31
+ * writes under that subdirectory, and the notice tells the user to delete
32
+ * exactly it. Scanning the whole tree made a project's own
33
+ * `.codex/rules/team-style.md` trigger a notice claiming tospec had put it
34
+ * there — the very mistake this module's docstring warns against one paragraph
35
+ * down. Still recursive, so a nested layout from an older version counts.
36
+ */
37
+ function hasTospecRuleFile(codexDir) {
27
38
  try {
28
39
  return fs
29
- .readdirSync(path.join(codexDir, 'rules'), { recursive: true, withFileTypes: true })
40
+ .readdirSync(path.join(codexDir, 'rules', RULES_SUBDIR), {
41
+ recursive: true,
42
+ withFileTypes: true,
43
+ })
30
44
  .some((entry) => entry.isFile());
31
45
  }
32
46
  catch {
@@ -34,16 +48,17 @@ function hasAnyRuleFile(codexDir) {
34
48
  }
35
49
  }
36
50
  /**
37
- * Whether `<projectPath>/.codex` still holds tospec output: a tospec skill
38
- * directory, or any file under its rules directory. Either alone is enough —
39
- * a user who cleaned up one half should still hear about the other.
51
+ * Whether `<projectPath>/.codex` still holds tospec output: a `tospec-` skill
52
+ * directory, or a file under `rules/tospec/`. Either alone is enough — a user
53
+ * who cleaned up one half should still hear about the other.
40
54
  *
41
- * The directory merely existing is not enough: a project that only ever kept
42
- * its own Codex settings there would otherwise be told to delete them.
55
+ * Both halves match only what tospec itself writes. The directory merely
56
+ * existing is not enough: a project that only ever kept its own Codex settings
57
+ * there would otherwise be told to delete them.
43
58
  */
44
59
  export function hasResidualCodexOutput(projectPath) {
45
60
  const codexDir = path.join(projectPath, CODEX_DIR);
46
- return hasTospecSkillDir(codexDir) || hasAnyRuleFile(codexDir);
61
+ return hasTospecSkillDir(codexDir) || hasTospecRuleFile(codexDir);
47
62
  }
48
63
  /** Shared by init and update so neither can report what the other suppresses. */
49
64
  export const RESIDUAL_CODEX_NOTICE = 'Note: .codex/ still holds tospec output from an earlier version. tospec no longer writes there — Codex reads skills from .agents/. Removing .codex/skills/tospec-* and .codex/rules/tospec/ is optional and entirely up to you; tospec will not touch them.';
@@ -1 +1 @@
1
- {"version":3,"file":"codex-residue.js","sourceRoot":"","sources":["../../src/core/codex-residue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnF,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAChC,6PAA6P,CAAC"}
1
+ {"version":3,"file":"codex-residue.js","sourceRoot":"","sources":["../../src/core/codex-residue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,sFAAsF;AACtF,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;YACvD,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;SACpB,CAAC;aACD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAChC,6PAA6P,CAAC"}
@@ -33,6 +33,13 @@ export declare const AI_TOOLS: AIToolOption[];
33
33
  * to exist before anything links into it, and callers process the returned list
34
34
  * in order. Unknown ids are passed through untouched so the caller's own
35
35
  * "unknown tool" error still fires instead of being silently dropped here.
36
+ *
37
+ * Which is why a cycle throws rather than being absorbed. Returning early on a
38
+ * revisit would still produce a list — one with a dependent ahead of its
39
+ * dependency, since the inner call pushes first — and the caller would then
40
+ * link into a directory nothing had written yet. There is no ordering that
41
+ * satisfies a cycle, so the table is wrong and has to say so at the point the
42
+ * edit is made.
36
43
  */
37
44
  export declare function resolveToolSelection(toolIds: readonly string[]): string[];
38
45
  /** Ids at least one other target is built from, so refreshing them fans out. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,YAAY,EAQlC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBzE;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,YAAY,EAQlC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAsBzE;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAAW,CAAC"}
@@ -15,13 +15,24 @@ export const AI_TOOLS = [
15
15
  * to exist before anything links into it, and callers process the returned list
16
16
  * in order. Unknown ids are passed through untouched so the caller's own
17
17
  * "unknown tool" error still fires instead of being silently dropped here.
18
+ *
19
+ * Which is why a cycle throws rather than being absorbed. Returning early on a
20
+ * revisit would still produce a list — one with a dependent ahead of its
21
+ * dependency, since the inner call pushes first — and the caller would then
22
+ * link into a directory nothing had written yet. There is no ordering that
23
+ * satisfies a cycle, so the table is wrong and has to say so at the point the
24
+ * edit is made.
18
25
  */
19
26
  export function resolveToolSelection(toolIds) {
20
27
  const resolved = [];
21
28
  const visiting = new Set();
22
29
  const visit = (id) => {
23
- if (resolved.includes(id) || visiting.has(id))
30
+ if (resolved.includes(id))
24
31
  return;
32
+ if (visiting.has(id)) {
33
+ throw new Error(`Circular tool dependency in AI_TOOLS at '${id}': ${[...visiting, id].join(' -> ')}. ` +
34
+ 'Dependencies must form a chain, because callers write targets in the returned order.');
35
+ }
25
36
  visiting.add(id);
26
37
  for (const dependency of AI_TOOLS.find((tool) => tool.value === id)?.requires ?? []) {
27
38
  visit(dependency);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AA8BxC,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,4EAA4E;IAC5E,oDAAoD;IACpD,EAAE;IACF,yEAAyE;IACzE,yEAAyE;IACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClH,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;CACnI,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAQ,EAAE;QACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;YACpF,KAAK,CAAC,UAAU,CAAC,CAAC;QACpB,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,OAAO;QAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AA8BxC,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,4EAA4E;IAC5E,oDAAoD;IACpD,EAAE;IACF,yEAAyE;IACzE,yEAAyE;IACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClH,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;CACnI,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAQ,EAAE;QACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO;QAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,4CAA4C,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBACpF,sFAAsF,CACzF,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;YACpF,KAAK,CAAC,UAAU,CAAC,CAAC;QACpB,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,OAAO;QAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC"}
@@ -23,8 +23,10 @@ export declare class InitCommand {
23
23
  * prompt: an explanation reaching the user after they answered cannot inform
24
24
  * the answer. Derived from the table so a future dependency documents itself.
25
25
  *
26
- * `--tools none` selects nothing and writes nothing, and that is known from
27
- * the argument alone — no need to wait for a prompt that will not run.
26
+ * Which is also why it is called from the prompt path only. A run driven by
27
+ * `--tools` or `--interactive=false` has no answer to inform, so the same
28
+ * lines there are just an unprompted paragraph about targets the user may not
29
+ * have picked — `tospec init --tools agents` explaining Claude Code.
28
30
  */
29
31
  private discloseToolDependencies;
30
32
  private canPromptInteractively;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiDH,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAE1C,YAAY,OAAO,GAAE,kBAAuB,EAK3C;IAEK,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D/C;YAMa,QAAQ;IAatB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;YAgBhB,gBAAgB;IAuG9B,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,aAAa;IAsCrB;;;;;;;OAOG;YACW,wBAAwB;YAkBxB,yBAAyB;YA8GzB,YAAY;IAqB1B,OAAO,CAAC,qBAAqB;YAkGf,oBAAoB;CAqBnC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2DH,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAE1C,YAAY,OAAO,GAAE,kBAAuB,EAK3C;IAEK,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D/C;YAMa,QAAQ;IAatB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;YAgBhB,gBAAgB;IA2G9B,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,aAAa;IAsCrB;;;;;;;OAOG;YACW,wBAAwB;YAkBxB,yBAAyB;YAqGzB,YAAY;IAqB1B,OAAO,CAAC,qBAAqB;YAwGf,oBAAoB;CAqBnC"}