@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.
- package/LICENSE.md +1 -0
- package/README.md +90 -73
- package/TRADEMARKS.md +4 -4
- package/dist/cli/commands/mcp.d.ts +0 -34
- package/dist/cli/commands/mcp.js +246 -45
- package/dist/cli/commands/method.js +261 -15
- package/dist/cli/commands/prep.js +116 -15
- package/dist/cli/commands/runs.js +103 -9
- package/dist/cli/commands/status.js +4 -2
- package/dist/cli/commands/test.d.ts +10 -0
- package/dist/cli/commands/{verify.js → test.js} +24 -17
- package/dist/cli/commands/web.js +82 -8
- package/dist/cli/commands/wizard.js +158 -51
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +3 -3
- package/dist/compiler-ui/404.html +1 -1
- package/dist/compiler-ui/__next.__PAGE__.txt +5 -5
- package/dist/compiler-ui/__next._full.txt +13 -12
- package/dist/compiler-ui/__next._head.txt +3 -3
- package/dist/compiler-ui/__next._index.txt +5 -4
- package/dist/compiler-ui/__next._tree.txt +4 -3
- package/dist/compiler-ui/_next/static/chunks/01646j7yi.w5a.css +1 -0
- package/dist/compiler-ui/_next/static/chunks/{0n51hrfoufc7g.js → 02f_.8.ebn556.js} +1 -1
- package/dist/compiler-ui/_next/static/chunks/02r7siaw-_p5w.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/{08m7vf5asqlsm.js → 04d0ly-7xb~-j.js} +10 -10
- package/dist/compiler-ui/_next/static/chunks/0fhs9psnxqd8s.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/0mssmhpbifj15.css +2 -0
- package/dist/compiler-ui/_next/static/chunks/0nypu~ddwxari.js +116 -0
- package/dist/compiler-ui/_next/static/chunks/0p3s8iyhgcww2.js +31 -0
- package/dist/compiler-ui/_next/static/chunks/0tjf-vu_rz8s0.css +1 -0
- package/dist/compiler-ui/_next/static/chunks/0u6p3fpbbfgtl.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/0wpx5..8dnh0w.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/0y0uj160p0ts~.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/10t8l~_oenf.c.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/13gz9e7z~imx1.js +5 -0
- package/dist/compiler-ui/_next/static/chunks/156xed-b6czaw.js +1 -0
- package/dist/compiler-ui/_next/static/chunks/{turbopack-0.uq1k8c0j4s..js → turbopack-02-3e_c-yz~5g.js} +1 -1
- package/dist/compiler-ui/_next/static/chunks/{turbopack-10e~t1yzi4svj.js → turbopack-0apv8vb-nczuy.js} +1 -1
- package/dist/compiler-ui/_not-found/__next._full.txt +10 -9
- package/dist/compiler-ui/_not-found/__next._head.txt +3 -3
- package/dist/compiler-ui/_not-found/__next._index.txt +5 -4
- package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/compiler-ui/_not-found/__next._not-found.txt +3 -3
- package/dist/compiler-ui/_not-found/__next._tree.txt +3 -2
- package/dist/compiler-ui/_not-found.html +1 -1
- package/dist/compiler-ui/_not-found.txt +10 -9
- package/dist/compiler-ui/index.html +1 -1
- package/dist/compiler-ui/index.txt +13 -12
- package/dist/packages/contracts/index.d.ts +2 -2
- package/dist/packages/contracts/index.js +1 -1
- package/dist/packages/contracts/lib/schema.d.ts +275 -72
- package/dist/packages/contracts/lib/schema.js +244 -83
- package/dist/packages/engine/action-definitions.d.ts +174 -13
- package/dist/packages/engine/action-definitions.js +125 -122
- package/dist/packages/engine/action-planner.js +4 -11
- package/dist/packages/engine/agents/lib/shells.d.ts +15 -5
- package/dist/packages/engine/agents/lib/shells.js +134 -123
- package/dist/packages/engine/agents/role-executors.js +1 -1
- package/dist/packages/engine/cloud-seams.d.ts +115 -0
- package/dist/packages/engine/cloud-seams.js +84 -0
- package/dist/packages/engine/compile/artifact-counts.d.ts +1 -1
- package/dist/packages/engine/compile/artifact-counts.js +3 -3
- package/dist/packages/engine/compile/artifact-status.d.ts +41 -0
- package/dist/packages/engine/compile/artifact-status.js +166 -0
- package/dist/packages/engine/compile/billing-events.d.ts +89 -0
- package/dist/packages/engine/compile/billing-events.js +74 -0
- package/dist/packages/engine/compile/check-evaluator.d.ts +66 -0
- package/dist/packages/engine/compile/check-evaluator.js +298 -0
- package/dist/packages/engine/compile/compiled-paths.js +6 -6
- package/dist/packages/engine/compile/compiled-schema.d.ts +7 -17
- package/dist/packages/engine/compile/compiled-schema.js +55 -70
- package/dist/packages/engine/compile/compiled-stage-plan.d.ts +1 -0
- package/dist/packages/engine/compile/compiled-stage-plan.js +32 -15
- package/dist/packages/engine/compile/compiled-stage-runner.js +1 -1
- package/dist/packages/engine/compile/index.d.ts +0 -1
- package/dist/packages/engine/compile/index.js +0 -1
- package/dist/packages/engine/compile/lib/schema.d.ts +111 -92
- package/dist/packages/engine/compile/lib/schema.js +35 -39
- package/dist/packages/engine/compile/method-primitives.d.ts +2 -2
- package/dist/packages/engine/compile/method-primitives.js +1 -1
- package/dist/packages/engine/compile/reset.js +4 -4
- package/dist/packages/engine/compile/runtime-contracts.js +2 -1
- package/dist/packages/engine/compile/runtime-prompt.js +3 -2
- package/dist/packages/engine/compile/runtime-reconcile.js +35 -35
- package/dist/packages/engine/compile/runtime-runs.js +0 -1
- package/dist/packages/engine/compile/runtime-types.d.ts +7 -8
- package/dist/packages/engine/compile/runtime.d.ts +1 -2
- package/dist/packages/engine/compile/runtime.js +0 -1
- package/dist/packages/engine/compile/state-health.js +6 -6
- package/dist/packages/engine/compile/state-view.js +7 -6
- package/dist/packages/engine/compile/validate-compiled.js +61 -30
- package/dist/packages/engine/compile/validate.js +26 -24
- package/dist/packages/engine/connection-config.js +1 -1
- package/dist/packages/engine/execution/lib/schema.d.ts +89 -33
- package/dist/packages/engine/execution/lib/schema.js +13 -5
- package/dist/packages/engine/index.d.ts +2 -2
- package/dist/packages/engine/index.js +1 -1
- package/dist/packages/engine/instance-paths.d.ts +15 -9
- package/dist/packages/engine/instance-paths.js +15 -9
- package/dist/packages/engine/lib/schema.d.ts +1316 -351
- package/dist/packages/engine/lib/schema.js +99 -36
- package/dist/packages/engine/native-run-handlers.js +25 -15
- package/dist/packages/engine/preparation-store.d.ts +9 -7
- package/dist/packages/engine/preparation-store.js +20 -0
- package/dist/packages/engine/requested-artifacts.d.ts +5 -0
- package/dist/packages/engine/requested-artifacts.js +36 -0
- package/dist/packages/engine/routes.d.ts +7 -1
- package/dist/packages/engine/routes.js +7 -1
- package/dist/packages/engine/run-observability.js +4 -4
- package/dist/packages/engine/runtime-event-applier.js +7 -0
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +2 -2
- package/dist/packages/engine/runtime-proposal-helpers.js +6 -8
- package/dist/packages/engine/runtime-resource-builders.d.ts +11 -6
- package/dist/packages/engine/runtime-resource-builders.js +18 -6
- package/dist/packages/engine/runtime.d.ts +70 -8
- package/dist/packages/engine/runtime.js +304 -49
- package/dist/packages/engine/server.d.ts +25 -0
- package/dist/packages/engine/server.js +161 -50
- package/dist/packages/engine/verify/index.d.ts +10 -10
- package/dist/packages/engine/verify/index.js +8 -8
- package/dist/packages/engine/verify/readiness-check-run.d.ts +27 -4
- package/dist/packages/engine/verify/readiness-check-run.js +92 -24
- package/dist/packages/engine/verify/{test-execution.d.ts → verify-execution.d.ts} +2 -2
- package/dist/packages/engine/verify/{test-execution.js → verify-execution.js} +3 -3
- package/dist/packages/engine/verify/{test-paths.d.ts → verify-paths.d.ts} +1 -1
- package/dist/packages/engine/verify/{test-sandbox.d.ts → verify-sandbox.d.ts} +1 -1
- package/dist/packages/engine/verify/{test-specs.d.ts → verify-specs.d.ts} +1 -1
- package/dist/packages/engine/verify/{test-specs.js → verify-specs.js} +1 -1
- package/dist/packages/engine/verify/{test-targets.d.ts → verify-targets.d.ts} +1 -1
- package/dist/packages/engine/verify/{test.d.ts → verify.d.ts} +4 -4
- package/dist/packages/engine/verify/{test.js → verify.js} +3 -3
- package/dist/packages/engine/wire-schemas.d.ts +549 -0
- package/dist/packages/engine/wire-schemas.js +59 -0
- package/dist/packages/methods/authoring/method-authoring.d.ts +5 -1
- package/dist/packages/methods/authoring/method-authoring.js +68 -18
- package/dist/packages/methods/authoring/method-edit-session.js +5 -5
- package/dist/packages/methods/authoring/method-improvement.js +1 -1
- package/dist/packages/methods/package/builtin-compiled-method.d.ts +12 -12
- package/dist/packages/methods/package/builtin-compiled-method.js +26 -23
- package/dist/packages/methods/package/context-interface.d.ts +39 -26
- package/dist/packages/methods/package/context-interface.js +48 -39
- package/dist/packages/methods/package/interf-method-package.js +28 -47
- package/dist/packages/methods/package/local-methods.d.ts +4 -4
- package/dist/packages/methods/package/local-methods.js +53 -66
- package/dist/packages/methods/package/method-definitions.d.ts +4 -6
- package/dist/packages/methods/package/method-definitions.js +1 -5
- package/dist/packages/methods/package/method-helpers.d.ts +0 -2
- package/dist/packages/methods/package/method-helpers.js +0 -4
- package/dist/packages/project/interf-detect.js +6 -6
- package/dist/packages/project/interf-scaffold.js +12 -12
- package/dist/packages/project/lib/schema.d.ts +193 -0
- package/dist/packages/project/lib/schema.js +46 -1
- package/dist/packages/project/source-config.js +6 -1
- package/dist/packages/project/source-folders.js +1 -1
- package/package.json +12 -23
- package/public-repo/CONTRIBUTING.md +47 -0
- package/public-repo/LICENSE.md +1 -0
- package/public-repo/README.md +325 -0
- package/public-repo/SECURITY.md +67 -0
- package/public-repo/TRADEMARKS.md +8 -0
- package/{builtin-methods → public-repo/methods}/interf-default/README.md +10 -7
- package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/shape/SKILL.md +4 -8
- package/{builtin-methods → public-repo/methods}/interf-default/method.json +8 -69
- package/public-repo/methods/interf-default/method.schema.json +75 -0
- package/public-repo/methods/interf-default/use/query/SKILL.md +23 -0
- package/public-repo/plugins/README.md +9 -0
- package/public-repo/plugins/interf/.claude-plugin/plugin.json +21 -0
- package/public-repo/plugins/interf/.mcp.json +12 -0
- package/public-repo/plugins/interf/README.md +29 -0
- package/public-repo/plugins/interf/skills/interf/SKILL.md +477 -0
- package/public-repo/skills/interf/SKILL.md +477 -0
- package/agent-skills/interf-actions/SKILL.md +0 -185
- package/agent-skills/interf-actions/references/cli.md +0 -243
- package/builtin-methods/interf-default/method.schema.json +0 -73
- package/builtin-methods/interf-default/use/query/SKILL.md +0 -28
- package/dist/cli/commands/verify.d.ts +0 -8
- package/dist/compiler-ui/_next/static/chunks/06yhdspx~ca5-.js +0 -5
- package/dist/compiler-ui/_next/static/chunks/06z~l3kwb891e.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/08g7lvje.te.u.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/0_i-3_5l9t2qe.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/0b-ywny_j0g~0.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/0b52v41o1gixx.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/0gpzgsv0w.q~m.js +0 -31
- package/dist/compiler-ui/_next/static/chunks/0ilwfezfvu6~-.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/0jipmpez3_ehh.js +0 -89
- package/dist/compiler-ui/_next/static/chunks/0xxmf45eskdt~.css +0 -1
- package/dist/compiler-ui/_next/static/chunks/13awzu4tooflw.css +0 -3
- package/dist/compiler-ui/_next/static/chunks/14wtz~vq25~qq.js +0 -1
- package/dist/packages/engine/compile/runtime-acceptance.d.ts +0 -9
- package/dist/packages/engine/compile/runtime-acceptance.js +0 -265
- /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_buildManifest.js +0 -0
- /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_clientMiddlewareManifest.js +0 -0
- /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_ssgManifest.js +0 -0
- /package/dist/packages/engine/verify/{test-paths.js → verify-paths.js} +0 -0
- /package/dist/packages/engine/verify/{test-profile-presets.d.ts → verify-profile-presets.d.ts} +0 -0
- /package/dist/packages/engine/verify/{test-profile-presets.js → verify-profile-presets.js} +0 -0
- /package/dist/packages/engine/verify/{test-sandbox.js → verify-sandbox.js} +0 -0
- /package/dist/packages/engine/verify/{test-targets.js → verify-targets.js} +0 -0
- /package/dist/packages/engine/verify/{test-types.d.ts → verify-types.d.ts} +0 -0
- /package/dist/packages/engine/verify/{test-types.js → verify-types.js} +0 -0
- /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/structure/SKILL.md +0 -0
- /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/summarize/SKILL.md +0 -0
- /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
|
|
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
|
|
42
|
-
description: "Run the
|
|
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
|
|
48
|
-
description: "Choose
|
|
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
|
|
54
|
-
description: "Draft a
|
|
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: "
|
|
60
|
-
description: "Modify, duplicate, or remove an existing
|
|
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
|
|
90
|
-
description: "Use readiness evidence to refine the
|
|
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
|
-
|
|
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) ? `
|
|
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("
|
|
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("
|
|
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
|
|
209
|
-
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("
|
|
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
|
|
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("
|
|
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
|
|
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
|
|
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("
|
|
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("
|
|
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
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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("
|
|
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
|
|
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
|
|
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
|
|
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
|
|
474
|
-
submitLabel: "
|
|
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(
|
|
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
|
|
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: "
|
|
544
|
+
label: "Requested Artifacts",
|
|
536
545
|
type: "textarea",
|
|
537
546
|
rows: 3,
|
|
538
|
-
help: "
|
|
539
|
-
context: "Used as guidance when Interf
|
|
540
|
-
placeholder: "Example:
|
|
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
|
|
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
|
|
582
|
+
`Compile Artifacts for Preparation ${inputValue(values, "preparation")}.`,
|
|
583
583
|
maybeActionValue(inputValue(values, "about")) ? `Agent work: ${inputValue(values, "about")}` : null,
|
|
584
|
-
|
|
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: "
|
|
600
|
+
label: "Build Plan",
|
|
600
601
|
type: "text",
|
|
601
602
|
readOnly: true,
|
|
602
|
-
help: "The
|
|
603
|
-
context: "Sent as the compile
|
|
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
|
|
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
|
|
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
|
|
663
|
-
"Save the selected
|
|
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: "
|
|
673
|
+
label: "Build Plan",
|
|
671
674
|
type: "select",
|
|
672
|
-
help: "The
|
|
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
|
|
681
|
+
label: "Current Build Plan",
|
|
679
682
|
type: "text",
|
|
680
683
|
readOnly: true,
|
|
681
|
-
help: "The
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
`
|
|
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
|
|
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
|
|
766
|
-
context: "Used as the main
|
|
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: "
|
|
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
|
|
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
|
|
784
|
-
context: "Guides readiness checks.
|
|
785
|
-
placeholder: "Describe the evidence that should make
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
839
|
+
`Modify Build Plan ${inputValue(values, "method")}.`,
|
|
837
840
|
`Requested change: ${inputValue(values, "change_request")}`,
|
|
838
|
-
"Use the attached typed
|
|
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
|
|
844
|
-
"Use the attached typed
|
|
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
|
|
849
|
-
"The user typed the
|
|
850
|
-
"Use the attached typed
|
|
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: "
|
|
859
|
+
label: "Build Plan",
|
|
857
860
|
type: "text",
|
|
858
861
|
readOnly: true,
|
|
859
|
-
help: "The
|
|
860
|
-
context: "Sent as the
|
|
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
|
|
870
|
-
: "What should change in the existing
|
|
871
|
-
context: "Sent as the human-authored
|
|
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
|
|
879
|
+
label: "New Build Plan id",
|
|
877
880
|
type: "text",
|
|
878
881
|
advanced: context.action !== "duplicate",
|
|
879
|
-
help: "Stable id for the duplicated
|
|
880
|
-
context: "Used as the target
|
|
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
|
|
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
|
|
898
|
-
context: "Sent to the
|
|
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
|
|
908
|
-
context: "Sent to the
|
|
909
|
-
placeholder: context.hint ?? "Reusable
|
|
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}
|
|
927
|
+
title: `${actionLabel} Build Plan`,
|
|
925
928
|
description: context.action === "remove"
|
|
926
|
-
? "Confirm the
|
|
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
|
|
929
|
-
: "Describe the change and Interf will run a visible
|
|
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 ?? "
|
|
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")) ? `
|
|
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")) ? `
|
|
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: "
|
|
1031
|
+
label: "Build Plan",
|
|
1029
1032
|
type: "text",
|
|
1030
|
-
help: "The
|
|
1033
|
+
help: "The Build Plan future compile runs should use.",
|
|
1031
1034
|
context: "Saved on this Preparation.",
|
|
1032
1035
|
placeholder: "interf-default",
|
|
1033
1036
|
},
|