@ccdd/project 3.3.0 → 4.0.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 (153) hide show
  1. package/README.md +9 -12
  2. package/dist/monitor-ui/assets/GraphView-CaxsIXtN.js +27 -0
  3. package/dist/monitor-ui/assets/ValidationView-BMqI2XQ5.css +1 -0
  4. package/dist/monitor-ui/assets/ValidationView-CGW6-Ljw.js +1 -0
  5. package/dist/monitor-ui/assets/{elk-api-D5d3gWoP.js → elk-api-DIQ2_nge.js} +1 -1
  6. package/dist/monitor-ui/assets/{elk.bundled-0eaKiuBP.js → elk.bundled-BRtnLd_M.js} +1 -1
  7. package/dist/monitor-ui/assets/{index-DDwx11D7.css → index-D0yfhUlt.css} +1 -1
  8. package/dist/monitor-ui/assets/index-LyUbXn5P.js +7 -0
  9. package/dist/monitor-ui/index.html +2 -2
  10. package/dist/scripts/prepare-demo.js +25 -44
  11. package/dist/scripts/prepare-demo.js.map +1 -1
  12. package/dist/src/artifact-scope.d.ts +6 -0
  13. package/dist/src/artifact-scope.js +27 -0
  14. package/dist/src/artifact-scope.js.map +1 -0
  15. package/dist/src/artifacts/index.d.ts +7 -155
  16. package/dist/src/artifacts/index.js +0 -354
  17. package/dist/src/artifacts/index.js.map +1 -1
  18. package/dist/src/artifacts/instruction.d.ts +6 -9
  19. package/dist/src/artifacts/instruction.js +28 -36
  20. package/dist/src/artifacts/instruction.js.map +1 -1
  21. package/dist/src/artifacts/mcp-server.js +5 -6
  22. package/dist/src/artifacts/mcp-server.js.map +1 -1
  23. package/dist/src/artifacts/scope.d.ts +12 -0
  24. package/dist/src/artifacts/scope.js +34 -0
  25. package/dist/src/artifacts/scope.js.map +1 -0
  26. package/dist/src/artifacts/tool-check.d.ts +2 -6
  27. package/dist/src/artifacts/tool-check.js +14 -18
  28. package/dist/src/artifacts/tool-check.js.map +1 -1
  29. package/dist/src/artifacts/types.d.ts +3 -37
  30. package/dist/src/artifacts/types.js +5 -89
  31. package/dist/src/artifacts/types.js.map +1 -1
  32. package/dist/src/broker/config.d.ts +5 -6
  33. package/dist/src/broker/config.js +183 -130
  34. package/dist/src/broker/config.js.map +1 -1
  35. package/dist/src/broker/graph.d.ts +14 -21
  36. package/dist/src/broker/graph.js +68 -70
  37. package/dist/src/broker/graph.js.map +1 -1
  38. package/dist/src/broker/index.d.ts +6 -28
  39. package/dist/src/broker/index.js +35 -221
  40. package/dist/src/broker/index.js.map +1 -1
  41. package/dist/src/cli.d.ts +1 -21
  42. package/dist/src/cli.js +2 -329
  43. package/dist/src/cli.js.map +1 -1
  44. package/dist/src/contracts.d.ts +12 -15
  45. package/dist/src/definitions.d.ts +33 -23
  46. package/dist/src/diagnostics-cli.d.ts +9 -0
  47. package/dist/src/diagnostics-cli.js +94 -0
  48. package/dist/src/diagnostics-cli.js.map +1 -0
  49. package/dist/src/doctor/index.d.ts +2 -4
  50. package/dist/src/doctor/index.js +17 -63
  51. package/dist/src/doctor/index.js.map +1 -1
  52. package/dist/src/executors/auth.d.ts +1 -1
  53. package/dist/src/executors/auth.js +2 -2
  54. package/dist/src/executors/auth.js.map +1 -1
  55. package/dist/src/executors/human-preparation.js +2 -10
  56. package/dist/src/executors/human-preparation.js.map +1 -1
  57. package/dist/src/executors/index.js +30 -29
  58. package/dist/src/executors/index.js.map +1 -1
  59. package/dist/src/executors/pi.js +2 -3
  60. package/dist/src/executors/pi.js.map +1 -1
  61. package/dist/src/executors/process.js +9 -0
  62. package/dist/src/executors/process.js.map +1 -1
  63. package/dist/src/monitor/actions.js +3 -3
  64. package/dist/src/monitor/actions.js.map +1 -1
  65. package/dist/src/monitor/server.js +12 -95
  66. package/dist/src/monitor/server.js.map +1 -1
  67. package/dist/src/monitor/store.js +6 -42
  68. package/dist/src/monitor/store.js.map +1 -1
  69. package/dist/src/monitor/types.d.ts +3 -13
  70. package/dist/src/monitor/ui/critic-presentation.js +1 -1
  71. package/dist/src/monitor/ui/critic-presentation.js.map +1 -1
  72. package/dist/src/monitor/ui/graph-layout.d.ts +0 -1
  73. package/dist/src/monitor/ui/graph-layout.js +1 -23
  74. package/dist/src/monitor/ui/graph-layout.js.map +1 -1
  75. package/dist/src/monitor/ui/tool-input.d.ts +1 -1
  76. package/dist/src/monitor/ui/tool-input.js +2 -3
  77. package/dist/src/monitor/ui/tool-input.js.map +1 -1
  78. package/dist/src/project/cli.js +18 -30
  79. package/dist/src/project/cli.js.map +1 -1
  80. package/dist/src/project/graph.js +2 -2
  81. package/dist/src/project/graph.js.map +1 -1
  82. package/dist/src/project/identity.js +83 -56
  83. package/dist/src/project/identity.js.map +1 -1
  84. package/dist/src/project/index.d.ts +0 -3
  85. package/dist/src/project/index.js +2 -6
  86. package/dist/src/project/index.js.map +1 -1
  87. package/dist/src/project/query.d.ts +2 -1
  88. package/dist/src/project/query.js +49 -74
  89. package/dist/src/project/query.js.map +1 -1
  90. package/dist/src/project/store.js +2 -2
  91. package/dist/src/project/store.js.map +1 -1
  92. package/dist/src/project/types.d.ts +4 -4
  93. package/dist/src/requester/index.d.ts +2 -9
  94. package/dist/src/requester/index.js +17 -96
  95. package/dist/src/requester/index.js.map +1 -1
  96. package/dist/src/sdk.d.ts +3 -8
  97. package/dist/src/sdk.js +2 -3
  98. package/dist/src/sdk.js.map +1 -1
  99. package/dist/src/tools/contracts.d.ts +34 -78
  100. package/dist/src/tools/diagnostics.js +1 -2
  101. package/dist/src/tools/diagnostics.js.map +1 -1
  102. package/dist/src/tools/environment.d.ts +1 -0
  103. package/dist/src/tools/environment.js +7 -11
  104. package/dist/src/tools/environment.js.map +1 -1
  105. package/dist/src/tools/manifest.d.ts +0 -1
  106. package/dist/src/tools/manifest.js +1 -25
  107. package/dist/src/tools/manifest.js.map +1 -1
  108. package/dist/src/tools/runner.d.ts +10 -14
  109. package/dist/src/tools/runner.js +144 -117
  110. package/dist/src/tools/runner.js.map +1 -1
  111. package/dist/src/tools/schema.js +1 -1
  112. package/dist/src/tools/schema.js.map +1 -1
  113. package/dist/src/workspaces/index.d.ts +5 -12
  114. package/dist/src/workspaces/index.js +33 -217
  115. package/dist/src/workspaces/index.js.map +1 -1
  116. package/package.json +38 -10
  117. package/dist/monitor-ui/assets/GraphView-BSZlEAs3.js +0 -27
  118. package/dist/monitor-ui/assets/ValidationView-DaEF78J-.js +0 -1
  119. package/dist/monitor-ui/assets/ValidationView-p5r8lX18.css +0 -1
  120. package/dist/monitor-ui/assets/index-BQlWbkpH.js +0 -8
  121. package/dist/src/artifacts/data.d.ts +0 -5
  122. package/dist/src/artifacts/data.js +0 -100
  123. package/dist/src/artifacts/data.js.map +0 -1
  124. package/dist/src/artifacts/groups.d.ts +0 -13
  125. package/dist/src/artifacts/groups.js +0 -93
  126. package/dist/src/artifacts/groups.js.map +0 -1
  127. package/dist/src/artifacts/human.d.ts +0 -38
  128. package/dist/src/artifacts/human.js +0 -156
  129. package/dist/src/artifacts/human.js.map +0 -1
  130. package/dist/src/artifacts/sources.d.ts +0 -11
  131. package/dist/src/artifacts/sources.js +0 -106
  132. package/dist/src/artifacts/sources.js.map +0 -1
  133. package/dist/src/review/cli.d.ts +0 -8
  134. package/dist/src/review/cli.js +0 -136
  135. package/dist/src/review/cli.js.map +0 -1
  136. package/dist/src/review/client.d.ts +0 -30
  137. package/dist/src/review/client.js +0 -193
  138. package/dist/src/review/client.js.map +0 -1
  139. package/dist/src/review/server.d.ts +0 -11
  140. package/dist/src/review/server.js +0 -249
  141. package/dist/src/review/server.js.map +0 -1
  142. package/dist/src/review/types.d.ts +0 -10
  143. package/dist/src/review/types.js +0 -17
  144. package/dist/src/review/types.js.map +0 -1
  145. package/dist/src/tools/host.d.ts +0 -7
  146. package/dist/src/tools/host.js +0 -98
  147. package/dist/src/tools/host.js.map +0 -1
  148. package/dist/src/tools/runtime-host.d.ts +0 -1
  149. package/dist/src/tools/runtime-host.js +0 -196
  150. package/dist/src/tools/runtime-host.js.map +0 -1
  151. package/dist/src/workspaces/transfer.d.ts +0 -52
  152. package/dist/src/workspaces/transfer.js +0 -372
  153. package/dist/src/workspaces/transfer.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { ArtifactEntryDefinition, CriticDefinition } from '../definitions.js';
1
+ import type { ArtifactDefinition, ArtifactManifest, ArtifactScope } from '../definitions.js';
2
2
  export type JsonValue = null | boolean | number | string | JsonValue[] | {
3
3
  [key: string]: JsonValue;
4
4
  };
@@ -9,21 +9,22 @@ export interface ToolMetadata {
9
9
  inputSchema: JsonSchema;
10
10
  resultKinds: ToolResultKind[];
11
11
  observation: 'content' | 'none';
12
- artifactKind?: 'file' | 'directory' | 'any' | 'data';
12
+ artifactKind?: 'file' | 'directory' | 'any';
13
13
  timeoutMs?: number;
14
- /** Project-relative runtime files or directories whose bytes affect this tool. */
14
+ /** Workspace-relative runtime material whose content affects this tool. */
15
15
  executionPaths?: string[];
16
16
  }
17
- export interface ToolContext {
18
- artifactId: string;
19
- artifactPath: string;
20
- artifactDirectory: boolean;
21
- outputDir: string;
22
- tmpDir: string;
23
- signal: AbortSignal;
24
- resolvePath(path?: string): Promise<string>;
25
- /** Resolve only paths explicitly registered in metadata.executionPaths. */
26
- resolveExecutionPath?(path: string): Promise<string>;
17
+ export interface ScriptDefinition {
18
+ command: string;
19
+ args: string[];
20
+ }
21
+ export interface ScriptToolDefinition {
22
+ metadata: ToolMetadata;
23
+ script: ScriptDefinition;
24
+ }
25
+ export interface ArtifactViews {
26
+ agentTools?: Record<string, ScriptToolDefinition>;
27
+ humanTools?: Record<string, ScriptToolDefinition>;
27
28
  }
28
29
  export type ToolContent = {
29
30
  type: 'text';
@@ -50,52 +51,25 @@ export interface ToolResult {
50
51
  detail?: string;
51
52
  };
52
53
  }
53
- /** Data tools receive only their bound, captured Artifact data. */
54
- export interface DataToolContext {
54
+ export interface ScriptToolContext {
55
55
  artifactId: string;
56
+ artifactPath: string;
56
57
  outputDir: string;
57
58
  tmpDir: string;
58
- signal: AbortSignal;
59
- readData(): JsonValue;
60
- resolveExecutionPath(path: string): Promise<string>;
59
+ /** Canonical paths and logical connections for this review's allowed scope. */
60
+ scope: ArtifactScope;
61
61
  }
62
- export interface ArtifactIdentityStrategy {
63
- kind: 'canonical-data' | 'immutable-revision' | 'custom';
64
- namespace: string;
65
- version: string;
66
- }
67
- export interface ArtifactSourceMetadata {
68
- identity: ArtifactIdentityStrategy;
69
- /** Queries may invoke only sources explicitly declaring read-only preparation. */
70
- preparation: 'read-only' | 'explicit';
71
- timeoutMs?: number;
62
+ export interface ScriptToolRequest {
63
+ version: 1;
64
+ context: ScriptToolContext;
65
+ args: Record<string, unknown>;
72
66
  }
73
- export interface ArtifactSourceContext {
74
- artifactId: string;
75
- params: JsonValue;
67
+ /** Convenience interface for script authors. Project never imports these functions. */
68
+ export interface ToolContext extends ScriptToolContext {
69
+ artifactDirectory: boolean;
76
70
  signal: AbortSignal;
77
- /** Resolve captured project files, never the mutable original copy source. */
78
- resolvePath(path: string): Promise<string>;
79
- }
80
- export interface ArtifactSourceResult {
81
- data: JsonValue;
82
- revision?: string;
83
- }
84
- export interface ArtifactSourceDefinition {
85
- metadata: ArtifactSourceMetadata;
86
- prepare(context: ArtifactSourceContext): ArtifactSourceResult | Promise<ArtifactSourceResult>;
87
- /** A custom identity asserts equivalence of the complete supplied data. */
88
- fingerprint?(data: JsonValue): string | Promise<string>;
89
- }
90
- export interface PreparedArtifactData {
91
- version: 1;
92
- identity: ArtifactIdentityStrategy & {
93
- fingerprint: string;
94
- };
95
- /** Integrity hash of the canonical data, independent of semantic equivalence. */
96
- contentHash: string;
97
- data: JsonValue;
98
- revision?: string;
71
+ resolvePath(path?: string): Promise<string>;
72
+ resolveExecutionPath?(path: string): Promise<string>;
99
73
  }
100
74
  export interface ToolDefinition<Args = Record<string, unknown>, Context = ToolContext> {
101
75
  metadata: ToolMetadata;
@@ -108,48 +82,31 @@ export interface ToolDefinition<Args = Record<string, unknown>, Context = ToolCo
108
82
  message: string;
109
83
  }>;
110
84
  }
111
- export interface ArtifactToolsConfig {
112
- agentTools?: Record<string, ToolDefinition<any, any>>;
113
- humanTools?: Record<string, ToolDefinition<any, any>>;
114
- }
115
85
  export interface EnvironmentRequirement {
116
86
  description: string;
117
- /** Project-relative Node script; a zero exit status confirms readiness. */
118
87
  script: string;
119
88
  timeoutMs?: number;
120
- /** Additional project files or directories used by the check. */
121
89
  inputs?: string[];
122
90
  }
123
- export interface Config {
124
- artifacts: Record<string, ArtifactEntryDefinition>;
125
- artifactTypes: Record<string, ArtifactToolsConfig>;
126
- critics: CriticDefinition[];
127
- envRequirements?: Record<string, EnvironmentRequirement>;
128
- artifactSources?: Record<string, ArtifactSourceDefinition>;
129
- }
130
- export type ConfigFactory = () => Config | Promise<Config>;
131
91
  export interface ConfigManifest {
132
- version: 1;
92
+ version: 2;
133
93
  configHash: string;
134
- modules: {
94
+ artifacts: Record<string, ArtifactDefinition>;
95
+ declarations: {
135
96
  path: string;
136
97
  hash: string;
137
98
  }[];
138
- types: Record<string, {
139
- agentTools: Record<string, ToolMetadata>;
140
- humanTools: Record<string, ToolMetadata>;
141
- }>;
142
- envRequirements?: Record<string, EnvironmentRequirement>;
143
- environmentInputs?: {
99
+ executionInputs?: {
144
100
  path: string;
145
101
  hash: string;
146
102
  }[];
147
- executionInputs?: {
103
+ envRequirements?: Record<string, EnvironmentRequirement>;
104
+ environmentInputs?: {
148
105
  path: string;
149
106
  hash: string;
150
107
  }[];
151
- sources?: Record<string, ArtifactSourceMetadata>;
152
108
  }
109
+ export type { ArtifactManifest };
153
110
  type Properties<S> = S extends {
154
111
  properties: infer P;
155
112
  } ? P : {};
@@ -176,4 +133,3 @@ export type InferSchema<S> = S extends {
176
133
  } & {
177
134
  [K in keyof Properties<S> as K extends RequiredKeys<S> ? never : K]?: InferSchema<Properties<S>[K]>;
178
135
  } : unknown;
179
- export {};
@@ -1,7 +1,6 @@
1
1
  const failures = {
2
2
  ABORTED: 'Artifact tool diagnosis was cancelled.',
3
3
  WORKSPACE_CHANGED: 'The workspace changed during Artifact tool diagnosis.',
4
- WORKSPACE_CACHE_TAMPERED: 'The workspace changed during Artifact tool diagnosis.',
5
4
  WORKSPACE_ARTIFACT_MISMATCH: 'Recorded Artifact tools do not match the snapshot configuration.',
6
5
  ARTIFACT_TOOLS_UNAVAILABLE: 'A Critic references an Artifact with no tools for its reviewer kind. Register the corresponding agentTools or humanTools.',
7
6
  HUMAN_TOOL_TIMEOUT: 'The registered Human tool exceeded its configured time limit.',
@@ -66,7 +65,7 @@ export function safeToolFailure(error, aborted = false) {
66
65
  }
67
66
  export function toolFailureStage(error, fallback) {
68
67
  const code = safeToolFailure(error).code;
69
- if (code === 'WORKSPACE_CHANGED' || code === 'WORKSPACE_CACHE_TAMPERED')
68
+ if (code === 'WORKSPACE_CHANGED')
70
69
  return 'input-integrity';
71
70
  if (error instanceof ToolResultError || code === 'ARTIFACT_TOOL_RESULT_INVALID')
72
71
  return 'normalize-result';
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export interface EnvironmentCheckOptions {
13
13
  configManifest?: ConfigManifest;
14
14
  outputDir: string;
15
15
  signal?: AbortSignal;
16
+ artifactIds?: readonly string[];
16
17
  }
17
18
  /** Explicit Human claim preparation only. The caller owns workspace integrity checks and the Try Claim lease. */
18
19
  export declare function checkEnvironmentRequirements(options: EnvironmentCheckOptions): Promise<EnvironmentCheckResult>;
@@ -3,8 +3,7 @@ import { mkdir, realpath } from 'node:fs/promises';
3
3
  import { dirname, join, resolve } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { matchesToolManifest } from './manifest.js';
6
- import { openToolHost } from './host.js';
7
- import { environmentRequirements } from './schema.js';
6
+ import { readWorkspaceConfig } from '../broker/config.js';
8
7
  import { scopedPath, within } from './paths.js';
9
8
  async function outputDirectory(root, directory) {
10
9
  const target = resolve(directory);
@@ -92,19 +91,16 @@ export async function checkEnvironmentRequirements(options) {
92
91
  options.signal?.throwIfAborted();
93
92
  if (options.configManifest?.envRequirements === undefined)
94
93
  return { ok: true, checks: [] };
95
- const requirements = environmentRequirements(options.configManifest.envRequirements);
94
+ const requirements = options.configManifest.envRequirements;
96
95
  const root = await realpath(options.workspacePath);
97
96
  // Reconnect declarations from this exact snapshot before executing any stored script path.
98
- const host = await openToolHost(root, options.signal).catch(error => { options.signal?.throwIfAborted(); throw error; });
99
- try {
100
- if (!matchesToolManifest(host.config, options.configManifest))
101
- throw Object.assign(new Error('Recorded environment requirements do not match this snapshot configuration.'), { code: 'WORKSPACE_ARTIFACT_MISMATCH' });
102
- }
103
- finally {
104
- await host.close();
105
- }
97
+ const { config } = await readWorkspaceConfig(root, options.signal);
98
+ if (!matchesToolManifest(config, options.configManifest))
99
+ throw Object.assign(new Error('Recorded environment requirements do not match this snapshot configuration.'), { code: 'WORKSPACE_ARTIFACT_MISMATCH' });
106
100
  const base = await outputDirectory(root, options.outputDir), checks = [];
107
101
  for (const [id, requirement] of Object.entries(requirements)) {
102
+ if (options.artifactIds && !options.artifactIds.includes(id.split('/')[0]))
103
+ continue;
108
104
  options.signal?.throwIfAborted();
109
105
  const outputDir = await outputDirectory(root, join(base, id)), tmpDir = await outputDirectory(root, join(outputDir, '.tmp'));
110
106
  const result = await runCheck(root, await scopedPath(root, requirement.script), requirement, outputDir, tmpDir, options.signal);
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/tools/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/tools/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMhD,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,SAAiB;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9H,MAAM;QACR,CAAC;QACD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,yHAAyH;AACzH,SAAS,gBAAgB,CAAC,SAAiB,EAAE,MAAc;IACzD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACnO,OAAO;QACL,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,CAAC;QAClH,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;QAC3F,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmC,EAAE,SAAiB,EAAE,MAAc,EAAE,MAAoB;IAC1I,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;YACtH,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI;SAChK,CAAC,CAAC;QACH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,OAA2B,EAAE,SAAqC,CAAC;QACjH,MAAM,IAAI,GAAG,CAAC,IAAoB,EAAQ,EAAE,GAAG,IAAI,CAAC;YAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;gBAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/L,MAAM,MAAM,GAAG,CAAC,EAAW,EAAE,OAAe,EAAQ,EAAE;YACpD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAClH,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;YACrC,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO;YAC/B,OAAO,GAAG,OAAO,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qCAAqC,SAAS,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,CAAC,KAAa,EAAQ,EAAE;YACtC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;YAAC,CAAC;YACrH,IAAI,KAAK,GAAG,KAAK;gBAAE,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,6CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvH,+EAA+E;QAC/E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,kCAAkC,IAAI,IAAI,QAAQ,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACjM,IAAI,MAAM,EAAE,OAAO;YAAE,KAAK,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAAgC;IACjF,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,cAAc,EAAE,eAAe,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,2FAA2F;IAC3F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6EAA6E,CAAC,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACjN,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAuB,EAAE,CAAC;IAC7F,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QACrF,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7H,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChI,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC"}
@@ -1,4 +1,3 @@
1
1
  import type { RepoConfig } from '../contracts.js';
2
2
  import type { ConfigManifest } from './contracts.js';
3
- /** Reconnect historical locale-ordered manifests only after proving the same input. */
4
3
  export declare function matchesToolManifest(config: RepoConfig, recorded: ConfigManifest): boolean;
@@ -1,29 +1,5 @@
1
- import { createHash } from 'node:crypto';
2
1
  import { isDeepStrictEqual } from 'node:util';
3
- /** Reconnect historical locale-ordered manifests only after proving the same input. */
4
2
  export function matchesToolManifest(config, recorded) {
5
- const current = config.configManifest;
6
- if (!current || !recorded || current.version !== 1 || recorded.version !== 1)
7
- return false;
8
- if (isDeepStrictEqual(current, recorded))
9
- return true;
10
- if (!Array.isArray(recorded.modules) || recorded.modules.some(entry => !entry || typeof entry.path !== 'string' || typeof entry.hash !== 'string'))
11
- return false;
12
- const ordered = (modules) => [...modules].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
13
- if (!isDeepStrictEqual(ordered(current.modules), ordered(recorded.modules)))
14
- return false;
15
- // Older v1 writers sorted modules with the publisher's locale. Preserve that
16
- // recorded order in the hash recipe, without trusting any recorded content hash
17
- // or discarding changes to configuration values, types, or declared inputs.
18
- const extensions = {
19
- ...(current.envRequirements === undefined ? {} : { envRequirements: current.envRequirements, environmentInputs: current.environmentInputs }),
20
- ...(current.executionInputs === undefined ? {} : { executionInputs: current.executionInputs }),
21
- ...(current.sources === undefined ? {} : { sources: current.sources }),
22
- };
23
- const configHash = createHash('sha256').update(JSON.stringify({
24
- values: { artifacts: config.artifacts, critics: config.critics },
25
- types: current.types, modules: recorded.modules, ...extensions,
26
- })).digest('hex');
27
- return isDeepStrictEqual({ ...current, modules: recorded.modules, configHash }, recorded);
3
+ return recorded?.version === 2 && isDeepStrictEqual(config.configManifest, recorded);
28
4
  }
29
5
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/tools/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAI9C,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,MAAkB,EAAE,QAAwB;IAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACjK,MAAM,OAAO,GAAG,CAAC,OAAkC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1F,6EAA6E;IAC7E,gFAAgF;IAChF,4EAA4E;IAC5E,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5I,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9F,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACvE,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5D,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QAChE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU;KAC/D,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/tools/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,UAAU,mBAAmB,CAAC,MAAkB,EAAE,QAAwB;IAC9E,OAAO,QAAQ,EAAE,OAAO,KAAK,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACvF,CAAC"}
@@ -1,13 +1,13 @@
1
- import { type ArtifactReference } from '../artifacts/index.js';
2
- import type { ArtifactGroupReference, ReviewToolCall } from '../contracts.js';
3
- import type { ConfigManifest, JsonSchema, ToolMetadata } from './contracts.js';
1
+ import type { ArtifactReference } from '../artifacts/index.js';
2
+ import type { ReviewToolCall } from '../contracts.js';
3
+ import type { ConfigManifest, JsonSchema, ToolMetadata, ToolResult } from './contracts.js';
4
4
  export interface ReviewToolDefinition {
5
5
  artifactId: string;
6
6
  operation: string;
7
7
  name: string;
8
8
  description: string;
9
9
  inputSchema: JsonSchema;
10
- metadata?: ToolMetadata;
10
+ metadata: ToolMetadata;
11
11
  annotations?: Record<string, boolean>;
12
12
  }
13
13
  export interface ReviewToolCheck {
@@ -20,9 +20,9 @@ export interface ReviewToolCheck {
20
20
  export interface ReviewToolRegistry {
21
21
  tools: ReviewToolDefinition[];
22
22
  toolCalls: ReviewToolCall[];
23
- outputDir?: string;
23
+ outputDir: string;
24
24
  validateArguments(name: string, args: unknown): Record<string, unknown>;
25
- call(name: string, args?: unknown): Promise<any>;
25
+ call(name: string, args?: unknown): Promise<ToolResult>;
26
26
  preflight(options?: {
27
27
  toolName?: string;
28
28
  }): Promise<ReviewToolCheck[]>;
@@ -31,20 +31,16 @@ export interface ReviewToolRegistry {
31
31
  export interface ReviewToolsOptions {
32
32
  worktreePath: string;
33
33
  artifacts: readonly ArtifactReference[];
34
- artifactTypes?: Readonly<Record<string, unknown>>;
35
- configManifest?: ConfigManifest;
34
+ configManifest: ConfigManifest;
36
35
  audience: 'agent' | 'human';
37
36
  runDir?: string;
38
37
  signal?: AbortSignal;
39
38
  criticId?: string;
40
- artifactGroups?: readonly ArtifactGroupReference[];
41
39
  onCall?: (call: ReviewToolCall) => void | Promise<void>;
42
40
  }
43
- export declare function describeReviewTools({ artifacts, configManifest, audience }: {
44
- artifacts: readonly ArtifactReference[];
45
- configManifest: ConfigManifest;
46
- audience: 'agent' | 'human';
47
- }): ReviewToolDefinition[];
41
+ export declare function describeReviewTools({ artifacts, configManifest, audience }: Pick<ReviewToolsOptions, 'artifacts' | 'configManifest' | 'audience'>): ReviewToolDefinition[];
42
+ /** Validate the existing ancestor before creating any output directories. */
43
+ export declare function externalDirectory(root: string, directory: string): Promise<string>;
48
44
  export declare function toToolContent(result: unknown): Promise<Array<{
49
45
  type: 'text';
50
46
  text: string;