@noodleseed/one 0.157.0 → 0.159.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 (82) hide show
  1. package/README.md +8 -5
  2. package/dist/commands/import.d.ts.map +1 -1
  3. package/dist/commands/import.js +4 -0
  4. package/dist/commands/import.js.map +1 -1
  5. package/dist/commands/local-readiness.d.ts.map +1 -1
  6. package/dist/commands/local-readiness.js +8 -0
  7. package/dist/commands/local-readiness.js.map +1 -1
  8. package/dist/commands/project-setup.d.ts.map +1 -1
  9. package/dist/commands/project-setup.js +83 -47
  10. package/dist/commands/project-setup.js.map +1 -1
  11. package/dist/first-run.d.ts +1 -0
  12. package/dist/first-run.d.ts.map +1 -1
  13. package/dist/first-run.js +119 -46
  14. package/dist/first-run.js.map +1 -1
  15. package/dist/import-scaffold.d.ts +5 -0
  16. package/dist/import-scaffold.d.ts.map +1 -0
  17. package/dist/import-scaffold.js +41 -0
  18. package/dist/import-scaffold.js.map +1 -0
  19. package/dist/mcp-import.d.ts.map +1 -1
  20. package/dist/mcp-import.js +18 -15
  21. package/dist/mcp-import.js.map +1 -1
  22. package/dist/openapi-import.d.ts.map +1 -1
  23. package/dist/openapi-import.js +106 -53
  24. package/dist/openapi-import.js.map +1 -1
  25. package/dist/plugin-mode/plugin-operation-contract.d.ts +142 -3
  26. package/dist/plugin-mode/plugin-operation-contract.d.ts.map +1 -1
  27. package/dist/plugin-mode/plugin-operation-contract.js +13 -2
  28. package/dist/plugin-mode/plugin-operation-contract.js.map +1 -1
  29. package/dist/plugin-mode/plugin-operation-tools.d.ts.map +1 -1
  30. package/dist/plugin-mode/plugin-operation-tools.js +27 -8
  31. package/dist/plugin-mode/plugin-operation-tools.js.map +1 -1
  32. package/dist/project-bootstrap-install.d.ts +14 -0
  33. package/dist/project-bootstrap-install.d.ts.map +1 -0
  34. package/dist/project-bootstrap-install.js +73 -0
  35. package/dist/project-bootstrap-install.js.map +1 -0
  36. package/dist/project-bootstrap-launch.d.ts +27 -0
  37. package/dist/project-bootstrap-launch.d.ts.map +1 -0
  38. package/dist/project-bootstrap-launch.js +64 -0
  39. package/dist/project-bootstrap-launch.js.map +1 -0
  40. package/dist/project-bootstrap-process.d.ts +19 -0
  41. package/dist/project-bootstrap-process.d.ts.map +1 -0
  42. package/dist/project-bootstrap-process.js +60 -0
  43. package/dist/project-bootstrap-process.js.map +1 -0
  44. package/dist/project-bootstrap-report.d.ts +55 -0
  45. package/dist/project-bootstrap-report.d.ts.map +1 -0
  46. package/dist/project-bootstrap-report.js +30 -0
  47. package/dist/project-bootstrap-report.js.map +1 -0
  48. package/dist/project-bootstrap-state.d.ts +87 -0
  49. package/dist/project-bootstrap-state.d.ts.map +1 -0
  50. package/dist/project-bootstrap-state.js +125 -0
  51. package/dist/project-bootstrap-state.js.map +1 -0
  52. package/dist/project-bootstrap.d.ts +36 -0
  53. package/dist/project-bootstrap.d.ts.map +1 -0
  54. package/dist/project-bootstrap.js +243 -0
  55. package/dist/project-bootstrap.js.map +1 -0
  56. package/dist/project-scaffold-templates.d.ts +1 -1
  57. package/dist/project-scaffold-templates.d.ts.map +1 -1
  58. package/dist/project-scaffold-templates.js +17 -12
  59. package/dist/project-scaffold-templates.js.map +1 -1
  60. package/dist/project-toolchain.d.ts +13 -0
  61. package/dist/project-toolchain.d.ts.map +1 -0
  62. package/dist/project-toolchain.js +73 -0
  63. package/dist/project-toolchain.js.map +1 -0
  64. package/dist/project.d.ts +2 -0
  65. package/dist/project.d.ts.map +1 -1
  66. package/dist/project.js +40 -9
  67. package/dist/project.js.map +1 -1
  68. package/dist/widget-scaffold-template.d.ts.map +1 -1
  69. package/dist/widget-scaffold-template.js +5 -10
  70. package/dist/widget-scaffold-template.js.map +1 -1
  71. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +2 -2
  72. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.js +2 -1
  73. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +3 -2
  74. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  75. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.js +1 -1
  76. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-pre-auth.js +26 -4
  77. package/node_modules/@noodle-borg/openapi-import/dist/index.js +76 -53
  78. package/node_modules/@noodle-borg/openapi-import/dist/request-body.js +125 -0
  79. package/node_modules/@noodle-borg/openapi-import/dist/request-input.js +139 -0
  80. package/node_modules/@noodle-borg/openapi-import/dist/response-schema.js +17 -4
  81. package/node_modules/@noodle-borg/service/package.json +1 -1
  82. package/package.json +2 -2
@@ -1,76 +1,97 @@
1
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { dirname, join } from 'node:path';
3
- import { parseOpenApiToIr, title, } from '@noodle-borg/openapi-import';
4
- import { initProject } from './project.js';
1
+ import { closeSync, constants, fstatSync, openSync, readSync } from 'node:fs';
2
+ import { MAX_OPENAPI_SOURCE_BYTES, parseOpenApiToIr, title, } from '@noodle-borg/openapi-import';
3
+ import { slug } from './deploy.js';
4
+ import { importedProjectFiles, writeImportedProject } from './import-scaffold.js';
5
5
  export function importOpenApiProject(options) {
6
- const ir = parseOpenApiToIr(readFileSync(options.specPath, 'utf8'), {
6
+ const ir = parseOpenApiToIr(readOpenApiSource(options.specPath), {
7
7
  name: options.name,
8
8
  ...(options.baseUrl !== undefined ? { baseUrl: options.baseUrl } : {}),
9
9
  });
10
- initProject({
11
- dir: options.output,
12
- name: options.name,
13
- template: 'hello',
14
- force: options.force ?? true,
15
- });
16
- const server = renderTypeScriptProject(ir);
17
- writeFileSync(join(options.output, 'server.ts'), server);
18
- mkdirSync(dirname(join(options.output, 'README.md')), { recursive: true });
19
- writeFileSync(join(options.output, 'README.md'), `# ${title(options.name)}
10
+ const files = importedProjectFiles(slug(options.name), renderTypeScriptProject(ir));
11
+ files['.env.example'] += ir.secretRefs.map((name) => `${name}=\n`).join('');
12
+ files['README.md'] = `# ${title(options.name)}
20
13
 
21
- Generated from OpenAPI.
14
+ Generated from OpenAPI in \`src/server.ts\`. Each operation shares one input/output schema
15
+ between its connector and tool. Review the imported operations and warnings before deployment.
16
+ This command writes files only; it does not install dependencies or contact the backend.
22
17
 
23
18
  \`\`\`sh
24
- noodle validate
25
- noodle dev
26
- noodle deploy
19
+ npm install --ignore-scripts
20
+ npm run agent:check
21
+ npm exec -- noodle agents setup --apply
27
22
  \`\`\`
28
- `);
23
+
24
+ The generated test proves the offline contract compiles, not live backend behavior. Review each
25
+ action before calling it; writes require explicit confirmation. Add a sandbox fixture for one
26
+ representative operation before deployment. Supported JSON request bodies are typed under \`input.body\`
27
+ and sent unchanged; required fields, optional bodies, arrays, integers and object extras survive import.
28
+ Unsupported encodings or constraints stop import before writing; use the connector guide to author them:
29
+ https://docs.noodleseed.dev/docs/guides/connectors
30
+ ${ir.secretRefs.length
31
+ ? `\nSet ${ir.secretRefs.map((name) => `\`${name}\``).join(', ')} locally in ignored \`.env\` or \`.env.noodle\`.
32
+ For hosted deployment, use \`noodle secrets set <NAME>\` interactively; never paste values into
33
+ commands, source, logs or agent context.\n`
34
+ : ''}
35
+ `;
36
+ writeImportedProject({ dir: options.output, force: options.force ?? false }, files);
29
37
  return { output: options.output, warnings: ir.warnings };
30
38
  }
31
39
  function renderTypeScriptProject(ir) {
40
+ const base = new URL(ir.baseUrl);
41
+ const contracts = ir.operations.map((operation) => `${key(operation.safeName)}: {
42
+ input: ${zodInputObject(operation)},
43
+ output: z.object({ value: ${operation.output === undefined ? 'z.unknown()' : zodSource(operation.output)} }),
44
+ }`);
32
45
  const operations = ir.operations.map((operation) => {
33
- const query = operation.query.length > 0
34
- ? `query: [${operation.query.map((name) => `'${name}'`).join(', ')}],`
35
- : '';
36
- return `${operation.safeName}: {
46
+ const query = operation.query.length > 0 ? `query: [${operation.query.map(quote).join(', ')}],` : '';
47
+ return `${key(operation.safeName)}: {
37
48
  type: '${operation.operationType}',
38
49
  method: '${operation.method.toUpperCase()}',
39
- path: '${operation.connectorPath}',
40
- input: ${zodInputObject(operation.parameters)},
50
+ path: ${quote(operation.connectorPath)},
51
+ input: contracts[${quote(operation.safeName)}].input,
41
52
  ${query}
42
- output: z.object({ value: z.unknown() }),
53
+ ${operation.requestBody === undefined ? '' : "request: '${args.body}',"}
54
+ output: contracts[${quote(operation.safeName)}].output,
43
55
  response: { value: '\${response}' },
44
56
  }`;
45
57
  });
46
58
  const tools = ir.operations.map((operation) => {
47
- const outputValue = operation.output !== undefined ? zodSource(operation.output) : 'z.unknown()';
48
- const callArgs = operation.parameters
49
- .map((param) => `${param.name}: input.${param.name}`)
59
+ const callArgs = [
60
+ ...operation.parameters.map((param) => param.name),
61
+ ...(operation.requestBody === undefined ? [] : ['body']),
62
+ ]
63
+ .map((name) => `${key(name)}: input[${quote(name)}]`)
50
64
  .join(', ');
51
- return `tool('${operation.safeName}', {
52
- description: '${operation.description}',
53
- input: ${zodInputObject(operation.parameters)},
54
- output: z.object({ value: ${outputValue} }),
65
+ return `tool(${quote(operation.safeName)}, {
66
+ description: ${quote(operation.description)},
67
+ annotations: ${operation.operationType === 'read' ? 'annotations.readOnly({ openWorld: true })' : 'annotations.openAction({ destructive: true, confirm: true })'},
68
+ input: contracts[${quote(operation.safeName)}].input,
69
+ output: contracts[${quote(operation.safeName)}].output,
55
70
  fulfil: ({ input, connectors }) => ({
56
- value: connectors.api.${operation.safeName}({ ${callArgs} }).value,
71
+ value: connectors.api[${quote(operation.safeName)}]({ ${callArgs} }).value,
57
72
  }),
58
73
  })`;
59
74
  });
60
- const server = `import { connector, server, tool, z } from '@noodleseed/one';
75
+ const server = `import { annotations, connector, ${ir.auth === undefined ? '' : 'secret, '}server, tool, z } from '@noodleseed/one';
76
+
77
+ // CONTRACT SEAM: one schema lineage from backend operation to public tool.
78
+ const contracts = {
79
+ ${contracts.join(',\n ')}
80
+ };
61
81
 
62
- const api = connector('${ir.connectorId}')
82
+ const api = connector(${quote(ir.connectorId)})
63
83
  .version('1.0.0')
64
84
  .http({
65
- baseUrl: '${ir.baseUrl}',
66
- allowedOrigins: ['${ir.baseUrl}'],
85
+ baseUrl: ${quote(ir.baseUrl)},
86
+ allowedOrigins: [${quote(base.origin)}],
87
+ ${ir.auth === undefined ? '' : `auth: { kind: ${quote(ir.auth.kind)}, ${ir.auth.kind === 'apiKey' ? `header: ${quote(ir.auth.header)}, ` : ''}secret: secret(${quote(ir.auth.secret)}) },`}
67
88
  operations: {
68
89
  ${operations.join(',\n ')}
69
90
  },
70
91
  });
71
92
 
72
- export default server('${ir.connectorId}', {
73
- title: '${ir.serverTitle}',
93
+ export default server(${quote(ir.connectorId)}, {
94
+ title: ${quote(ir.serverTitle)},
74
95
  version: '1.0.0',
75
96
  use: { api },
76
97
  }, [
@@ -81,13 +102,14 @@ export default server('${ir.connectorId}', {
81
102
  }
82
103
  const IDENTIFIER_KEY = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
83
104
  /** Renders a parameter list as `z.object({ ... })` source with per-parameter lossless Zod. */
84
- function zodInputObject(parameters) {
85
- if (parameters.length === 0)
105
+ function zodInputObject(operation) {
106
+ if (operation.parameters.length === 0 && operation.requestBody === undefined)
86
107
  return 'z.object({})';
87
- const shape = parameters
88
- .map((param) => `${param.name}: ${zodParameterSource(param.schema)}${param.required ? '' : '.optional()'}`)
89
- .join(', ');
90
- return `z.object({ ${shape} })`;
108
+ const properties = operation.parameters.map((param) => `${key(param.name)}: ${zodParameterSource(param.schema)}${param.schema.format === undefined ? '' : `.meta({ format: ${quote(param.schema.format)} })`}${param.required ? '' : '.optional()'}`);
109
+ if (operation.requestBody !== undefined) {
110
+ properties.push(`body: ${zodSource(operation.requestBody.schema)}${operation.requestBody.required ? '' : '.optional()'}`);
111
+ }
112
+ return `z.object({ ${properties.join(', ')} }).strict()`;
91
113
  }
92
114
  /**
93
115
  * Renders one imported parameter schema as Zod source: string/number/boolean map directly,
@@ -122,27 +144,58 @@ function zodSource(schema) {
122
144
  }
123
145
  return `z.string()${nullable}`;
124
146
  case 'number':
125
- return `z.number()${nullable}`;
147
+ return `z.number()${schema.integer === true ? '.int()' : ''}${nullable}`;
126
148
  case 'boolean':
127
149
  return `z.boolean()${nullable}`;
128
150
  case 'array':
129
151
  return `z.array(${zodSource(schema.items)})${nullable}`;
130
152
  case 'object': {
131
- if (schema.properties.length === 0) {
153
+ if (schema.properties.length === 0 && schema.additionalProperties === undefined) {
132
154
  return `z.record(z.string(), z.unknown())${nullable}`;
133
155
  }
134
156
  const properties = schema.properties.map((property) => {
135
- const key = IDENTIFIER_KEY.test(property.name) ? property.name : quote(property.name);
136
157
  const optional = property.required ? '' : '.optional()';
137
- return `${key}: ${zodSource(property.schema)}${optional}`;
158
+ return `${key(property.name)}: ${zodSource(property.schema)}${optional}`;
138
159
  });
139
- return `z.object({ ${properties.join(', ')} })${nullable}`;
160
+ const extras = schema.additionalProperties === undefined
161
+ ? ''
162
+ : schema.additionalProperties
163
+ ? '.passthrough()'
164
+ : '.strict()';
165
+ return `z.object({ ${properties.join(', ')} })${extras}${nullable}`;
140
166
  }
141
167
  case 'unknown':
142
168
  return 'z.unknown()';
143
169
  }
144
170
  }
145
171
  function quote(value) {
146
- return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
172
+ return JSON.stringify(value);
173
+ }
174
+ function key(value) {
175
+ if (value === '__proto__')
176
+ return `[${quote(value)}]`;
177
+ return IDENTIFIER_KEY.test(value) ? value : quote(value);
178
+ }
179
+ /** Read a regular local input with a fixed allocation, even if its size changes during the read. */
180
+ function readOpenApiSource(path) {
181
+ const descriptor = openSync(path, constants.O_RDONLY | constants.O_NONBLOCK);
182
+ try {
183
+ if (!fstatSync(descriptor).isFile())
184
+ throw new Error('import openapi: spec must be a regular file');
185
+ const bytes = Buffer.alloc(MAX_OPENAPI_SOURCE_BYTES + 1);
186
+ let length = 0;
187
+ while (length < bytes.length) {
188
+ const count = readSync(descriptor, bytes, length, bytes.length - length, length);
189
+ if (count === 0)
190
+ break;
191
+ length += count;
192
+ }
193
+ if (length > MAX_OPENAPI_SOURCE_BYTES)
194
+ throw new Error('import openapi: document exceeds the 6 MiB size limit; import a scoped API document');
195
+ return bytes.subarray(0, length).toString('utf8');
196
+ }
197
+ finally {
198
+ closeSync(descriptor);
199
+ }
147
200
  }
148
201
  //# sourceMappingURL=openapi-import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-import.js","sourceRoot":"","sources":["../src/openapi-import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-import.js","sourceRoot":"","sources":["../src/openapi-import.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CallToolResult } from '@modelcontextprotocol/server';
2
2
  import { z } from 'zod';
3
+ import { type BootstrapStatus } from '../project-bootstrap-report.js';
3
4
  export declare const cloudTargetInputSchema: z.ZodObject<{
4
5
  workspaceHandle: z.ZodString;
5
6
  org: z.ZodString;
@@ -19,6 +20,12 @@ export declare const setupInputSchema: z.ZodObject<{
19
20
  "http-api": "http-api";
20
21
  widget: "widget";
21
22
  }>>;
23
+ packageManager: z.ZodOptional<z.ZodEnum<{
24
+ npm: "npm";
25
+ pnpm: "pnpm";
26
+ yarn: "yarn";
27
+ }>>;
28
+ install: z.ZodOptional<z.ZodBoolean>;
22
29
  }, z.core.$strict>;
23
30
  export declare const linkInputSchema: z.ZodObject<{
24
31
  access: z.ZodOptional<z.ZodEnum<{
@@ -71,12 +78,12 @@ export declare const feedbackPreviewInputSchema: z.ZodObject<{
71
78
  connectors: "connectors";
72
79
  plugins: "plugins";
73
80
  distribution: "distribution";
81
+ ci: "ci";
74
82
  policy: "policy";
75
83
  docs: "docs";
76
84
  analytics: "analytics";
77
85
  "self-service": "self-service";
78
86
  conformance: "conformance";
79
- ci: "ci";
80
87
  deploys: "deploys";
81
88
  console: "console";
82
89
  dx: "dx";
@@ -107,12 +114,12 @@ export declare const feedbackSubmitInputSchema: z.ZodObject<{
107
114
  connectors: "connectors";
108
115
  plugins: "plugins";
109
116
  distribution: "distribution";
117
+ ci: "ci";
110
118
  policy: "policy";
111
119
  docs: "docs";
112
120
  analytics: "analytics";
113
121
  "self-service": "self-service";
114
122
  conformance: "conformance";
115
- ci: "ci";
116
123
  deploys: "deploys";
117
124
  console: "console";
118
125
  dx: "dx";
@@ -140,6 +147,50 @@ declare const operationDataSchema: z.ZodObject<{
140
147
  }, z.core.$strict>>;
141
148
  name: z.ZodOptional<z.ZodString>;
142
149
  reference: z.ZodOptional<z.ZodString>;
150
+ setup: z.ZodOptional<z.ZodObject<{
151
+ ready: z.ZodBoolean;
152
+ packageManager: z.ZodEnum<{
153
+ npm: "npm";
154
+ pnpm: "pnpm";
155
+ yarn: "yarn";
156
+ }>;
157
+ completed: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
158
+ context: "context";
159
+ behavior: "behavior";
160
+ validate: "validate";
161
+ install: "install";
162
+ scaffold: "scaffold";
163
+ types: "types";
164
+ launch: "launch";
165
+ }>>>;
166
+ failed: z.ZodOptional<z.ZodObject<{
167
+ stage: z.ZodEnum<{
168
+ context: "context";
169
+ behavior: "behavior";
170
+ validate: "validate";
171
+ install: "install";
172
+ scaffold: "scaffold";
173
+ types: "types";
174
+ launch: "launch";
175
+ }>;
176
+ code: z.ZodEnum<{
177
+ command_failed: "command_failed";
178
+ cancelled: "cancelled";
179
+ missing_executable: "missing_executable";
180
+ command_timeout: "command_timeout";
181
+ context_invalid: "context_invalid";
182
+ verification_failed: "verification_failed";
183
+ dependency_mismatch: "dependency_mismatch";
184
+ configuration_conflict: "configuration_conflict";
185
+ package_manager_unsupported: "package_manager_unsupported";
186
+ }>;
187
+ }, z.core.$strict>>;
188
+ restartRequired: z.ZodBoolean;
189
+ proof: z.ZodEnum<{
190
+ unverified: "unverified";
191
+ "local-synthetic": "local-synthetic";
192
+ }>;
193
+ }, z.core.$strip>>;
143
194
  }, z.core.$strict>;
144
195
  export declare const operationResultSchema: z.ZodObject<{
145
196
  ok: z.ZodBoolean;
@@ -162,12 +213,100 @@ export declare const operationResultSchema: z.ZodObject<{
162
213
  }, z.core.$strict>>;
163
214
  name: z.ZodOptional<z.ZodString>;
164
215
  reference: z.ZodOptional<z.ZodString>;
216
+ setup: z.ZodOptional<z.ZodObject<{
217
+ ready: z.ZodBoolean;
218
+ packageManager: z.ZodEnum<{
219
+ npm: "npm";
220
+ pnpm: "pnpm";
221
+ yarn: "yarn";
222
+ }>;
223
+ completed: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
224
+ context: "context";
225
+ behavior: "behavior";
226
+ validate: "validate";
227
+ install: "install";
228
+ scaffold: "scaffold";
229
+ types: "types";
230
+ launch: "launch";
231
+ }>>>;
232
+ failed: z.ZodOptional<z.ZodObject<{
233
+ stage: z.ZodEnum<{
234
+ context: "context";
235
+ behavior: "behavior";
236
+ validate: "validate";
237
+ install: "install";
238
+ scaffold: "scaffold";
239
+ types: "types";
240
+ launch: "launch";
241
+ }>;
242
+ code: z.ZodEnum<{
243
+ command_failed: "command_failed";
244
+ cancelled: "cancelled";
245
+ missing_executable: "missing_executable";
246
+ command_timeout: "command_timeout";
247
+ context_invalid: "context_invalid";
248
+ verification_failed: "verification_failed";
249
+ dependency_mismatch: "dependency_mismatch";
250
+ configuration_conflict: "configuration_conflict";
251
+ package_manager_unsupported: "package_manager_unsupported";
252
+ }>;
253
+ }, z.core.$strict>>;
254
+ restartRequired: z.ZodBoolean;
255
+ proof: z.ZodEnum<{
256
+ unverified: "unverified";
257
+ "local-synthetic": "local-synthetic";
258
+ }>;
259
+ }, z.core.$strip>>;
165
260
  }, z.core.$strict>>;
166
261
  error: z.ZodOptional<z.ZodObject<{
167
262
  code: z.ZodString;
168
263
  message: z.ZodString;
169
264
  command: z.ZodOptional<z.ZodString>;
170
265
  next: z.ZodOptional<z.ZodString>;
266
+ setup: z.ZodOptional<z.ZodObject<{
267
+ ready: z.ZodBoolean;
268
+ packageManager: z.ZodEnum<{
269
+ npm: "npm";
270
+ pnpm: "pnpm";
271
+ yarn: "yarn";
272
+ }>;
273
+ completed: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
274
+ context: "context";
275
+ behavior: "behavior";
276
+ validate: "validate";
277
+ install: "install";
278
+ scaffold: "scaffold";
279
+ types: "types";
280
+ launch: "launch";
281
+ }>>>;
282
+ failed: z.ZodOptional<z.ZodObject<{
283
+ stage: z.ZodEnum<{
284
+ context: "context";
285
+ behavior: "behavior";
286
+ validate: "validate";
287
+ install: "install";
288
+ scaffold: "scaffold";
289
+ types: "types";
290
+ launch: "launch";
291
+ }>;
292
+ code: z.ZodEnum<{
293
+ command_failed: "command_failed";
294
+ cancelled: "cancelled";
295
+ missing_executable: "missing_executable";
296
+ command_timeout: "command_timeout";
297
+ context_invalid: "context_invalid";
298
+ verification_failed: "verification_failed";
299
+ dependency_mismatch: "dependency_mismatch";
300
+ configuration_conflict: "configuration_conflict";
301
+ package_manager_unsupported: "package_manager_unsupported";
302
+ }>;
303
+ }, z.core.$strict>>;
304
+ restartRequired: z.ZodBoolean;
305
+ proof: z.ZodEnum<{
306
+ unverified: "unverified";
307
+ "local-synthetic": "local-synthetic";
308
+ }>;
309
+ }, z.core.$strip>>;
171
310
  }, z.core.$strict>>;
172
311
  }, z.core.$strict>;
173
312
  export declare const READ_ONLY: {
@@ -197,6 +336,6 @@ export declare function targetData(target: CloudTargetInput): {
197
336
  environment: string;
198
337
  };
199
338
  export declare function operationSuccess(message: string, data: z.infer<typeof operationDataSchema>): CallToolResult;
200
- export declare function operationFailure(code: string, message: string, command: string, next?: string): CallToolResult;
339
+ export declare function operationFailure(code: string, message: string, command: string, next?: string, setup?: BootstrapStatus): CallToolResult;
201
340
  export {};
202
341
  //# sourceMappingURL=plugin-operation-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-operation-contract.d.ts","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,sBAAsB;;;;;kBAA+B,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;kBAI3B,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;kBAK1B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;;;;;kBAI9B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;kBAI5B,CAAC;AA0BH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAiC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGpC,CAAC;AAQH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;kBAcvB,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB9B,CAAC;AAEL,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AACX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AACX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAavE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAElE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB;;;;;EAOlD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,cAAc,CAKhB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CAShB"}
1
+ {"version":3,"file":"plugin-operation-contract.d.ts","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gCAAgC,CAAC;AAa7F,eAAO,MAAM,sBAAsB;;;;;kBAA+B,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;kBAM3B,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;kBAK1B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;;;;;kBAI9B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;kBAI5B,CAAC;AA0BH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAiC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGpC,CAAC;AAQH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAevB,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmB9B,CAAC;AAEL,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AACX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AACX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAavE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAElE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB;;;;;EAOlD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,cAAc,CAKhB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,eAAe,GACtB,cAAc,CAehB"}
@@ -1,5 +1,6 @@
1
1
  import { CONFIG_NAME_PATTERN, SLUG_PATTERN } from '@noodle-borg/service/local';
2
2
  import { z } from 'zod';
3
+ import { bootstrapStatusSchema } from '../project-bootstrap-report.js';
3
4
  const handleSchema = z.string().regex(/^[A-Za-z0-9_-]{22,128}$/);
4
5
  const slugSchema = z.string().regex(SLUG_PATTERN);
5
6
  const configNameSchema = z.string().regex(CONFIG_NAME_PATTERN).max(128);
@@ -15,6 +16,8 @@ export const setupInputSchema = z.strictObject({
15
16
  workspaceHandle: handleSchema,
16
17
  mode: z.enum(['initialize', 'reconcile']),
17
18
  template: z.enum(['hello', 'saas', 'http-api', 'widget']).optional(),
19
+ packageManager: z.enum(['npm', 'pnpm', 'yarn']).optional(),
20
+ install: z.boolean().optional(),
18
21
  });
19
22
  export const linkInputSchema = z.strictObject({
20
23
  ...targetFields,
@@ -82,6 +85,7 @@ const operationDataSchema = z.strictObject({
82
85
  target: targetDataSchema.optional(),
83
86
  name: configNameSchema.optional(),
84
87
  reference: z.string().max(200).optional(),
88
+ setup: bootstrapStatusSchema.optional(),
85
89
  });
86
90
  export const operationResultSchema = z
87
91
  .strictObject({
@@ -93,6 +97,7 @@ export const operationResultSchema = z
93
97
  message: z.string(),
94
98
  command: z.string().optional(),
95
99
  next: z.string().optional(),
100
+ setup: bootstrapStatusSchema.optional(),
96
101
  })
97
102
  .optional(),
98
103
  })
@@ -151,13 +156,19 @@ export function operationSuccess(message, data) {
151
156
  structuredContent: { ok: true, data },
152
157
  };
153
158
  }
154
- export function operationFailure(code, message, command, next) {
159
+ export function operationFailure(code, message, command, next, setup) {
155
160
  return {
156
161
  isError: true,
157
162
  content: [{ type: 'text', text: message }],
158
163
  structuredContent: {
159
164
  ok: false,
160
- error: { code, message, command, ...(next === undefined ? {} : { next }) },
165
+ error: {
166
+ code,
167
+ message,
168
+ command,
169
+ ...(next === undefined ? {} : { next }),
170
+ ...(setup === undefined ? {} : { setup }),
171
+ },
161
172
  },
162
173
  };
163
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-operation-contract.js","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AACjE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACjF,MAAM,YAAY,GAAG;IACnB,eAAe,EAAE,YAAY;IAC7B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,UAAU;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC7C,eAAe,EAAE,YAAY;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,GAAG,YAAY;IACf,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SACpF,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IAChD,GAAG,YAAY;IACf,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC9C,GAAG,YAAY;IACf,IAAI,EAAE,gBAAgB;IACtB,yBAAyB,EAAE,qBAAqB;CACjD,CAAC,CAAC;AACH,MAAM,cAAc,GAAG;IACrB,eAAe,EAAE,YAAY;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,MAAM;QACN,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,IAAI;QACJ,SAAS;QACT,cAAc;QACd,SAAS;QACT,IAAI;QACJ,SAAS;QACT,KAAK;QACL,UAAU;QACV,eAAe;QACf,YAAY;QACZ,QAAQ;KACT,CAAC;CACM,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtD,GAAG,cAAc;IACjB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,UAAU;CACxB,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;QAChB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,iBAAiB;KAClB,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,YAAY,CAAC;IACZ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC;SACL,YAAY,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QACxC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO;QACL,WAAW;QACX,OAAO;QACP,SAAS;QACT,KAAK;QACL,OAAO;QACP,MAAM,CAAC,GAAG;QACV,OAAO;QACP,MAAM,CAAC,GAAG;QACV,OAAO;QACP,MAAM,CAAC,WAAW;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,OAAO;QACL,OAAO,EAAE,OAAgB;QACzB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,IAAyC;IAEzC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAe,EACf,OAAe,EACf,IAAa;IAEb,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,iBAAiB,EAAE;YACjB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;SAC3E;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin-operation-contract.js","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAwB,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AACjE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACjF,MAAM,YAAY,GAAG;IACnB,eAAe,EAAE,YAAY;IAC7B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,UAAU;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC7C,eAAe,EAAE,YAAY;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,GAAG,YAAY;IACf,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SACpF,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IAChD,GAAG,YAAY;IACf,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC9C,GAAG,YAAY;IACf,IAAI,EAAE,gBAAgB;IACtB,yBAAyB,EAAE,qBAAqB;CACjD,CAAC,CAAC;AACH,MAAM,cAAc,GAAG;IACrB,eAAe,EAAE,YAAY;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,MAAM;QACN,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,IAAI;QACJ,SAAS;QACT,cAAc;QACd,SAAS;QACT,IAAI;QACJ,SAAS;QACT,KAAK;QACL,UAAU;QACV,eAAe;QACf,YAAY;QACZ,QAAQ;KACT,CAAC;CACM,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtD,GAAG,cAAc;IACjB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,UAAU;CACxB,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;QAChB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,iBAAiB;KAClB,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,YAAY,CAAC;IACZ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC;SACL,YAAY,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE;KACxC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QACxC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO;QACL,WAAW;QACX,OAAO;QACP,SAAS;QACT,KAAK;QACL,OAAO;QACP,MAAM,CAAC,GAAG;QACV,OAAO;QACP,MAAM,CAAC,GAAG;QACV,OAAO;QACP,MAAM,CAAC,WAAW;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,OAAO;QACL,OAAO,EAAE,OAAgB;QACzB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,IAAyC;IAEzC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAe,EACf,OAAe,EACf,IAAa,EACb,KAAuB;IAEvB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,iBAAiB,EAAE;YACjB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI;gBACJ,OAAO;gBACP,OAAO;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;aAC1C;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-operation-tools.d.ts","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9E,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,gBAAgB,EAetB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,KAAK,gBAAgB,EACrB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAIxC,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACtE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA+B5E;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA8HnF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAyBzE;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAErC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAW7E"}
1
+ {"version":3,"file":"plugin-operation-tools.d.ts","sourceRoot":"","sources":["../../src/plugin-mode/plugin-operation-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAI9E,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,gBAAgB,EAetB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,KAAK,gBAAgB,EACrB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAIxC,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACtE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA+C5E;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA8HnF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAyBzE;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAErC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAW7E"}
@@ -1,30 +1,41 @@
1
+ import { bootstrapStatusSchema } from '../project-bootstrap-report.js';
1
2
  import { CLOUD_MUTATION, feedbackPreviewInputSchema, feedbackSubmitInputSchema, LOCAL_MUTATION, linkInputSchema, operationFailure, operationResultSchema, operationSuccess, publicTargetFlags, READ_ONLY, secretInputSchema, setupInputSchema, targetData, targetFlags, variableInputSchema, } from './plugin-operation-contract.js';
2
3
  export { cloudTargetInputSchema, } from './plugin-operation-contract.js';
3
4
  const PLUGIN_SECRET_INPUT_ENVIRONMENT = 'NOODLE_PLUGIN_SECRET_INPUT';
4
5
  export function registerSetupProjectTool(options) {
5
6
  options.server.registerTool('setup_project', {
6
7
  title: 'Set up Noodle project',
7
- description: 'Initialize an empty directory or reconcile the supported project files through the public CLI capability.',
8
+ description: 'Initialize a project with pinned local dependencies and synthetic checks, or reconcile supported context files. Installation can access package registries; install=false prepares files only. Never launches another agent.',
8
9
  inputSchema: setupInputSchema,
9
10
  outputSchema: operationResultSchema,
10
- annotations: LOCAL_MUTATION,
11
- }, async ({ workspaceHandle, mode, template }) => {
11
+ annotations: { ...LOCAL_MUTATION, openWorldHint: true },
12
+ }, async ({ workspaceHandle, mode, template, packageManager, install }) => {
12
13
  const denied = options.assertScope(workspaceHandle);
13
14
  if (denied !== undefined)
14
15
  return denied;
15
16
  const command = mode === 'initialize' ? 'init' : 'setup';
16
17
  const args = mode === 'initialize'
17
- ? ['.', '--template', template ?? 'hello', '--json']
18
+ ? [
19
+ '.',
20
+ ...(template ? ['--template', template] : []),
21
+ ...(packageManager ? ['--package-manager', packageManager] : []),
22
+ ...(install === false ? ['--no-install'] : []),
23
+ '--json',
24
+ ]
18
25
  : ['--write', '--json'];
19
- const publicCommand = mode === 'initialize'
20
- ? `noodle init . --template ${template ?? 'hello'} --json`
21
- : 'noodle setup --write --json';
26
+ const publicCommand = mode === 'initialize' ? `noodle init ${args.join(' ')}` : 'noodle setup --write --json';
22
27
  const result = await runPublic(options, { command, args }, publicCommand);
23
28
  if (!result.ok)
24
29
  return result.failure;
30
+ const setup = mode === 'initialize'
31
+ ? bootstrapStatusSchema.safeParse(recordProperty(result.data, 'setup'))
32
+ : undefined;
33
+ if (setup && !setup.success)
34
+ return operationFailure('invalid_bootstrap_report', 'Setup did not return verifiable progress.', publicCommand, publicCommand);
25
35
  return operationSuccess(`Project ${mode} completed.`, {
26
36
  operation: mode,
27
37
  command: publicCommand,
38
+ ...(setup?.success ? { setup: setup.data } : {}),
28
39
  });
29
40
  });
30
41
  }
@@ -245,10 +256,18 @@ async function runPublic(options, request, publicCommand) {
245
256
  };
246
257
  }
247
258
  const envelope = parseEnvelope(result.stdout);
248
- if (result.exitCode === 0) {
259
+ if (result.exitCode === 0 &&
260
+ (!request.args.includes('--json') || recordProperty(envelope, 'ok') === true)) {
249
261
  return { ok: true, data: recordProperty(envelope, 'data') };
250
262
  }
251
263
  const error = recordProperty(envelope, 'error');
264
+ if (request.command === 'init') {
265
+ const setup = bootstrapStatusSchema.safeParse(recordProperty(recordProperty(error, 'detail'), 'setup'));
266
+ return {
267
+ ok: false,
268
+ failure: operationFailure('bootstrap_failed', 'Local setup did not complete; inspect the reported stage and resume the public command.', publicCommand, publicCommand, setup.success ? setup.data : undefined),
269
+ };
270
+ }
252
271
  const code = stringProperty(error, 'code') ?? 'public_command_failed';
253
272
  const message = safeErrorMessage(stringProperty(error, 'message')) ??
254
273
  'The public Noodle command did not complete successfully.';