@productbrain/cli 0.1.0-beta.11277 → 0.1.0-beta.11288

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 (122) hide show
  1. package/README.md +3 -2
  2. package/dist/__tests__/cli-error-once.test.d.ts +2 -0
  3. package/dist/__tests__/cli-error-once.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli-error-once.test.js +51 -0
  5. package/dist/__tests__/cli-error-once.test.js.map +1 -0
  6. package/dist/__tests__/init.test.d.ts +2 -1
  7. package/dist/__tests__/init.test.d.ts.map +1 -1
  8. package/dist/__tests__/init.test.js +110 -8
  9. package/dist/__tests__/init.test.js.map +1 -1
  10. package/dist/__tests__/removed-commands.test.js +31 -2
  11. package/dist/__tests__/removed-commands.test.js.map +1 -1
  12. package/dist/commands/connect-integration.test.js +1 -5
  13. package/dist/commands/connect-integration.test.js.map +1 -1
  14. package/dist/commands/connect-legacy-migration.test.js +0 -1
  15. package/dist/commands/connect-legacy-migration.test.js.map +1 -1
  16. package/dist/commands/connect-screens.d.ts +9 -13
  17. package/dist/commands/connect-screens.d.ts.map +1 -1
  18. package/dist/commands/connect-screens.js +16 -78
  19. package/dist/commands/connect-screens.js.map +1 -1
  20. package/dist/commands/connect-screens.test.d.ts +2 -0
  21. package/dist/commands/connect-screens.test.d.ts.map +1 -0
  22. package/dist/commands/connect-screens.test.js +18 -0
  23. package/dist/commands/connect-screens.test.js.map +1 -0
  24. package/dist/commands/connect.js +5 -5
  25. package/dist/commands/connect.js.map +1 -1
  26. package/dist/commands/connect.test.js +0 -4
  27. package/dist/commands/connect.test.js.map +1 -1
  28. package/dist/commands/init.d.ts +14 -1
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +90 -1
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/generated/routeLatencyBudget.generated.d.ts +0 -1
  33. package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -1
  34. package/dist/generated/routeLatencyBudget.generated.js +0 -10
  35. package/dist/generated/routeLatencyBudget.generated.js.map +1 -1
  36. package/dist/handleCliError.d.ts +17 -0
  37. package/dist/handleCliError.d.ts.map +1 -1
  38. package/dist/handleCliError.js +14 -3
  39. package/dist/handleCliError.js.map +1 -1
  40. package/dist/index.js +7 -33
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/client.d.ts.map +1 -1
  43. package/dist/lib/client.js +1 -2
  44. package/dist/lib/client.js.map +1 -1
  45. package/dist/lib/strip.d.ts +1 -1
  46. package/dist/lib/strip.js +1 -1
  47. package/package.json +1 -2
  48. package/dist/__tests__/handshake-augment.test.d.ts +0 -2
  49. package/dist/__tests__/handshake-augment.test.d.ts.map +0 -1
  50. package/dist/__tests__/handshake-augment.test.js +0 -407
  51. package/dist/__tests__/handshake-augment.test.js.map +0 -1
  52. package/dist/__tests__/handshake-dormancy.test.d.ts +0 -2
  53. package/dist/__tests__/handshake-dormancy.test.d.ts.map +0 -1
  54. package/dist/__tests__/handshake-dormancy.test.js +0 -24
  55. package/dist/__tests__/handshake-dormancy.test.js.map +0 -1
  56. package/dist/__tests__/handshake-formatter.test.d.ts +0 -2
  57. package/dist/__tests__/handshake-formatter.test.d.ts.map +0 -1
  58. package/dist/__tests__/handshake-formatter.test.js +0 -111
  59. package/dist/__tests__/handshake-formatter.test.js.map +0 -1
  60. package/dist/__tests__/handshake-preview.test.d.ts +0 -2
  61. package/dist/__tests__/handshake-preview.test.d.ts.map +0 -1
  62. package/dist/__tests__/handshake-preview.test.js +0 -500
  63. package/dist/__tests__/handshake-preview.test.js.map +0 -1
  64. package/dist/__tests__/handshake-session-threading.test.d.ts +0 -2
  65. package/dist/__tests__/handshake-session-threading.test.d.ts.map +0 -1
  66. package/dist/__tests__/handshake-session-threading.test.js +0 -185
  67. package/dist/__tests__/handshake-session-threading.test.js.map +0 -1
  68. package/dist/__tests__/handshake.e2e.test.d.ts +0 -2
  69. package/dist/__tests__/handshake.e2e.test.d.ts.map +0 -1
  70. package/dist/__tests__/handshake.e2e.test.js +0 -226
  71. package/dist/__tests__/handshake.e2e.test.js.map +0 -1
  72. package/dist/__tests__/handshake.test.d.ts +0 -2
  73. package/dist/__tests__/handshake.test.d.ts.map +0 -1
  74. package/dist/__tests__/handshake.test.js +0 -1040
  75. package/dist/__tests__/handshake.test.js.map +0 -1
  76. package/dist/__tests__/method-registry.integration.test.d.ts +0 -6
  77. package/dist/__tests__/method-registry.integration.test.d.ts.map +0 -1
  78. package/dist/__tests__/method-registry.integration.test.js +0 -17
  79. package/dist/__tests__/method-registry.integration.test.js.map +0 -1
  80. package/dist/__tests__/method-registry.test.d.ts +0 -12
  81. package/dist/__tests__/method-registry.test.d.ts.map +0 -1
  82. package/dist/__tests__/method-registry.test.js +0 -86
  83. package/dist/__tests__/method-registry.test.js.map +0 -1
  84. package/dist/commands/connect-context.d.ts +0 -55
  85. package/dist/commands/connect-context.d.ts.map +0 -1
  86. package/dist/commands/connect-context.js +0 -78
  87. package/dist/commands/connect-context.js.map +0 -1
  88. package/dist/commands/connect-context.test.d.ts +0 -2
  89. package/dist/commands/connect-context.test.d.ts.map +0 -1
  90. package/dist/commands/connect-context.test.js +0 -148
  91. package/dist/commands/connect-context.test.js.map +0 -1
  92. package/dist/commands/digest.d.ts +0 -17
  93. package/dist/commands/digest.d.ts.map +0 -1
  94. package/dist/commands/digest.js +0 -58
  95. package/dist/commands/digest.js.map +0 -1
  96. package/dist/commands/digest.test.d.ts +0 -2
  97. package/dist/commands/digest.test.d.ts.map +0 -1
  98. package/dist/commands/digest.test.js +0 -36
  99. package/dist/commands/digest.test.js.map +0 -1
  100. package/dist/commands/handshake.d.ts +0 -78
  101. package/dist/commands/handshake.d.ts.map +0 -1
  102. package/dist/commands/handshake.js +0 -1359
  103. package/dist/commands/handshake.js.map +0 -1
  104. package/dist/formatters/digest.d.ts +0 -13
  105. package/dist/formatters/digest.d.ts.map +0 -1
  106. package/dist/formatters/digest.js +0 -98
  107. package/dist/formatters/digest.js.map +0 -1
  108. package/dist/formatters/digest.test.d.ts +0 -2
  109. package/dist/formatters/digest.test.d.ts.map +0 -1
  110. package/dist/formatters/digest.test.js +0 -166
  111. package/dist/formatters/digest.test.js.map +0 -1
  112. package/dist/lib/method-registry.d.ts +0 -37
  113. package/dist/lib/method-registry.d.ts.map +0 -1
  114. package/dist/lib/method-registry.js +0 -41
  115. package/dist/lib/method-registry.js.map +0 -1
  116. package/templates/general/code-integrity.md +0 -11
  117. package/templates/general/getting-started.md +0 -12
  118. package/templates/method-registry.json +0 -16
  119. package/templates/node-ts/code-integrity.md +0 -13
  120. package/templates/node-ts/testing.md +0 -12
  121. package/templates/python/code-integrity.md +0 -13
  122. package/templates/python/testing.md +0 -12
@@ -1,58 +0,0 @@
1
- /**
2
- * pb digest --since <ISO or 7d> — read-only, plain-English brief over a run's pending
3
- * drafts, grouped into narrative themes with a founder-decisions vs agent-fixes split
4
- * (TASK-130, WP-702). No accept surface — nothing here writes to the Chain.
5
- *
6
- * Chain: DEC-299 (agent-native, JSON-default), STD-65 (structured, parseable, minimal)
7
- */
8
- import { getConfigOrGuide } from '../lib/config.js';
9
- import { kernelCall } from '../lib/client.js';
10
- import { runCliCommand } from '../lib/runner.js';
11
- import { formatDigest } from '../formatters/digest.js';
12
- import { CLIError, ErrorCode } from '../lib/errors.js';
13
- /** `<n>h` or `<n>d` — same shorthand `pb changes --since` uses. */
14
- const DURATION_RE = /^(\d+)(h|d)$/i;
15
- /**
16
- * Strict ISO 8601 date/datetime shape (PR #1122 round 1 review, P1): `Date.parse` is a
17
- * notoriously loose parser (V8 happily accepts free-text like "September 1" or a bare "1" as a
18
- * relative/implicit date) — accepting anything it parses let a typo silently resolve to some
19
- * unintended timestamp instead of failing with guidance. Requires a full `YYYY-MM-DD`, optionally
20
- * followed by a time (`Thh:mm`, seconds/fraction, and a `Z` or `±hh:mm` offset all optional).
21
- */
22
- const ISO_8601_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:\d{2})?)?$/;
23
- /**
24
- * Accepts an ISO 8601 timestamp OR a short duration (numeric + h/d suffix). Returns a ms-epoch
25
- * window start, or null when neither shape matches (checked BEFORE `Date.parse` ever runs, so a
26
- * loose-but-parseable free-text string like "September 1" is rejected, not silently accepted).
27
- */
28
- export function parseSince(input) {
29
- const durationMatch = input.match(DURATION_RE);
30
- if (durationMatch) {
31
- const value = parseInt(durationMatch[1], 10);
32
- const unit = durationMatch[2].toLowerCase();
33
- const durationMs = unit === 'h' ? value * 3_600_000 : value * 86_400_000;
34
- return Date.now() - durationMs;
35
- }
36
- if (!ISO_8601_RE.test(input))
37
- return null;
38
- const parsed = Date.parse(input);
39
- return Number.isNaN(parsed) ? null : parsed;
40
- }
41
- export async function runDigest(options) {
42
- const config = await getConfigOrGuide(() => runDigest(options));
43
- if (!config)
44
- return;
45
- const since = parseSince(options.since);
46
- if (since === null) {
47
- throw new CLIError(`Invalid --since value: '${options.since}'.`, {
48
- code: ErrorCode.VALIDATION_FAILED,
49
- category: 'validation',
50
- guidance: `Use an ISO 8601 timestamp (e.g. '2026-09-17T00:00:00Z') or a short duration (1h, 6h, 1d, 7d, 30d).`,
51
- });
52
- }
53
- await runCliCommand({
54
- fn: () => kernelCall('chain.runDigest', { since }),
55
- formatPretty: (result) => formatDigest(result, options.since),
56
- });
57
- }
58
- //# sourceMappingURL=digest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/commands/digest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,mEAAmE;AACnE,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,yEAAyE,CAAC;AAE9F;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA0B;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,2BAA2B,OAAO,CAAC,KAAK,IAAI,EAC5C;YACE,IAAI,EAAE,SAAS,CAAC,iBAAiB;YACjC,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,oGAAoG;SAC/G,CACF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,CAAe;QAChC,EAAE,EAAE,GAAG,EAAE,CACP,UAAU,CAA8C,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC;QACvF,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=digest.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"digest.test.d.ts","sourceRoot":"","sources":["../../src/commands/digest.test.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- /**
2
- * TASK-130 (WP-702) — `pb digest --since` parsing tests. PR #1122 round 1 review (P1):
3
- * `Date.parse` is a loose parser (V8 accepts free-text like "September 1" and even a bare "1"
4
- * as some implicit date) — `parseSince` must reject anything outside the `<n>d`/`<n>h`
5
- * duration shape or a strict ISO 8601 shape, never silently resolve a typo to a timestamp.
6
- */
7
- import { describe, expect, it } from 'vitest';
8
- import { parseSince } from './digest.js';
9
- describe('parseSince', () => {
10
- it('accepts a duration shorthand', () => {
11
- const before = Date.now();
12
- const result = parseSince('7d');
13
- expect(result).not.toBeNull();
14
- expect(result).toBeLessThanOrEqual(before);
15
- expect(result).toBeGreaterThan(before - 8 * 86_400_000);
16
- });
17
- it('accepts a strict ISO 8601 timestamp', () => {
18
- expect(parseSince('2026-09-17T00:00:00Z')).toBe(Date.parse('2026-09-17T00:00:00Z'));
19
- });
20
- it('accepts a bare ISO 8601 date (no time)', () => {
21
- expect(parseSince('2026-09-17')).toBe(Date.parse('2026-09-17'));
22
- });
23
- it('rejects a bare number — not a duration (no h/d suffix), not an ISO date', () => {
24
- expect(parseSince('1')).toBeNull();
25
- });
26
- it('rejects free-text that Date.parse would otherwise loosely accept', () => {
27
- expect(parseSince('September 1')).toBeNull();
28
- });
29
- it('rejects an empty string', () => {
30
- expect(parseSince('')).toBeNull();
31
- });
32
- it('rejects garbage', () => {
33
- expect(parseSince('not-a-date')).toBeNull();
34
- });
35
- });
36
- //# sourceMappingURL=digest.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"digest.test.js","sourceRoot":"","sources":["../../src/commands/digest.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,78 +0,0 @@
1
- /**
2
- * pb handshake — generate context files for AI developer tools.
3
- * Context export wiring (read-only filesystem bridge; GLO-63, DEC-161) — not a product surface.
4
- */
5
- import { type HandshakeReport } from '../formatters/handshake.js';
6
- import type { WorkspaceHealthResult } from './workspace.js';
7
- import { classifyDriftBucket, type DriftBucket } from './handshakeDriftClassification.js';
8
- import { type StartupResolutionSignals } from '../lib/startup-resolution-signals.js';
9
- import { type SurfaceName } from '../surfaces/registry.js';
10
- /** Wire-safe alias for a single health gap — derived from the CLI mirror in workspace.ts. */
11
- export type HealthGap = WorkspaceHealthResult['gaps'][number];
12
- export declare function runHandshakeInit(options?: {
13
- level?: string;
14
- dryRun?: boolean;
15
- }): Promise<void>;
16
- interface HandshakeOptions {
17
- force?: boolean;
18
- dryRun?: boolean;
19
- /** When true, actually write files. When false (default), show preview plan only. */
20
- apply?: boolean;
21
- level?: string;
22
- /** When true, suppress all progress output. Used when handshake is called as a sub-step. */
23
- quiet?: boolean;
24
- /** Optional caller-provided startup signals, merged with safe local signals. */
25
- startupSignals?: Partial<StartupResolutionSignals>;
26
- /** Queryable telemetry attribution for the path that invoked this handshake. */
27
- invocationPath?: 'session-start' | 'session-close' | 'manual-orient' | 'handshake' | 'unknown';
28
- /** Target surfaces to write adapter files for. Empty = write all. */
29
- surfaces?: string[];
30
- /** WP-421 S3 (#17): true, or non-TTY stdout, bypasses the adopt-or-revert prompt — tampered
31
- * files go to stderr, a `transition` setup_receipt records the refusal, exit non-zero. */
32
- noPrompt?: boolean;
33
- }
34
- /** Dereference a "PR #N" ref to its changed paths via `gh pr diff <N> --name-only` (F4: server
35
- * resolver has no git/gh access). Guarded/time-boxed; `run` is injectable for tests. */
36
- export declare function dereferencePrRefToPaths(cwd: string, prNumber: number, run?: (cwd: string, command: string, timeoutMs: number) => string | undefined): string[];
37
- /** Injectable runners for deriveHandshakeStartupSignals — lets tests drive git/gh side effects
38
- * (changed paths, merge-base delta, PR-diff dereference) without real subprocesses. */
39
- export type HandshakeStartupSignalDeps = {
40
- /** Run a read-only git command; undefined on failure. Default: runGitText. */
41
- runGit: (cwd: string, command: string) => string | undefined;
42
- /** Dereference a PR number to its changed paths (F4). Default: dereferencePrRefToPaths. */
43
- prDiff: (cwd: string, prNumber: number) => string[];
44
- };
45
- export declare function deriveHandshakeStartupSignals(cwd: string, callerSignals?: Partial<StartupResolutionSignals>, deps?: HandshakeStartupSignalDeps): StartupResolutionSignals;
46
- /** Normalize volatile handshake-only timestamps before comparing generated files — keeps visible
47
- * timestamps in artifacts while avoiding meaningless rewrites when content is unchanged. */
48
- export declare function normalizeHandshakeContentForComparison(content: string): string;
49
- export { classifyDriftBucket, type DriftBucket };
50
- export interface LeftoverProjection {
51
- path: string;
52
- reason: string;
53
- }
54
- /**
55
- * findLeftoverProjections — WP-379 S5b
56
- *
57
- * Lists marker-bearing files under .cursor/rules/, .claude/rules/, .claude/skills/, .codex/skills/
58
- * (plus the nested .cursor/skills/<name>/SKILL.md layout) that look stale: orphan (no canonical
59
- * asset), stale case/punctuation variant, or a leftover `.dormant` copy. User-owned (no MARKER)
60
- * files and unselected `allowedTargets` are never reported.
61
- *
62
- * Round 12: stops once `LEFTOVER_FILES_MAX + 1` matches are found across the flat + merged
63
- * nested-Cursor scan combined — bounds read/enumerate I/O, not just the reported list.
64
- * `truncated` says more exist beyond the capped, returned `files`.
65
- *
66
- * @param cursorSkillNames Cursor-specific, SKILL-kind-only canon (falls back to `assetNames`).
67
- * @param exactRelativePaths Round 11: exact write-plan paths (forward-slash), exempted from both
68
- * checks — covers asset-less generated files and a canonical raw name not already normalized.
69
- */
70
- export declare function findLeftoverProjections(cwd: string, assetNames: string[], allowedTargets: Set<SurfaceName>, cursorSkillNames?: string[], exactRelativePaths?: Set<string>): {
71
- files: LeftoverProjection[];
72
- truncated: boolean;
73
- };
74
- export declare function runHandshake(options?: HandshakeOptions): Promise<HandshakeReport | undefined>;
75
- export declare const __test: {
76
- MARKER: string;
77
- };
78
- //# sourceMappingURL=handshake.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/commands/handshake.ts"],"names":[],"mappings":"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"}