@interf/compiler 0.16.0 → 0.21.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 (203) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +90 -73
  3. package/TRADEMARKS.md +4 -4
  4. package/dist/cli/commands/mcp.d.ts +0 -34
  5. package/dist/cli/commands/mcp.js +246 -45
  6. package/dist/cli/commands/method.js +261 -15
  7. package/dist/cli/commands/prep.js +116 -15
  8. package/dist/cli/commands/runs.js +103 -9
  9. package/dist/cli/commands/status.js +4 -2
  10. package/dist/cli/commands/test.d.ts +10 -0
  11. package/dist/cli/commands/{verify.js → test.js} +24 -17
  12. package/dist/cli/commands/web.js +82 -8
  13. package/dist/cli/commands/wizard.js +158 -51
  14. package/dist/cli/index.d.ts +2 -2
  15. package/dist/cli/index.js +3 -3
  16. package/dist/compiler-ui/404.html +1 -1
  17. package/dist/compiler-ui/__next.__PAGE__.txt +5 -5
  18. package/dist/compiler-ui/__next._full.txt +13 -12
  19. package/dist/compiler-ui/__next._head.txt +3 -3
  20. package/dist/compiler-ui/__next._index.txt +5 -4
  21. package/dist/compiler-ui/__next._tree.txt +4 -3
  22. package/dist/compiler-ui/_next/static/chunks/01646j7yi.w5a.css +1 -0
  23. package/dist/compiler-ui/_next/static/chunks/{0n51hrfoufc7g.js → 02f_.8.ebn556.js} +1 -1
  24. package/dist/compiler-ui/_next/static/chunks/02r7siaw-_p5w.js +1 -0
  25. package/dist/compiler-ui/_next/static/chunks/{08m7vf5asqlsm.js → 04d0ly-7xb~-j.js} +10 -10
  26. package/dist/compiler-ui/_next/static/chunks/0fhs9psnxqd8s.js +1 -0
  27. package/dist/compiler-ui/_next/static/chunks/0mssmhpbifj15.css +2 -0
  28. package/dist/compiler-ui/_next/static/chunks/0nypu~ddwxari.js +116 -0
  29. package/dist/compiler-ui/_next/static/chunks/0p3s8iyhgcww2.js +31 -0
  30. package/dist/compiler-ui/_next/static/chunks/0tjf-vu_rz8s0.css +1 -0
  31. package/dist/compiler-ui/_next/static/chunks/0u6p3fpbbfgtl.js +1 -0
  32. package/dist/compiler-ui/_next/static/chunks/0wpx5..8dnh0w.js +1 -0
  33. package/dist/compiler-ui/_next/static/chunks/0y0uj160p0ts~.js +1 -0
  34. package/dist/compiler-ui/_next/static/chunks/10t8l~_oenf.c.js +1 -0
  35. package/dist/compiler-ui/_next/static/chunks/13gz9e7z~imx1.js +5 -0
  36. package/dist/compiler-ui/_next/static/chunks/156xed-b6czaw.js +1 -0
  37. package/dist/compiler-ui/_next/static/chunks/{turbopack-0.uq1k8c0j4s..js → turbopack-02-3e_c-yz~5g.js} +1 -1
  38. package/dist/compiler-ui/_next/static/chunks/{turbopack-10e~t1yzi4svj.js → turbopack-0apv8vb-nczuy.js} +1 -1
  39. package/dist/compiler-ui/_not-found/__next._full.txt +10 -9
  40. package/dist/compiler-ui/_not-found/__next._head.txt +3 -3
  41. package/dist/compiler-ui/_not-found/__next._index.txt +5 -4
  42. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +2 -2
  43. package/dist/compiler-ui/_not-found/__next._not-found.txt +3 -3
  44. package/dist/compiler-ui/_not-found/__next._tree.txt +3 -2
  45. package/dist/compiler-ui/_not-found.html +1 -1
  46. package/dist/compiler-ui/_not-found.txt +10 -9
  47. package/dist/compiler-ui/index.html +1 -1
  48. package/dist/compiler-ui/index.txt +13 -12
  49. package/dist/packages/contracts/index.d.ts +2 -2
  50. package/dist/packages/contracts/index.js +1 -1
  51. package/dist/packages/contracts/lib/schema.d.ts +275 -72
  52. package/dist/packages/contracts/lib/schema.js +244 -83
  53. package/dist/packages/engine/action-definitions.d.ts +174 -13
  54. package/dist/packages/engine/action-definitions.js +125 -122
  55. package/dist/packages/engine/action-planner.js +4 -11
  56. package/dist/packages/engine/agents/lib/shells.d.ts +15 -5
  57. package/dist/packages/engine/agents/lib/shells.js +134 -123
  58. package/dist/packages/engine/agents/role-executors.js +1 -1
  59. package/dist/packages/engine/cloud-seams.d.ts +115 -0
  60. package/dist/packages/engine/cloud-seams.js +84 -0
  61. package/dist/packages/engine/compile/artifact-counts.d.ts +1 -1
  62. package/dist/packages/engine/compile/artifact-counts.js +3 -3
  63. package/dist/packages/engine/compile/artifact-status.d.ts +41 -0
  64. package/dist/packages/engine/compile/artifact-status.js +166 -0
  65. package/dist/packages/engine/compile/billing-events.d.ts +89 -0
  66. package/dist/packages/engine/compile/billing-events.js +74 -0
  67. package/dist/packages/engine/compile/check-evaluator.d.ts +66 -0
  68. package/dist/packages/engine/compile/check-evaluator.js +298 -0
  69. package/dist/packages/engine/compile/compiled-paths.js +6 -6
  70. package/dist/packages/engine/compile/compiled-schema.d.ts +7 -17
  71. package/dist/packages/engine/compile/compiled-schema.js +55 -70
  72. package/dist/packages/engine/compile/compiled-stage-plan.d.ts +1 -0
  73. package/dist/packages/engine/compile/compiled-stage-plan.js +32 -15
  74. package/dist/packages/engine/compile/compiled-stage-runner.js +1 -1
  75. package/dist/packages/engine/compile/index.d.ts +0 -1
  76. package/dist/packages/engine/compile/index.js +0 -1
  77. package/dist/packages/engine/compile/lib/schema.d.ts +111 -92
  78. package/dist/packages/engine/compile/lib/schema.js +35 -39
  79. package/dist/packages/engine/compile/method-primitives.d.ts +2 -2
  80. package/dist/packages/engine/compile/method-primitives.js +1 -1
  81. package/dist/packages/engine/compile/reset.js +4 -4
  82. package/dist/packages/engine/compile/runtime-contracts.js +2 -1
  83. package/dist/packages/engine/compile/runtime-prompt.js +3 -2
  84. package/dist/packages/engine/compile/runtime-reconcile.js +35 -35
  85. package/dist/packages/engine/compile/runtime-runs.js +0 -1
  86. package/dist/packages/engine/compile/runtime-types.d.ts +7 -8
  87. package/dist/packages/engine/compile/runtime.d.ts +1 -2
  88. package/dist/packages/engine/compile/runtime.js +0 -1
  89. package/dist/packages/engine/compile/state-health.js +6 -6
  90. package/dist/packages/engine/compile/state-view.js +7 -6
  91. package/dist/packages/engine/compile/validate-compiled.js +61 -30
  92. package/dist/packages/engine/compile/validate.js +26 -24
  93. package/dist/packages/engine/connection-config.js +1 -1
  94. package/dist/packages/engine/execution/lib/schema.d.ts +89 -33
  95. package/dist/packages/engine/execution/lib/schema.js +13 -5
  96. package/dist/packages/engine/index.d.ts +2 -2
  97. package/dist/packages/engine/index.js +1 -1
  98. package/dist/packages/engine/instance-paths.d.ts +15 -9
  99. package/dist/packages/engine/instance-paths.js +15 -9
  100. package/dist/packages/engine/lib/schema.d.ts +1316 -351
  101. package/dist/packages/engine/lib/schema.js +99 -36
  102. package/dist/packages/engine/native-run-handlers.js +25 -15
  103. package/dist/packages/engine/preparation-store.d.ts +9 -7
  104. package/dist/packages/engine/preparation-store.js +20 -0
  105. package/dist/packages/engine/requested-artifacts.d.ts +5 -0
  106. package/dist/packages/engine/requested-artifacts.js +36 -0
  107. package/dist/packages/engine/routes.d.ts +7 -1
  108. package/dist/packages/engine/routes.js +7 -1
  109. package/dist/packages/engine/run-observability.js +4 -4
  110. package/dist/packages/engine/runtime-event-applier.js +7 -0
  111. package/dist/packages/engine/runtime-proposal-helpers.d.ts +2 -2
  112. package/dist/packages/engine/runtime-proposal-helpers.js +6 -8
  113. package/dist/packages/engine/runtime-resource-builders.d.ts +11 -6
  114. package/dist/packages/engine/runtime-resource-builders.js +18 -6
  115. package/dist/packages/engine/runtime.d.ts +70 -8
  116. package/dist/packages/engine/runtime.js +304 -49
  117. package/dist/packages/engine/server.d.ts +25 -0
  118. package/dist/packages/engine/server.js +161 -50
  119. package/dist/packages/engine/verify/index.d.ts +10 -10
  120. package/dist/packages/engine/verify/index.js +8 -8
  121. package/dist/packages/engine/verify/readiness-check-run.d.ts +27 -4
  122. package/dist/packages/engine/verify/readiness-check-run.js +92 -24
  123. package/dist/packages/engine/verify/{test-execution.d.ts → verify-execution.d.ts} +2 -2
  124. package/dist/packages/engine/verify/{test-execution.js → verify-execution.js} +3 -3
  125. package/dist/packages/engine/verify/{test-paths.d.ts → verify-paths.d.ts} +1 -1
  126. package/dist/packages/engine/verify/{test-sandbox.d.ts → verify-sandbox.d.ts} +1 -1
  127. package/dist/packages/engine/verify/{test-specs.d.ts → verify-specs.d.ts} +1 -1
  128. package/dist/packages/engine/verify/{test-specs.js → verify-specs.js} +1 -1
  129. package/dist/packages/engine/verify/{test-targets.d.ts → verify-targets.d.ts} +1 -1
  130. package/dist/packages/engine/verify/{test.d.ts → verify.d.ts} +4 -4
  131. package/dist/packages/engine/verify/{test.js → verify.js} +3 -3
  132. package/dist/packages/engine/wire-schemas.d.ts +549 -0
  133. package/dist/packages/engine/wire-schemas.js +59 -0
  134. package/dist/packages/methods/authoring/method-authoring.d.ts +5 -1
  135. package/dist/packages/methods/authoring/method-authoring.js +68 -18
  136. package/dist/packages/methods/authoring/method-edit-session.js +5 -5
  137. package/dist/packages/methods/authoring/method-improvement.js +1 -1
  138. package/dist/packages/methods/package/builtin-compiled-method.d.ts +12 -12
  139. package/dist/packages/methods/package/builtin-compiled-method.js +26 -23
  140. package/dist/packages/methods/package/context-interface.d.ts +39 -26
  141. package/dist/packages/methods/package/context-interface.js +48 -39
  142. package/dist/packages/methods/package/interf-method-package.js +28 -47
  143. package/dist/packages/methods/package/local-methods.d.ts +4 -4
  144. package/dist/packages/methods/package/local-methods.js +53 -66
  145. package/dist/packages/methods/package/method-definitions.d.ts +4 -6
  146. package/dist/packages/methods/package/method-definitions.js +1 -5
  147. package/dist/packages/methods/package/method-helpers.d.ts +0 -2
  148. package/dist/packages/methods/package/method-helpers.js +0 -4
  149. package/dist/packages/project/interf-detect.js +6 -6
  150. package/dist/packages/project/interf-scaffold.js +12 -12
  151. package/dist/packages/project/lib/schema.d.ts +193 -0
  152. package/dist/packages/project/lib/schema.js +46 -1
  153. package/dist/packages/project/source-config.js +6 -1
  154. package/dist/packages/project/source-folders.js +1 -1
  155. package/package.json +12 -23
  156. package/public-repo/CONTRIBUTING.md +47 -0
  157. package/public-repo/LICENSE.md +1 -0
  158. package/public-repo/README.md +325 -0
  159. package/public-repo/SECURITY.md +67 -0
  160. package/public-repo/TRADEMARKS.md +8 -0
  161. package/{builtin-methods → public-repo/methods}/interf-default/README.md +10 -7
  162. package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/shape/SKILL.md +4 -8
  163. package/{builtin-methods → public-repo/methods}/interf-default/method.json +8 -69
  164. package/public-repo/methods/interf-default/method.schema.json +75 -0
  165. package/public-repo/methods/interf-default/use/query/SKILL.md +23 -0
  166. package/public-repo/plugins/README.md +9 -0
  167. package/public-repo/plugins/interf/.claude-plugin/plugin.json +21 -0
  168. package/public-repo/plugins/interf/.mcp.json +12 -0
  169. package/public-repo/plugins/interf/README.md +29 -0
  170. package/public-repo/plugins/interf/skills/interf/SKILL.md +477 -0
  171. package/public-repo/skills/interf/SKILL.md +477 -0
  172. package/agent-skills/interf-actions/SKILL.md +0 -185
  173. package/agent-skills/interf-actions/references/cli.md +0 -243
  174. package/builtin-methods/interf-default/method.schema.json +0 -73
  175. package/builtin-methods/interf-default/use/query/SKILL.md +0 -28
  176. package/dist/cli/commands/verify.d.ts +0 -8
  177. package/dist/compiler-ui/_next/static/chunks/06yhdspx~ca5-.js +0 -5
  178. package/dist/compiler-ui/_next/static/chunks/06z~l3kwb891e.js +0 -1
  179. package/dist/compiler-ui/_next/static/chunks/08g7lvje.te.u.js +0 -1
  180. package/dist/compiler-ui/_next/static/chunks/0_i-3_5l9t2qe.js +0 -1
  181. package/dist/compiler-ui/_next/static/chunks/0b-ywny_j0g~0.js +0 -1
  182. package/dist/compiler-ui/_next/static/chunks/0b52v41o1gixx.js +0 -1
  183. package/dist/compiler-ui/_next/static/chunks/0gpzgsv0w.q~m.js +0 -31
  184. package/dist/compiler-ui/_next/static/chunks/0ilwfezfvu6~-.js +0 -1
  185. package/dist/compiler-ui/_next/static/chunks/0jipmpez3_ehh.js +0 -89
  186. package/dist/compiler-ui/_next/static/chunks/0xxmf45eskdt~.css +0 -1
  187. package/dist/compiler-ui/_next/static/chunks/13awzu4tooflw.css +0 -3
  188. package/dist/compiler-ui/_next/static/chunks/14wtz~vq25~qq.js +0 -1
  189. package/dist/packages/engine/compile/runtime-acceptance.d.ts +0 -9
  190. package/dist/packages/engine/compile/runtime-acceptance.js +0 -265
  191. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_buildManifest.js +0 -0
  192. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_clientMiddlewareManifest.js +0 -0
  193. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_ssgManifest.js +0 -0
  194. /package/dist/packages/engine/verify/{test-paths.js → verify-paths.js} +0 -0
  195. /package/dist/packages/engine/verify/{test-profile-presets.d.ts → verify-profile-presets.d.ts} +0 -0
  196. /package/dist/packages/engine/verify/{test-profile-presets.js → verify-profile-presets.js} +0 -0
  197. /package/dist/packages/engine/verify/{test-sandbox.js → verify-sandbox.js} +0 -0
  198. /package/dist/packages/engine/verify/{test-targets.js → verify-targets.js} +0 -0
  199. /package/dist/packages/engine/verify/{test-types.d.ts → verify-types.d.ts} +0 -0
  200. /package/dist/packages/engine/verify/{test-types.js → verify-types.js} +0 -0
  201. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/structure/SKILL.md +0 -0
  202. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/summarize/SKILL.md +0 -0
  203. /package/{builtin-methods → public-repo/methods}/interf-default/improve/SKILL.md +0 -0
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { RequestedArtifactSchema, SourceProfileSchema, } from "../project/lib/schema.js";
3
+ import { artifactRequirementsFromRequestedArtifacts, formatRequestedArtifactsForPrompt, } from "./requested-artifacts.js";
2
4
  export const ActionValueIdPattern = /^[a-z0-9][a-z0-9-]{0,79}$/;
3
5
  export const ActionValueIdSchema = z.string().trim().regex(ActionValueIdPattern, "Use lowercase letters, numbers, and dashes.");
4
6
  export const OptionalActionValueIdSchema = z.string().trim().refine((value) => value === "" || ActionValueIdPattern.test(value), "Use lowercase letters, numbers, and dashes.");
@@ -6,12 +8,16 @@ export const SourceReadinessCheckActionValueSchema = z.object({
6
8
  question: z.string().trim().min(1),
7
9
  answer: z.string().trim().optional(),
8
10
  }).strict();
11
+ export const RequestedArtifactActionValueSchema = RequestedArtifactSchema;
12
+ export const SourceProfileActionValueSchema = SourceProfileSchema;
9
13
  export const PreparationSetupActionValuesSchema = z.object({
10
14
  name: ActionValueIdSchema,
11
15
  path: z.string().trim().min(1, "Source Folder is required."),
12
16
  about: z.string().trim().min(1, "Agent work is required."),
13
17
  method: OptionalActionValueIdSchema.optional(),
14
18
  checks: z.array(SourceReadinessCheckActionValueSchema).optional(),
19
+ requested_artifacts: z.array(RequestedArtifactActionValueSchema).optional(),
20
+ source_profile: SourceProfileActionValueSchema.optional(),
15
21
  max_attempts: z.number().int().min(1).max(5).optional(),
16
22
  max_loops: z.number().int().min(1).max(3).optional(),
17
23
  readiness_notes: z.string().trim().optional(),
@@ -26,6 +32,8 @@ export const MethodAuthoringActionValuesSchema = z.object({
26
32
  hint: z.string().trim().optional(),
27
33
  task_prompt: z.string().trim().min(1, "Agent work is required."),
28
34
  portable_output: z.string().trim().optional(),
35
+ requested_artifacts: z.array(RequestedArtifactActionValueSchema).optional(),
36
+ source_profile: SourceProfileActionValueSchema.nullable().optional(),
29
37
  readiness_notes: z.string().trim().optional(),
30
38
  }).strict();
31
39
  export const INTERF_SERVICE_ACTIONS = {
@@ -33,31 +41,31 @@ export const INTERF_SERVICE_ACTIONS = {
33
41
  id: "create-preparation",
34
42
  serviceAction: "preparation-setup",
35
43
  title: "Create Preparation",
36
- description: "Save a Source Folder + Method binding so future runs can be invoked by name.",
44
+ description: "Save a Source, requested Artifacts, Build Plan, and run history under one Preparation.",
37
45
  },
38
46
  compileRun: {
39
47
  id: "compile-run",
40
48
  serviceAction: "compile",
41
- title: "Compile Method",
42
- description: "Run the chosen Method against this Source Folder and write portable context.",
49
+ title: "Compile Artifacts",
50
+ description: "Run the saved Build Plan against this Source and write portable context.",
43
51
  },
44
52
  selectMethod: {
45
53
  id: "select-method",
46
54
  serviceAction: "preparation-setup",
47
- title: "Select Method",
48
- description: "Choose which Method this saved binding should use for future runs.",
55
+ title: "Select Build Plan",
56
+ description: "Choose the Build Plan that will compile this Preparation's requested Artifacts.",
49
57
  },
50
58
  createMethod: {
51
59
  id: "create-method",
52
60
  serviceAction: "method-authoring",
53
- title: "Draft Method",
54
- description: "Draft a reusable local Method that captures a repeatable agent-work pattern.",
61
+ title: "Draft Build Plan",
62
+ description: "Draft a Build Plan for the Artifacts this Preparation should compile.",
55
63
  },
56
64
  methodChange: {
57
65
  id: "method-change",
58
66
  serviceAction: "method-change",
59
- title: "Method Change",
60
- description: "Modify, duplicate, or remove an existing Method.",
67
+ title: "Build Plan Change",
68
+ description: "Modify, duplicate, or remove an existing Build Plan.",
61
69
  },
62
70
  preparationChange: {
63
71
  id: "preparation-change",
@@ -86,8 +94,8 @@ export const INTERF_SERVICE_ACTIONS = {
86
94
  improvePreparation: {
87
95
  id: "improve-preparation",
88
96
  serviceAction: "method-improvement",
89
- title: "Improve Method",
90
- description: "Use readiness evidence to refine the Method this saved binding uses.",
97
+ title: "Improve Build Plan",
98
+ description: "Use readiness evidence to refine the Build Plan this Preparation uses.",
91
99
  },
92
100
  };
93
101
  function optionalLine(label, value) {
@@ -95,9 +103,13 @@ function optionalLine(label, value) {
95
103
  return trimmed ? `${label}: ${trimmed}` : null;
96
104
  }
97
105
  export function methodAuthoringTaskPrompt(values) {
106
+ const requestedArtifacts = values.requested_artifacts?.length
107
+ ? formatRequestedArtifactsForPrompt(values.requested_artifacts)
108
+ : null;
98
109
  return [
99
110
  `Agent work: ${values.task_prompt}`,
100
- optionalLine("Portable-context output", values.portable_output),
111
+ requestedArtifacts ? `Requested Artifacts:\n${requestedArtifacts}` : null,
112
+ optionalLine("Requested Artifacts", values.portable_output),
101
113
  optionalLine("Readiness checks", values.readiness_notes),
102
114
  ].filter((line) => Boolean(line)).join("\n");
103
115
  }
@@ -171,7 +183,7 @@ export function methodTaskPromptFromInput(values) {
171
183
  const readinessNotes = inputValue(values, "readiness_notes");
172
184
  return [
173
185
  `Agent work: ${taskPrompt}`,
174
- maybeActionValue(portableOutput) ? `Portable-context output: ${portableOutput}` : null,
186
+ maybeActionValue(portableOutput) ? `Requested Artifacts: ${portableOutput}` : null,
175
187
  maybeActionValue(readinessNotes) ? `Readiness checks: ${readinessNotes}` : null,
176
188
  ].filter((line) => Boolean(line)).join("\n");
177
189
  }
@@ -180,7 +192,7 @@ function createPreparationSchema(existingNames) {
180
192
  name: actionIdField("Preparation name"),
181
193
  path: requiredActionText("Source Folder"),
182
194
  about: requiredActionText("Agent work"),
183
- method: optionalActionIdField("Method"),
195
+ method: optionalActionIdField("Build Plan"),
184
196
  readiness_notes: optionalActionText,
185
197
  }).strict().superRefine((values, ctx) => {
186
198
  if (existingNames.has(values.name)) {
@@ -195,7 +207,7 @@ function createPreparationSchema(existingNames) {
195
207
  function prepareRunSchema() {
196
208
  return z.object({
197
209
  preparation: actionIdField("Preparation"),
198
- method: optionalActionIdField("Method"),
210
+ method: optionalActionIdField("Build Plan"),
199
211
  about: optionalActionText,
200
212
  source_folder_path: optionalActionText,
201
213
  }).strict();
@@ -205,13 +217,13 @@ function selectMethodSchema() {
205
217
  name: actionIdField("Preparation"),
206
218
  path: requiredActionText("Source Folder"),
207
219
  about: requiredActionText("Agent work"),
208
- current_method: optionalActionIdField("Current Method"),
209
- method: optionalActionIdField("Method"),
220
+ current_method: optionalActionIdField("Current Build Plan"),
221
+ method: actionIdField("Build Plan"),
210
222
  }).strict();
211
223
  }
212
224
  function methodAuthoringSchema(existingMethodIds) {
213
225
  return z.object({
214
- method_id: optionalActionIdField("Method id"),
226
+ method_id: optionalActionIdField("Build Plan id"),
215
227
  label: optionalActionText,
216
228
  hint: optionalActionText,
217
229
  task_prompt: requiredActionText("Agent work"),
@@ -223,7 +235,7 @@ function methodAuthoringSchema(existingMethodIds) {
223
235
  ctx.addIssue({
224
236
  code: z.ZodIssueCode.custom,
225
237
  path: ["method_id"],
226
- message: "A Method with this id already exists.",
238
+ message: "A Build Plan with this id already exists.",
227
239
  });
228
240
  }
229
241
  });
@@ -231,7 +243,7 @@ function methodAuthoringSchema(existingMethodIds) {
231
243
  function methodChangeSchema(action, methodId, existingMethodIds) {
232
244
  const base = {
233
245
  action: requiredActionText("Action"),
234
- method: actionIdField("Method"),
246
+ method: actionIdField("Build Plan"),
235
247
  preparation: optionalActionIdField("Preparation"),
236
248
  };
237
249
  if (action === "modify") {
@@ -245,13 +257,13 @@ function methodChangeSchema(action, methodId, existingMethodIds) {
245
257
  if (action === "duplicate") {
246
258
  return z.object({
247
259
  ...base,
248
- new_method_id: actionIdField("New Method id"),
260
+ new_method_id: actionIdField("New Build Plan id"),
249
261
  }).strict().superRefine((values, ctx) => {
250
262
  if (existingMethodIds.has(values.new_method_id)) {
251
263
  ctx.addIssue({
252
264
  code: z.ZodIssueCode.custom,
253
265
  path: ["new_method_id"],
254
- message: "A Method with this id already exists.",
266
+ message: "A Build Plan with this id already exists.",
255
267
  });
256
268
  }
257
269
  });
@@ -272,7 +284,7 @@ function preparationChangeSchema(action, preparation, existingNames) {
272
284
  name: actionIdField("Preparation id"),
273
285
  path: requiredActionText("Source Folder"),
274
286
  about: requiredActionText("Agent work"),
275
- method: optionalActionIdField("Method"),
287
+ method: optionalActionIdField("Build Plan"),
276
288
  }).strict().superRefine((values, ctx) => {
277
289
  if (values.name !== preparation && existingNames.has(values.name)) {
278
290
  ctx.addIssue({
@@ -289,7 +301,7 @@ function preparationChangeSchema(action, preparation, existingNames) {
289
301
  name: actionIdField("New Preparation id"),
290
302
  path: requiredActionText("Source Folder"),
291
303
  about: requiredActionText("Agent work"),
292
- method: optionalActionIdField("Method"),
304
+ method: optionalActionIdField("Build Plan"),
293
305
  }).strict().superRefine((values, ctx) => {
294
306
  if (existingNames.has(values.name)) {
295
307
  ctx.addIssue({
@@ -321,7 +333,7 @@ function normalizedMethodActionValues(values, existingMethodIds, defaultSeed) {
321
333
  ...values,
322
334
  method_id: methodId,
323
335
  label: maybeActionValue(inputValue(values, "label")) ?? titleFromActionId(methodId),
324
- hint: maybeActionValue(inputValue(values, "hint")) ?? conciseSummary(output ?? taskPrompt, "Reusable Method for preparing source files."),
336
+ hint: maybeActionValue(inputValue(values, "hint")) ?? conciseSummary(output ?? taskPrompt, "Reusable Build Plan for compiling Artifacts."),
325
337
  task_prompt: taskPrompt,
326
338
  };
327
339
  }
@@ -332,7 +344,7 @@ function createPreparationActionValues(values) {
332
344
  name: inputValue(values, "name"),
333
345
  path: inputValue(values, "path"),
334
346
  about: inputValue(values, "about"),
335
- prepare_after_setup: true,
347
+ prepare_after_setup: false,
336
348
  ...(maybeActionValue(method) ? { method } : {}),
337
349
  ...(maybeActionValue(readinessNotes) ? { readiness_notes: readinessNotes } : {}),
338
350
  };
@@ -342,7 +354,7 @@ function selectMethodActionValues(values) {
342
354
  name: inputValue(values, "name"),
343
355
  path: inputValue(values, "path"),
344
356
  about: inputValue(values, "about"),
345
- method: maybeActionValue(inputValue(values, "method")) ?? "interf-default",
357
+ method: inputValue(values, "method"),
346
358
  prepare_after_setup: false,
347
359
  setup_mode: "select-method",
348
360
  };
@@ -356,8 +368,10 @@ export function preparationSetupRequestFromActionValues(input) {
356
368
  name: values.name,
357
369
  path: values.path,
358
370
  about: values.about,
359
- method: values.method && values.method.length > 0 ? values.method : "interf-default",
371
+ ...(values.method && values.method.length > 0 ? { method: values.method } : {}),
360
372
  checks: values.checks ?? [],
373
+ ...(values.requested_artifacts ? { requested_artifacts: values.requested_artifacts } : {}),
374
+ ...(values.source_profile ? { source_profile: values.source_profile } : {}),
361
375
  ...(typeof values.max_attempts === "number" ? { max_attempts: values.max_attempts } : {}),
362
376
  ...(typeof values.max_loops === "number" ? { max_loops: values.max_loops } : {}),
363
377
  },
@@ -367,9 +381,11 @@ export function methodAuthoringRequestFromActionValues(input, context) {
367
381
  const values = MethodAuthoringActionValuesSchema.parse(input);
368
382
  const methodId = values.method_id;
369
383
  if (!methodId) {
370
- throw new Error("Method id is required.");
384
+ throw new Error("Build Plan id is required.");
371
385
  }
372
386
  const taskPrompt = methodAuthoringTaskPrompt(values);
387
+ const requestedArtifacts = values.requested_artifacts ?? context.requestedArtifacts ?? [];
388
+ const sourceProfile = values.source_profile ?? context.sourceProfile ?? null;
373
389
  return {
374
390
  ...(context.preparation ? { preparation: context.preparation } : {}),
375
391
  source_folder_path: context.sourceFolderPath,
@@ -377,9 +393,12 @@ export function methodAuthoringRequestFromActionValues(input, context) {
377
393
  ...(values.reference_method_id ? { reference_method_id: values.reference_method_id } : {}),
378
394
  method_id: methodId,
379
395
  label: values.label ?? titleFromActionId(methodId),
380
- hint: values.hint ?? conciseSummary(values.portable_output ?? values.task_prompt, "Reusable Method for preparing source files."),
396
+ hint: values.hint ?? conciseSummary(values.portable_output ?? values.task_prompt, "Reusable Build Plan for compiling Artifacts."),
381
397
  task_prompt: taskPrompt,
382
398
  checks: context.checks ?? [],
399
+ requested_artifacts: requestedArtifacts,
400
+ source_profile: sourceProfile,
401
+ artifact_requirements: artifactRequirementsFromRequestedArtifacts(requestedArtifacts),
383
402
  };
384
403
  }
385
404
  export function methodImprovementActionValues(options) {
@@ -392,7 +411,7 @@ export function methodImprovementActionValues(options) {
392
411
  reference_method_id: options.methodId,
393
412
  ...(maybeActionValue(options.label ?? "") ? { label: options.label } : {}),
394
413
  ...(maybeActionValue(options.hint ?? "") ? { hint: options.hint } : {}),
395
- task_prompt: `Improve Method ${options.methodId} using the latest readiness evidence for Preparation ${options.preparationName}.`,
414
+ task_prompt: `Improve Build Plan ${options.methodId} using the latest readiness evidence for Preparation ${options.preparationName}.`,
396
415
  ...(maybeActionValue(readinessNotes) ? { readiness_notes: readinessNotes } : {}),
397
416
  };
398
417
  }
@@ -420,7 +439,7 @@ function methodChangeActionValues(action, values) {
420
439
  ...(maybeActionValue(inputValue(values, "label")) ? { label: inputValue(values, "label") } : {}),
421
440
  ...(maybeActionValue(inputValue(values, "hint")) ? { hint: inputValue(values, "hint") } : {}),
422
441
  task_prompt: [
423
- `Modify Method ${methodId}.`,
442
+ `Modify Build Plan ${methodId}.`,
424
443
  inputValue(values, "change_request"),
425
444
  ].filter(Boolean).join("\n"),
426
445
  };
@@ -470,13 +489,12 @@ export function buildCreatePreparationActionDefinition(context) {
470
489
  return {
471
490
  id: INTERF_SERVICE_ACTIONS.createPreparation.id,
472
491
  title: INTERF_SERVICE_ACTIONS.createPreparation.title,
473
- description: "Describe the agent job. Interf saves the Preparation through the local service and starts its first compile run.",
474
- submitLabel: "Confirm",
492
+ description: "Describe the Source and agent job. Interf saves a Preparation so a Build Plan can be drafted and reviewed before compile.",
493
+ submitLabel: "Create",
475
494
  initialValues: {
476
495
  name,
477
496
  path: context.prepDataDir,
478
497
  about: "",
479
- method: "interf-default",
480
498
  readiness_notes: "",
481
499
  },
482
500
  schema: createPreparationSchema(existingNames),
@@ -489,7 +507,6 @@ export function buildCreatePreparationActionDefinition(context) {
489
507
  valuesPreview: createPreparationActionValues,
490
508
  buildDraft: (values) => {
491
509
  const actionValues = createPreparationActionValues(values);
492
- const method = inputValue(values, "method");
493
510
  const readinessNotes = inputValue(values, "readiness_notes");
494
511
  return {
495
512
  preparation: inputValue(values, "name"),
@@ -497,9 +514,9 @@ export function buildCreatePreparationActionDefinition(context) {
497
514
  message: [
498
515
  `Create Preparation ${inputValue(values, "name")}.`,
499
516
  `Agent work: ${inputValue(values, "about")}`,
500
- maybeActionValue(method) ? `Method: ${method}` : null,
501
- maybeActionValue(readinessNotes) ? `Readiness checks: ${readinessNotes}` : null,
517
+ maybeActionValue(readinessNotes) ? `Requested Artifacts and readiness: ${readinessNotes}` : null,
502
518
  `Source folder: ${inputValue(values, "path")}`,
519
+ "Draft or select the Build Plan after this Preparation exists. Do not run compile yet.",
503
520
  "Use the attached typed action input as the source of truth.",
504
521
  ].filter((line) => Boolean(line)).join("\n"),
505
522
  };
@@ -518,35 +535,18 @@ export function buildCreatePreparationActionDefinition(context) {
518
535
  label: "Agent job",
519
536
  type: "textarea",
520
537
  rows: 4,
521
- help: "The concrete work this prepared folder should enable.",
538
+ help: "The concrete work this Preparation should enable.",
522
539
  context: "Saved as the Preparation intent and sent as typed action input.",
523
540
  placeholder: "Example: Analyze every report chart, extract annual take-up by location, and produce a source data file plus markdown summary.",
524
541
  },
525
- {
526
- name: "method",
527
- label: "Method",
528
- type: "select",
529
- help: "How Interf should build portable context for this Preparation.",
530
- context: "Saved as the Method selected for this Preparation.",
531
- options: methodChoiceOptions(context.methods),
532
- },
533
542
  {
534
543
  name: "readiness_notes",
535
- label: "Ready when",
544
+ label: "Requested Artifacts",
536
545
  type: "textarea",
537
546
  rows: 3,
538
- help: "Concrete checks that prove the prepared context is good enough.",
539
- context: "Used as guidance when Interf proposes Preparation-level readiness checks.",
540
- placeholder: "Example: Every output is source-backed, complete for the requested locations, and precise enough to verify.",
541
- },
542
- {
543
- name: "name",
544
- label: "Preparation id",
545
- type: "text",
546
- advanced: true,
547
- help: "Auto-generated for the CLI and portable-context folder. Change only if needed.",
548
- context: "Used in the CLI, saved on the Preparation, and used for the portable-context folder name.",
549
- placeholder: name,
547
+ help: "Artifacts, coverage, and proof the agent needs before it can trust the Source.",
548
+ context: "Used as guidance when Interf drafts the Build Plan and readiness checks for review.",
549
+ placeholder: "Example: Extract every chart, produce a source data file, write a markdown summary, and show evidence for every location.",
550
550
  },
551
551
  ],
552
552
  };
@@ -555,7 +555,7 @@ export function buildCompileRunActionDefinition(context) {
555
555
  return {
556
556
  id: INTERF_SERVICE_ACTIONS.compileRun.id,
557
557
  title: INTERF_SERVICE_ACTIONS.compileRun.title,
558
- description: "Build portable context for this Preparation. Interf will run the saved Method against the source folder and record a visible run.",
558
+ description: "Build portable context for this Preparation. Interf will run the saved Build Plan against the Source and record a visible run.",
559
559
  submitLabel: "Run",
560
560
  initialValues: {
561
561
  preparation: context.name,
@@ -579,9 +579,10 @@ export function buildCompileRunActionDefinition(context) {
579
579
  ...(maybeActionValue(inputValue(values, "method")) ? { method: inputValue(values, "method") } : {}),
580
580
  },
581
581
  message: [
582
- `Compile Method ${inputValue(values, "method") || "(saved selection)"} for Preparation ${inputValue(values, "preparation")}.`,
582
+ `Compile Artifacts for Preparation ${inputValue(values, "preparation")}.`,
583
583
  maybeActionValue(inputValue(values, "about")) ? `Agent work: ${inputValue(values, "about")}` : null,
584
- "Build portable context from the saved Source Folder and selected Method.",
584
+ `Build Plan: ${inputValue(values, "method") || "(saved selection)"}.`,
585
+ "Build portable context from the saved Source and requested Artifacts.",
585
586
  "Use the attached typed action input as the source of truth.",
586
587
  ].filter((line) => Boolean(line)).join("\n"),
587
588
  }),
@@ -596,11 +597,11 @@ export function buildCompileRunActionDefinition(context) {
596
597
  },
597
598
  {
598
599
  name: "method",
599
- label: "Method",
600
+ label: "Build Plan",
600
601
  type: "text",
601
602
  readOnly: true,
602
- help: "The Method Interf will run for this Preparation.",
603
- context: "Sent as the compile Method override.",
603
+ help: "The Build Plan Interf will run to build the requested Artifacts.",
604
+ context: "Sent as the compile build-plan override.",
604
605
  },
605
606
  {
606
607
  name: "about",
@@ -632,20 +633,22 @@ export function buildSelectMethodActionDefinition(context) {
632
633
  const actionValues = (values) => ({
633
634
  ...selectMethodActionValues(values),
634
635
  checks: context.checks ?? [],
636
+ requested_artifacts: context.requestedArtifacts ?? [],
637
+ ...(context.sourceProfile ? { source_profile: context.sourceProfile } : {}),
635
638
  ...(typeof context.maxAttempts === "number" ? { max_attempts: context.maxAttempts } : {}),
636
639
  ...(typeof context.maxLoops === "number" ? { max_loops: context.maxLoops } : {}),
637
640
  });
638
641
  return {
639
642
  id: INTERF_SERVICE_ACTIONS.selectMethod.id,
640
643
  title: INTERF_SERVICE_ACTIONS.selectMethod.title,
641
- description: "Choose which Method this Preparation uses for future compile runs. This saves the selection without running prepare.",
644
+ description: "Choose the Build Plan that compiles this Preparation's requested Artifacts. This saves the selection without running compile.",
642
645
  submitLabel: "Confirm",
643
646
  initialValues: {
644
647
  name: context.name,
645
648
  path: context.sourceFolderPath,
646
649
  about: context.about,
647
- current_method: context.currentMethodId,
648
- method: context.currentMethodId || "interf-default",
650
+ current_method: context.currentMethodId ?? "",
651
+ method: context.currentMethodId ?? "",
649
652
  },
650
653
  schema: selectMethodSchema(),
651
654
  validateRequest: (values) => packageSchemaFieldErrors(PreparationSetupActionValuesSchema.safeParse(actionValues(values)), {
@@ -659,26 +662,26 @@ export function buildSelectMethodActionDefinition(context) {
659
662
  preparation: inputValue(values, "name"),
660
663
  values: actionValues(values),
661
664
  message: [
662
- `Select Method ${inputValue(values, "method") || "interf-default"} for Preparation ${inputValue(values, "name")}.`,
663
- "Save the selected Method. Do not run prepare yet.",
665
+ `Select Build Plan ${inputValue(values, "method")} for Preparation ${inputValue(values, "name")}.`,
666
+ "Save the selected Build Plan. Do not run compile yet.",
664
667
  "Use the attached typed action input as the source of truth.",
665
668
  ].join("\n"),
666
669
  }),
667
670
  fields: [
668
671
  {
669
672
  name: "method",
670
- label: "Method",
673
+ label: "Build Plan",
671
674
  type: "select",
672
- help: "The Method future compile runs should use.",
675
+ help: "The Build Plan future compile runs should use to build requested Artifacts.",
673
676
  context: "Saved on the existing Preparation.",
674
677
  options: methodChoiceOptions(context.methods),
675
678
  },
676
679
  {
677
680
  name: "current_method",
678
- label: "Current Method",
681
+ label: "Current Build Plan",
679
682
  type: "text",
680
683
  readOnly: true,
681
- help: "The Method currently saved for this Preparation.",
684
+ help: "The Build Plan currently saved for this Preparation.",
682
685
  context: "Shown so the change is explicit before approval.",
683
686
  },
684
687
  {
@@ -687,7 +690,7 @@ export function buildSelectMethodActionDefinition(context) {
687
690
  type: "text",
688
691
  readOnly: true,
689
692
  advanced: true,
690
- help: "The Preparation whose Method selection will be updated.",
693
+ help: "The Preparation whose Build Plan selection will be updated.",
691
694
  context: "Sent with the setup action.",
692
695
  },
693
696
  {
@@ -697,7 +700,7 @@ export function buildSelectMethodActionDefinition(context) {
697
700
  readOnly: true,
698
701
  advanced: true,
699
702
  help: "The saved job intent for this Preparation.",
700
- context: "Preserved while updating the selected Method.",
703
+ context: "Preserved while updating the selected Build Plan.",
701
704
  },
702
705
  {
703
706
  name: "path",
@@ -706,7 +709,7 @@ export function buildSelectMethodActionDefinition(context) {
706
709
  readOnly: true,
707
710
  advanced: true,
708
711
  help: "The saved Source Folder path.",
709
- context: "Preserved while updating the selected Method.",
712
+ context: "Preserved while updating the selected Build Plan.",
710
713
  },
711
714
  ],
712
715
  };
@@ -719,7 +722,7 @@ export function buildCreateMethodActionDefinition(context) {
719
722
  return {
720
723
  id: INTERF_SERVICE_ACTIONS.createMethod.id,
721
724
  title: INTERF_SERVICE_ACTIONS.createMethod.title,
722
- description: "Describe the reusable job this Method should make possible. Interf will generate the stable Method metadata unless you override it.",
725
+ description: "Describe the Artifacts the agent needs. Interf drafts the Build Plan from this description; compile later proves source coverage.",
723
726
  submitLabel: "Send Request",
724
727
  initialValues: {
725
728
  method_id: "",
@@ -749,11 +752,11 @@ export function buildCreateMethodActionDefinition(context) {
749
752
  preparation: context.defaultPreparation,
750
753
  values: methodAuthoringActionValues(values),
751
754
  message: [
752
- `Create Method ${inputValue(values, "method_id")}${context.defaultPreparation ? ` for Preparation ${context.defaultPreparation}` : ""}.`,
755
+ `Draft Build Plan ${inputValue(values, "method_id")}${context.defaultPreparation ? ` for Preparation ${context.defaultPreparation}` : ""}.`,
753
756
  `Label: ${inputValue(values, "label")}`,
754
757
  `Summary: ${inputValue(values, "hint")}`,
755
758
  methodTaskPromptFromInput(values),
756
- "Use the attached typed action input as the Method authoring request.",
759
+ "Use the attached typed action input as the Build Plan authoring request.",
757
760
  ].join("\n"),
758
761
  }),
759
762
  fields: [
@@ -762,17 +765,17 @@ export function buildCreateMethodActionDefinition(context) {
762
765
  label: "Agent work",
763
766
  type: "textarea",
764
767
  rows: 4,
765
- help: "The reusable job this Method should make possible for agents.",
766
- context: "Used as the main Method-authoring instruction.",
768
+ help: "The agent task this Preparation should unlock.",
769
+ context: "Used as the main Build Plan authoring instruction.",
767
770
  placeholder: "Example: Analyze every report chart, extract annual take-up by location, and produce a source data file plus markdown summary.",
768
771
  },
769
772
  {
770
773
  name: "portable_output",
771
- label: "Portable-context output",
774
+ label: "Requested Artifacts",
772
775
  type: "textarea",
773
776
  rows: 3,
774
777
  help: "Files, sections, or evidence agents should receive in portable context.",
775
- context: "Guides the Method output shape and stage artifact plan.",
778
+ context: "Guides the requested Artifact shape and Build Plan stages before compile proves source coverage.",
776
779
  placeholder: "Describe the files or sections agents should receive.",
777
780
  },
778
781
  {
@@ -780,17 +783,17 @@ export function buildCreateMethodActionDefinition(context) {
780
783
  label: "Readiness guidance",
781
784
  type: "textarea",
782
785
  rows: 3,
783
- help: "What this Method output should be able to prove.",
784
- context: "Guides readiness checks. Method acceptance criteria stay separate.",
785
- placeholder: "Describe the evidence that should make this Method output ready.",
786
+ help: "What these Artifacts should be able to prove.",
787
+ context: "Guides readiness checks. Artifact contract checks stay separate.",
788
+ placeholder: "Describe the evidence that should make these Artifacts ready.",
786
789
  },
787
790
  {
788
791
  name: "method_id",
789
- label: "Method id",
792
+ label: "Build Plan id",
790
793
  type: "text",
791
794
  advanced: true,
792
795
  help: "Optional. Leave blank and Interf generates a stable id from the job.",
793
- context: "Saved under the Workspace methods folder and referenced by Preparations.",
796
+ context: "Saved as the technical Method-package id and referenced by Preparations.",
794
797
  placeholder: methodId,
795
798
  },
796
799
  {
@@ -799,7 +802,7 @@ export function buildCreateMethodActionDefinition(context) {
799
802
  type: "text",
800
803
  advanced: true,
801
804
  help: "Optional readable name people can choose later.",
802
- context: "Shown in the UI and sent to the local agent while drafting the Method.",
805
+ context: "Shown in the UI and sent to the local agent while drafting the Build Plan.",
803
806
  placeholder: label,
804
807
  },
805
808
  {
@@ -833,31 +836,31 @@ export function buildMethodChangeActionDefinition(context) {
833
836
  const messageFor = (values) => {
834
837
  if (context.action === "modify") {
835
838
  return [
836
- `Modify Method ${inputValue(values, "method")}.`,
839
+ `Modify Build Plan ${inputValue(values, "method")}.`,
837
840
  `Requested change: ${inputValue(values, "change_request")}`,
838
- "Use the attached typed Method-authoring input as the source of truth.",
841
+ "Use the attached typed Build Plan authoring input as the source of truth.",
839
842
  ].join("\n");
840
843
  }
841
844
  if (context.action === "duplicate") {
842
845
  return [
843
- `Duplicate Method ${inputValue(values, "method")} as ${inputValue(values, "new_method_id")}.`,
844
- "Use the attached typed Method change input as the source of truth.",
846
+ `Duplicate Build Plan ${inputValue(values, "method")} as ${inputValue(values, "new_method_id")}.`,
847
+ "Use the attached typed Build Plan change input as the source of truth.",
845
848
  ].join("\n");
846
849
  }
847
850
  return [
848
- `Remove Method ${inputValue(values, "method")}.`,
849
- "The user typed the Method id to confirm removal.",
850
- "Use the attached typed Method change input as the source of truth.",
851
+ `Remove Build Plan ${inputValue(values, "method")}.`,
852
+ "The user typed the Build Plan id to confirm removal.",
853
+ "Use the attached typed Build Plan change input as the source of truth.",
851
854
  ].join("\n");
852
855
  };
853
856
  const fields = [
854
857
  {
855
858
  name: "method",
856
- label: "Method",
859
+ label: "Build Plan",
857
860
  type: "text",
858
861
  readOnly: true,
859
- help: "The Method this request targets.",
860
- context: "Sent as the Method change target.",
862
+ help: "The Build Plan this request targets.",
863
+ context: "Sent as the Build Plan change target.",
861
864
  },
862
865
  {
863
866
  name: "change_request",
@@ -866,18 +869,18 @@ export function buildMethodChangeActionDefinition(context) {
866
869
  rows: 4,
867
870
  advanced: context.action === "remove",
868
871
  help: context.action === "duplicate"
869
- ? "What should be different in the duplicate Method."
870
- : "What should change in the existing Method.",
871
- context: "Sent as the human-authored Method change request.",
872
+ ? "What should be different in the duplicate Build Plan."
873
+ : "What should change in the existing Build Plan.",
874
+ context: "Sent as the human-authored Build Plan change request.",
872
875
  placeholder: "Describe the concrete change Interf should make.",
873
876
  },
874
877
  {
875
878
  name: "new_method_id",
876
- label: "New Method id",
879
+ label: "New Build Plan id",
877
880
  type: "text",
878
881
  advanced: context.action !== "duplicate",
879
- help: "Stable id for the duplicated Method.",
880
- context: "Used as the target Method id for the duplicate request.",
882
+ help: "Stable id for the duplicated Build Plan.",
883
+ context: "Used as the target Build Plan id for the duplicate request.",
881
884
  placeholder: newMethodId,
882
885
  },
883
886
  {
@@ -886,7 +889,7 @@ export function buildMethodChangeActionDefinition(context) {
886
889
  type: "text",
887
890
  advanced: context.action !== "remove",
888
891
  help: `Type ${context.methodId} to confirm this removal request.`,
889
- context: "Prevents accidental destructive Method requests.",
892
+ context: "Prevents accidental destructive Build Plan requests.",
890
893
  placeholder: context.methodId,
891
894
  },
892
895
  {
@@ -894,8 +897,8 @@ export function buildMethodChangeActionDefinition(context) {
894
897
  label: "Label",
895
898
  type: "text",
896
899
  advanced: true,
897
- help: "Readable Method name to keep while modifying this Method.",
898
- context: "Sent to the Method-authoring run.",
900
+ help: "Readable Build Plan name to keep while modifying this Build Plan.",
901
+ context: "Sent to the Build Plan authoring run.",
899
902
  placeholder: context.label ?? context.methodId,
900
903
  },
901
904
  {
@@ -904,9 +907,9 @@ export function buildMethodChangeActionDefinition(context) {
904
907
  type: "textarea",
905
908
  rows: 2,
906
909
  advanced: true,
907
- help: "Short Method summary to keep while modifying this Method.",
908
- context: "Sent to the Method-authoring run.",
909
- placeholder: context.hint ?? "Reusable Method for preparing source folders.",
910
+ help: "Short Build Plan summary to keep while modifying this Build Plan.",
911
+ context: "Sent to the Build Plan authoring run.",
912
+ placeholder: context.hint ?? "Reusable Build Plan for compiling Artifacts.",
910
913
  },
911
914
  {
912
915
  name: "preparation",
@@ -921,12 +924,12 @@ export function buildMethodChangeActionDefinition(context) {
921
924
  ];
922
925
  return {
923
926
  id: `${INTERF_SERVICE_ACTIONS.methodChange.id}-${context.action}`,
924
- title: `${actionLabel} Method`,
927
+ title: `${actionLabel} Build Plan`,
925
928
  description: context.action === "remove"
926
- ? "Confirm the Method removal request. Interf will reject removal while any saved Preparation still uses it."
929
+ ? "Confirm the Build Plan removal request. Interf will reject removal while any saved Preparation still uses it."
927
930
  : context.action === "duplicate"
928
- ? "Duplicate this Method through the local Interf service."
929
- : "Describe the change and Interf will run a visible Method draft job.",
931
+ ? "Duplicate this Build Plan through the local Interf service."
932
+ : "Describe the change and Interf will run a visible Build Plan draft job.",
930
933
  submitLabel: context.action === "modify" ? "Send Request" : "Confirm",
931
934
  initialValues,
932
935
  schema: methodChangeSchema(context.action, context.methodId, existingMethodIds),
@@ -963,7 +966,7 @@ export function buildPreparationChangeActionDefinition(context) {
963
966
  name: context.action === "duplicate" ? duplicateName : context.preparation,
964
967
  path: context.sourceFolderPath,
965
968
  about: context.about ?? "",
966
- method: context.methodId ?? "interf-default",
969
+ method: context.methodId ?? "",
967
970
  }
968
971
  : {}),
969
972
  ...(context.action === "remove" ? { confirmation: "" } : {}),
@@ -974,7 +977,7 @@ export function buildPreparationChangeActionDefinition(context) {
974
977
  return [
975
978
  `Modify Preparation ${inputValue(values, "preparation")}.`,
976
979
  `Agent work: ${inputValue(values, "about")}`,
977
- maybeActionValue(inputValue(values, "method")) ? `Method: ${inputValue(values, "method")}` : null,
980
+ maybeActionValue(inputValue(values, "method")) ? `Build Plan: ${inputValue(values, "method")}` : null,
978
981
  `Source folder: ${inputValue(values, "path")}`,
979
982
  "Use the attached typed Preparation setup input as the source of truth.",
980
983
  ].filter((line) => Boolean(line)).join("\n");
@@ -983,7 +986,7 @@ export function buildPreparationChangeActionDefinition(context) {
983
986
  return [
984
987
  `Duplicate Preparation ${inputValue(values, "preparation")} as ${inputValue(values, "name")}.`,
985
988
  `Agent work: ${inputValue(values, "about")}`,
986
- maybeActionValue(inputValue(values, "method")) ? `Method: ${inputValue(values, "method")}` : null,
989
+ maybeActionValue(inputValue(values, "method")) ? `Build Plan: ${inputValue(values, "method")}` : null,
987
990
  `Source folder: ${inputValue(values, "path")}`,
988
991
  "Use the attached typed Preparation setup input as the source of truth.",
989
992
  ].filter((line) => Boolean(line)).join("\n");
@@ -1025,9 +1028,9 @@ export function buildPreparationChangeActionDefinition(context) {
1025
1028
  },
1026
1029
  {
1027
1030
  name: "method",
1028
- label: "Method",
1031
+ label: "Build Plan",
1029
1032
  type: "text",
1030
- help: "The Method future compile runs should use.",
1033
+ help: "The Build Plan future compile runs should use.",
1031
1034
  context: "Saved on this Preparation.",
1032
1035
  placeholder: "interf-default",
1033
1036
  },