@interf/compiler 0.18.0 → 0.22.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/dist/cli/commands/build-plan.d.ts +2 -0
- package/dist/cli/commands/build-plan.js +376 -0
- package/dist/cli/commands/{compile.d.ts → build.d.ts} +2 -2
- package/dist/cli/commands/{compile.js → build.js} +18 -18
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/mcp.d.ts +0 -34
- package/dist/cli/commands/mcp.js +261 -60
- package/dist/cli/commands/prep.js +67 -35
- package/dist/cli/commands/reset.d.ts +1 -1
- package/dist/cli/commands/reset.js +6 -6
- package/dist/cli/commands/runs.js +105 -33
- 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} +19 -21
- package/dist/cli/commands/web.js +82 -8
- package/dist/cli/commands/wizard.js +63 -64
- package/dist/cli/index.d.ts +4 -4
- package/dist/cli/index.js +7 -7
- package/dist/interf-ui/404.html +1 -0
- package/dist/interf-ui/__next.__PAGE__.txt +10 -0
- package/dist/{compiler-ui → interf-ui}/__next._full.txt +12 -12
- package/dist/interf-ui/__next._head.txt +5 -0
- package/dist/{compiler-ui → interf-ui}/__next._index.txt +4 -4
- package/dist/{compiler-ui → interf-ui}/__next._tree.txt +3 -3
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +3 -0
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +1 -0
- package/dist/{compiler-ui/_next/static/chunks/0_i-3_5l9t2qe.js → interf-ui/_next/static/chunks/0dn41fa_zvgsl.js} +1 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +1 -0
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +1 -0
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +1 -0
- package/dist/{compiler-ui/_next/static/chunks/08g7lvje.te.u.js → interf-ui/_next/static/chunks/0nv3am99vjzn4.js} +1 -1
- package/dist/{compiler-ui/_next/static/chunks/0n51hrfoufc7g.js → interf-ui/_next/static/chunks/0s77gt_o4jwtx.js} +1 -1
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +116 -0
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +31 -0
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +1 -0
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +1 -0
- package/dist/{compiler-ui/_next/static/chunks/08m7vf5asqlsm.js → interf-ui/_next/static/chunks/14dznb2qpt-ho.js} +5 -5
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +5 -0
- package/dist/{compiler-ui/_next/static/chunks/turbopack-10e~t1yzi4svj.js → interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js} +1 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +1 -0
- package/dist/{compiler-ui → interf-ui}/_not-found/__next._full.txt +9 -9
- package/dist/interf-ui/_not-found/__next._head.txt +5 -0
- package/dist/{compiler-ui → interf-ui}/_not-found/__next._index.txt +4 -4
- package/dist/{compiler-ui → interf-ui}/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/interf-ui/_not-found/__next._not-found.txt +5 -0
- package/dist/{compiler-ui → interf-ui}/_not-found/__next._tree.txt +2 -2
- package/dist/interf-ui/_not-found.html +1 -0
- package/dist/{compiler-ui → interf-ui}/_not-found.txt +9 -9
- package/dist/interf-ui/index.html +1 -0
- package/dist/{compiler-ui → interf-ui}/index.txt +12 -12
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +36 -0
- package/dist/packages/{methods/authoring/method-authoring.js → build-plans/authoring/build-plan-authoring.js} +57 -88
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +18 -0
- package/dist/packages/{methods/authoring/method-edit-session.js → build-plans/authoring/build-plan-edit-session.js} +34 -34
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +23 -0
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +216 -0
- package/dist/packages/build-plans/authoring/index.d.ts +4 -0
- package/dist/packages/build-plans/authoring/index.js +4 -0
- package/dist/packages/{methods/authoring/lib/method-edit-utils.d.ts → build-plans/authoring/lib/build-plan-edit-utils.d.ts} +3 -3
- package/dist/packages/build-plans/build-plan-resolution.d.ts +6 -0
- package/dist/packages/build-plans/build-plan-resolution.js +7 -0
- package/dist/packages/build-plans/index.d.ts +2 -0
- package/dist/packages/build-plans/index.js +2 -0
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +61 -0
- package/dist/packages/build-plans/package/build-plan-definitions.js +214 -0
- package/dist/packages/{methods/package/method-helpers.d.ts → build-plans/package/build-plan-helpers.d.ts} +7 -7
- package/dist/packages/{methods/package/method-helpers.js → build-plans/package/build-plan-helpers.js} +20 -20
- package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +10 -0
- package/dist/packages/build-plans/package/build-plan-review-paths.js +31 -0
- package/dist/packages/{methods/package/method-stage-runner.d.ts → build-plans/package/build-plan-stage-runner.d.ts} +12 -12
- package/dist/packages/{methods/package/method-stage-runner.js → build-plans/package/build-plan-stage-runner.js} +10 -10
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +37 -0
- package/dist/packages/build-plans/package/builtin-build-plan.js +91 -0
- package/dist/packages/{methods → build-plans}/package/context-interface.d.ts +11 -11
- package/dist/packages/{methods → build-plans}/package/context-interface.js +23 -23
- package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +31 -0
- package/dist/packages/build-plans/package/interf-build-plan-package.js +466 -0
- package/dist/packages/{methods → build-plans}/package/lib/package-root.js +1 -1
- package/dist/packages/build-plans/package/local-build-plans.d.ts +74 -0
- package/dist/packages/build-plans/package/local-build-plans.js +472 -0
- package/dist/packages/build-plans/package/user-build-plans.d.ts +17 -0
- package/dist/packages/build-plans/package/user-build-plans.js +77 -0
- package/dist/packages/contracts/index.d.ts +1 -1
- package/dist/packages/contracts/lib/preparation-paths.d.ts +37 -37
- package/dist/packages/contracts/lib/preparation-paths.js +43 -43
- package/dist/packages/contracts/lib/schema.d.ts +38 -41
- package/dist/packages/contracts/lib/schema.js +44 -35
- package/dist/packages/engine/action-definitions.d.ts +228 -67
- package/dist/packages/engine/action-definitions.js +277 -273
- package/dist/packages/engine/action-planner.d.ts +2 -2
- package/dist/packages/engine/action-planner.js +8 -15
- package/dist/packages/engine/action-values.d.ts +1 -1
- package/dist/packages/engine/action-values.js +1 -1
- package/dist/packages/engine/agents/index.d.ts +2 -2
- package/dist/packages/engine/agents/index.js +1 -1
- package/dist/packages/engine/agents/lib/args.d.ts +2 -2
- package/dist/packages/engine/agents/lib/args.js +1 -1
- package/dist/packages/engine/agents/lib/constants.js +1 -1
- package/dist/packages/engine/agents/lib/execution-profile.d.ts +5 -5
- package/dist/packages/engine/agents/lib/execution-profile.js +3 -3
- package/dist/packages/engine/agents/lib/executors.d.ts +11 -11
- package/dist/packages/engine/agents/lib/render.js +4 -4
- package/dist/packages/engine/agents/lib/shells.d.ts +33 -31
- package/dist/packages/engine/agents/lib/shells.js +254 -250
- package/dist/packages/engine/agents/lib/types.d.ts +2 -2
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +3 -0
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.js +19 -0
- package/dist/packages/engine/agents/role-executors.d.ts +7 -7
- package/dist/packages/engine/agents/role-executors.js +2 -2
- package/dist/packages/engine/agents/role-router.d.ts +2 -2
- package/dist/packages/engine/agents/role-router.js +1 -1
- package/dist/packages/engine/build/artifact-counts.d.ts +1 -0
- package/dist/packages/engine/{compile → build}/artifact-counts.js +7 -7
- package/dist/packages/engine/{compile → build}/artifact-status.d.ts +8 -8
- package/dist/packages/engine/{compile → build}/artifact-status.js +19 -19
- package/dist/packages/engine/{compile → build}/billing-events.d.ts +4 -4
- package/dist/packages/engine/{compile → build}/billing-events.js +4 -4
- package/dist/packages/engine/build/build-execution.d.ts +4 -0
- package/dist/packages/engine/build/build-execution.js +4 -0
- package/dist/packages/engine/build/build-pipeline.d.ts +56 -0
- package/dist/packages/engine/{compile/compiled-pipeline.js → build/build-pipeline.js} +55 -55
- package/dist/packages/engine/build/build-plan-primitives.d.ts +2 -0
- package/dist/packages/engine/{compile/method-primitives.js → build/build-plan-primitives.js} +1 -1
- package/dist/packages/engine/build/build-plan-runs.d.ts +14 -0
- package/dist/packages/engine/build/build-plan-runs.js +31 -0
- package/dist/packages/engine/build/build-stage-plan.d.ts +16 -0
- package/dist/packages/engine/build/build-stage-plan.js +100 -0
- package/dist/packages/engine/build/build-stage-runner.d.ts +15 -0
- package/dist/packages/engine/{compile/compiled-stage-runner.js → build/build-stage-runner.js} +21 -21
- package/dist/packages/engine/build/build-target.d.ts +11 -0
- package/dist/packages/engine/build/build-target.js +16 -0
- package/dist/packages/engine/{compile → build}/check-evaluator.d.ts +4 -4
- package/dist/packages/engine/{compile → build}/check-evaluator.js +1 -1
- package/dist/packages/engine/{compile → build}/discovery.d.ts +2 -2
- package/dist/packages/engine/{compile → build}/discovery.js +4 -4
- package/dist/packages/engine/{compile → build}/index.d.ts +6 -6
- package/dist/packages/engine/{compile → build}/index.js +5 -5
- package/dist/packages/engine/{compile → build}/lib/schema.d.ts +79 -79
- package/dist/packages/engine/{compile → build}/lib/schema.js +71 -71
- package/dist/packages/engine/build/reset.d.ts +2 -0
- package/dist/packages/engine/build/reset.js +74 -0
- package/dist/packages/engine/{compile → build}/runtime-contracts.js +8 -8
- package/dist/packages/engine/build/runtime-inventory.d.ts +7 -0
- package/dist/packages/engine/{compile → build}/runtime-inventory.js +8 -8
- package/dist/packages/engine/{compile → build}/runtime-paths.js +6 -6
- package/dist/packages/engine/{compile → build}/runtime-prompt.js +11 -11
- package/dist/packages/engine/build/runtime-reconcile.d.ts +2 -0
- package/dist/packages/engine/{compile → build}/runtime-reconcile.js +18 -18
- package/dist/packages/engine/{compile → build}/runtime-runs.js +27 -27
- package/dist/packages/engine/{compile → build}/runtime-types.d.ts +10 -10
- package/dist/packages/engine/build/source-files.d.ts +46 -0
- package/dist/packages/engine/{compile → build}/source-files.js +32 -32
- package/dist/packages/engine/build/state-artifacts.d.ts +9 -0
- package/dist/packages/engine/build/state-artifacts.js +14 -0
- package/dist/packages/engine/build/state-health.d.ts +4 -0
- package/dist/packages/engine/{compile → build}/state-health.js +40 -40
- package/dist/packages/engine/build/state-io.d.ts +11 -0
- package/dist/packages/engine/{compile → build}/state-io.js +22 -22
- package/dist/packages/engine/build/state-paths.js +16 -0
- package/dist/packages/engine/build/state-view.d.ts +5 -0
- package/dist/packages/engine/{compile → build}/state-view.js +29 -29
- package/dist/packages/engine/build/state.d.ts +7 -0
- package/dist/packages/engine/build/state.js +12 -0
- package/dist/packages/engine/build/validate-verifiable-context.d.ts +27 -0
- package/dist/packages/engine/{compile/validate-compiled.js → build/validate-verifiable-context.js} +73 -73
- package/dist/packages/engine/{compile → build}/validate.d.ts +4 -4
- package/dist/packages/engine/{compile → build}/validate.js +27 -27
- package/dist/packages/engine/build/verifiable-context-paths.d.ts +47 -0
- package/dist/packages/engine/build/verifiable-context-paths.js +121 -0
- package/dist/packages/engine/build/verifiable-context-schema.d.ts +21 -0
- package/dist/packages/engine/build/verifiable-context-schema.js +126 -0
- package/dist/packages/engine/client.d.ts +16 -16
- package/dist/packages/engine/client.js +21 -21
- package/dist/packages/engine/cloud-seams.d.ts +3 -3
- package/dist/packages/engine/connection-config.js +1 -1
- package/dist/packages/engine/execution/index.d.ts +2 -2
- package/dist/packages/engine/execution/index.js +1 -1
- package/dist/packages/engine/execution/lib/schema.d.ts +100 -95
- package/dist/packages/engine/execution/lib/schema.js +31 -31
- package/dist/packages/engine/index.d.ts +7 -7
- package/dist/packages/engine/index.js +3 -3
- package/dist/packages/engine/instance-paths.d.ts +45 -39
- package/dist/packages/engine/instance-paths.js +54 -48
- package/dist/packages/engine/lib/schema.d.ts +1568 -484
- package/dist/packages/engine/lib/schema.js +172 -161
- package/dist/packages/engine/native-run-handlers.d.ts +12 -12
- package/dist/packages/engine/native-run-handlers.js +138 -136
- package/dist/packages/engine/preparation-store.d.ts +31 -36
- package/dist/packages/engine/preparation-store.js +42 -31
- package/dist/packages/engine/readiness-check-draft.d.ts +2 -2
- package/dist/packages/engine/readiness-check-draft.js +1 -1
- 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 +18 -17
- package/dist/packages/engine/routes.js +20 -19
- package/dist/packages/engine/run-observability.d.ts +5 -3
- package/dist/packages/engine/run-observability.js +103 -90
- package/dist/packages/engine/runtime-caches.d.ts +16 -16
- package/dist/packages/engine/runtime-caches.js +26 -26
- package/dist/packages/engine/runtime-event-applier.d.ts +2 -2
- package/dist/packages/engine/runtime-event-applier.js +1 -1
- package/dist/packages/engine/runtime-persistence.d.ts +9 -9
- package/dist/packages/engine/runtime-persistence.js +16 -16
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +15 -15
- package/dist/packages/engine/runtime-proposal-helpers.js +81 -85
- package/dist/packages/engine/runtime-resource-builders.d.ts +16 -11
- package/dist/packages/engine/runtime-resource-builders.js +32 -21
- package/dist/packages/engine/runtime.d.ts +53 -60
- package/dist/packages/engine/runtime.js +555 -453
- package/dist/packages/engine/server.d.ts +2 -2
- package/dist/packages/engine/server.js +226 -143
- package/dist/packages/engine/service-registry.d.ts +5 -17
- package/dist/packages/engine/service-registry.js +5 -20
- package/dist/packages/engine/verify/lib/schema.d.ts +19 -19
- package/dist/packages/engine/verify/lib/schema.js +36 -8
- package/dist/packages/engine/verify/readiness-check-run.d.ts +15 -16
- package/dist/packages/engine/verify/readiness-check-run.js +46 -46
- package/dist/packages/engine/verify/verify-execution.d.ts +3 -3
- package/dist/packages/engine/verify/verify-execution.js +10 -10
- package/dist/packages/engine/verify/verify-paths.d.ts +4 -4
- package/dist/packages/engine/verify/verify-paths.js +17 -17
- package/dist/packages/engine/verify/verify-sandbox.d.ts +1 -1
- package/dist/packages/engine/verify/verify-sandbox.js +26 -26
- package/dist/packages/engine/verify/verify-targets.d.ts +2 -2
- package/dist/packages/engine/verify/verify-targets.js +17 -17
- package/dist/packages/engine/verify/verify-types.d.ts +2 -2
- package/dist/packages/engine/verify/verify.d.ts +1 -1
- package/dist/packages/engine/verify/verify.js +1 -1
- package/dist/packages/engine/wire-schemas.d.ts +42 -40
- package/dist/packages/engine/wire-schemas.js +13 -13
- package/dist/packages/project/index.d.ts +1 -1
- package/dist/packages/project/interf-bootstrap.d.ts +1 -1
- package/dist/packages/project/interf-bootstrap.js +1 -1
- package/dist/packages/project/interf-detect.d.ts +11 -11
- package/dist/packages/project/interf-detect.js +36 -36
- package/dist/packages/project/interf-scaffold.d.ts +3 -3
- package/dist/packages/project/interf-scaffold.js +72 -72
- package/dist/packages/project/interf.d.ts +4 -4
- package/dist/packages/project/interf.js +3 -3
- package/dist/packages/project/lib/schema.d.ts +205 -12
- package/dist/packages/project/lib/schema.js +59 -14
- package/dist/packages/project/preparation-entries.d.ts +3 -3
- package/dist/packages/project/preparation-entries.js +19 -19
- package/dist/packages/project/source-config.d.ts +10 -10
- package/dist/packages/project/source-config.js +62 -58
- package/dist/packages/project/source-folders.js +1 -1
- package/package.json +14 -17
- package/public-repo/CONTRIBUTING.md +47 -0
- package/public-repo/README.md +327 -0
- package/public-repo/SECURITY.md +67 -0
- package/public-repo/build-plans/interf-default/README.md +33 -0
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +27 -0
- package/{builtin-methods/interf-default/compile → public-repo/build-plans/interf-default/build}/stages/structure/SKILL.md +2 -2
- package/{builtin-methods/interf-default/compile → public-repo/build-plans/interf-default/build}/stages/summarize/SKILL.md +1 -1
- package/{builtin-methods/interf-default/method.json → public-repo/build-plans/interf-default/build-plan.json} +16 -16
- package/{builtin-methods/interf-default/method.schema.json → public-repo/build-plans/interf-default/build-plan.schema.json} +4 -4
- package/public-repo/build-plans/interf-default/improve/SKILL.md +18 -0
- package/public-repo/build-plans/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 +32 -0
- package/public-repo/plugins/interf/skills/interf/SKILL.md +376 -0
- package/public-repo/skills/interf/SKILL.md +376 -0
- package/README.md +0 -311
- package/agent-skills/interf-actions/SKILL.md +0 -185
- package/agent-skills/interf-actions/references/cli.md +0 -243
- package/builtin-methods/interf-default/README.md +0 -29
- package/builtin-methods/interf-default/compile/stages/shape/SKILL.md +0 -31
- package/builtin-methods/interf-default/improve/SKILL.md +0 -18
- package/builtin-methods/interf-default/use/query/SKILL.md +0 -28
- package/dist/cli/commands/method.d.ts +0 -2
- package/dist/cli/commands/method.js +0 -113
- package/dist/cli/commands/verify.d.ts +0 -10
- package/dist/compiler-ui/404.html +0 -1
- package/dist/compiler-ui/__next.__PAGE__.txt +0 -10
- package/dist/compiler-ui/__next._head.txt +0 -5
- 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/0_c_tvh-cukjz.css +0 -3
- 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/0f_geuwdesg_c.js +0 -114
- 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/0xxmf45eskdt~.css +0 -1
- package/dist/compiler-ui/_next/static/chunks/14wtz~vq25~qq.js +0 -1
- package/dist/compiler-ui/_next/static/chunks/turbopack-0.uq1k8c0j4s..js +0 -1
- package/dist/compiler-ui/_not-found/__next._head.txt +0 -5
- package/dist/compiler-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/compiler-ui/_not-found.html +0 -1
- package/dist/compiler-ui/index.html +0 -1
- package/dist/packages/engine/agents/lib/compiled-bootstrap.d.ts +0 -3
- package/dist/packages/engine/agents/lib/compiled-bootstrap.js +0 -19
- package/dist/packages/engine/compile/artifact-counts.d.ts +0 -1
- package/dist/packages/engine/compile/compiled-compile.d.ts +0 -4
- package/dist/packages/engine/compile/compiled-compile.js +0 -4
- package/dist/packages/engine/compile/compiled-paths.d.ts +0 -47
- package/dist/packages/engine/compile/compiled-paths.js +0 -121
- package/dist/packages/engine/compile/compiled-pipeline.d.ts +0 -56
- package/dist/packages/engine/compile/compiled-schema.d.ts +0 -21
- package/dist/packages/engine/compile/compiled-schema.js +0 -126
- package/dist/packages/engine/compile/compiled-stage-plan.d.ts +0 -16
- package/dist/packages/engine/compile/compiled-stage-plan.js +0 -100
- package/dist/packages/engine/compile/compiled-stage-runner.d.ts +0 -15
- package/dist/packages/engine/compile/compiled-target.d.ts +0 -11
- package/dist/packages/engine/compile/compiled-target.js +0 -16
- package/dist/packages/engine/compile/method-primitives.d.ts +0 -2
- package/dist/packages/engine/compile/method-runs.d.ts +0 -14
- package/dist/packages/engine/compile/method-runs.js +0 -31
- package/dist/packages/engine/compile/reset.d.ts +0 -2
- package/dist/packages/engine/compile/reset.js +0 -74
- package/dist/packages/engine/compile/runtime-inventory.d.ts +0 -7
- package/dist/packages/engine/compile/runtime-reconcile.d.ts +0 -2
- package/dist/packages/engine/compile/source-files.d.ts +0 -46
- package/dist/packages/engine/compile/state-artifacts.d.ts +0 -9
- package/dist/packages/engine/compile/state-artifacts.js +0 -14
- package/dist/packages/engine/compile/state-health.d.ts +0 -4
- package/dist/packages/engine/compile/state-io.d.ts +0 -11
- package/dist/packages/engine/compile/state-paths.js +0 -16
- package/dist/packages/engine/compile/state-view.d.ts +0 -5
- package/dist/packages/engine/compile/state.d.ts +0 -7
- package/dist/packages/engine/compile/state.js +0 -12
- package/dist/packages/engine/compile/validate-compiled.d.ts +0 -27
- package/dist/packages/methods/authoring/index.d.ts +0 -4
- package/dist/packages/methods/authoring/index.js +0 -4
- package/dist/packages/methods/authoring/method-authoring.d.ts +0 -34
- package/dist/packages/methods/authoring/method-edit-session.d.ts +0 -18
- package/dist/packages/methods/authoring/method-improvement.d.ts +0 -23
- package/dist/packages/methods/authoring/method-improvement.js +0 -217
- package/dist/packages/methods/index.d.ts +0 -2
- package/dist/packages/methods/index.js +0 -2
- package/dist/packages/methods/method-resolution.d.ts +0 -6
- package/dist/packages/methods/method-resolution.js +0 -7
- package/dist/packages/methods/package/builtin-compiled-method.d.ts +0 -37
- package/dist/packages/methods/package/builtin-compiled-method.js +0 -91
- package/dist/packages/methods/package/interf-method-package.d.ts +0 -31
- package/dist/packages/methods/package/interf-method-package.js +0 -466
- package/dist/packages/methods/package/local-methods.d.ts +0 -73
- package/dist/packages/methods/package/local-methods.js +0 -457
- package/dist/packages/methods/package/method-definitions.d.ts +0 -61
- package/dist/packages/methods/package/method-definitions.js +0 -214
- package/dist/packages/methods/package/method-review-paths.d.ts +0 -10
- package/dist/packages/methods/package/method-review-paths.js +0 -31
- package/dist/packages/methods/package/user-methods.d.ts +0 -17
- package/dist/packages/methods/package/user-methods.js +0 -77
- /package/dist/{compiler-ui/_next/static/6qyE1u9m_oBUkvAhhoCmO → interf-ui/_next/static/_qJKnA0dammQ306MG_zMq}/_buildManifest.js +0 -0
- /package/dist/{compiler-ui/_next/static/6qyE1u9m_oBUkvAhhoCmO → interf-ui/_next/static/_qJKnA0dammQ306MG_zMq}/_clientMiddlewareManifest.js +0 -0
- /package/dist/{compiler-ui/_next/static/6qyE1u9m_oBUkvAhhoCmO → interf-ui/_next/static/_qJKnA0dammQ306MG_zMq}/_ssgManifest.js +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/chunks/03~yq9q893hmn.js +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- /package/dist/{compiler-ui → interf-ui}/_next/static/media/worker.102zas1s52_pf.js +0 -0
- /package/dist/packages/{methods/authoring/lib/method-edit-utils.js → build-plans/authoring/lib/build-plan-edit-utils.js} +0 -0
- /package/dist/packages/{methods → build-plans}/package/lib/package-root.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime-contracts.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime-paths.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime-prompt.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime-runs.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime-types.js +0 -0
- /package/dist/packages/engine/{compile → build}/runtime.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/runtime.js +0 -0
- /package/dist/packages/engine/{compile → build}/state-paths.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/validate-helpers.d.ts +0 -0
- /package/dist/packages/engine/{compile → build}/validate-helpers.js +0 -0
- /package/{LICENSE.md → public-repo/LICENSE.md} +0 -0
- /package/{TRADEMARKS.md → public-repo/TRADEMARKS.md} +0 -0
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { renderVerifiableContextQuerySkill } from "../../engine/agents/lib/shells.js";
|
|
4
|
+
import { copyBuildPlanPackageDirectory, isPortableBuildPlanPackage, patchBuildPlanPackageMetadata, resolveBuildPlanPackageSourcePath, buildPlanDefinitionPath, mergeStagePolicyNotesForStages, } from "./local-build-plans.js";
|
|
5
|
+
import { getBuildPlan, } from "./build-plan-definitions.js";
|
|
6
|
+
import { CONTEXT_INTERFACE_FILE, deriveBuildPlanInputsFromContextInterface, listContextInterfaceArtifacts, summarizeContextInterface, writeContextInterface, writeContextInterfaceFile, } from "./context-interface.js";
|
|
7
|
+
import { buildPlanPackagePathForVerifiableContext } from "../../engine/build/verifiable-context-paths.js";
|
|
8
|
+
function writeBuildPlanStarterDocs(dirPath, docs, options) {
|
|
9
|
+
for (const doc of docs ?? []) {
|
|
10
|
+
const targetPath = join(dirPath, doc.relativePath);
|
|
11
|
+
if (!options.overwrite && existsSync(targetPath))
|
|
12
|
+
continue;
|
|
13
|
+
mkdirSync(dirname(targetPath), { recursive: true });
|
|
14
|
+
writeFileSync(targetPath, doc.content);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function writeBuildPlanPackageJson(rootPath, buildPlan, options) {
|
|
18
|
+
const targetPath = join(rootPath, "build-plan.json");
|
|
19
|
+
if (!options.overwrite && existsSync(targetPath))
|
|
20
|
+
return;
|
|
21
|
+
const inputs = buildPlan.inputs?.length
|
|
22
|
+
? buildPlan.inputs
|
|
23
|
+
: deriveBuildPlanInputsFromContextInterface(buildPlan.contextInterface ?? buildPlan.schema);
|
|
24
|
+
writeFileSync(targetPath, `${JSON.stringify({
|
|
25
|
+
id: buildPlan.id,
|
|
26
|
+
type: "build-plan",
|
|
27
|
+
engine_api: buildPlan.engineApi ?? {
|
|
28
|
+
kind: "build",
|
|
29
|
+
version: 1,
|
|
30
|
+
},
|
|
31
|
+
...(buildPlan.purpose
|
|
32
|
+
? {
|
|
33
|
+
purpose: {
|
|
34
|
+
label: buildPlan.purpose.label,
|
|
35
|
+
task_hint: buildPlan.purpose.taskHint,
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
: {}),
|
|
39
|
+
...(inputs.length > 0 ? { inputs } : {}),
|
|
40
|
+
label: buildPlan.label,
|
|
41
|
+
hint: buildPlan.hint,
|
|
42
|
+
stages: buildPlan.stages.map((stage) => ({
|
|
43
|
+
id: stage.id,
|
|
44
|
+
label: stage.label,
|
|
45
|
+
description: stage.description,
|
|
46
|
+
contract_type: stage.contractType,
|
|
47
|
+
skill_dir: stage.skillDir,
|
|
48
|
+
reads: stage.reads,
|
|
49
|
+
writes: stage.writes,
|
|
50
|
+
})),
|
|
51
|
+
...(buildPlan.stagePolicyNotes ? { stage_policy_notes: buildPlan.stagePolicyNotes } : {}),
|
|
52
|
+
}, null, 2)}\n`);
|
|
53
|
+
}
|
|
54
|
+
function renderBuildPlanReadme(buildPlan) {
|
|
55
|
+
const contextInterface = buildPlan.contextInterface ?? buildPlan.schema ?? null;
|
|
56
|
+
const stageLines = buildPlan.stages
|
|
57
|
+
.map((stage) => `- \`${stage.id}\` — ${stage.description} (${stage.contractType}; reads: ${stage.reads.join(", ")}; writes: ${stage.writes.join(", ")})`)
|
|
58
|
+
.join("\n");
|
|
59
|
+
const interfaceSummary = contextInterface
|
|
60
|
+
? summarizeContextInterface(contextInterface)
|
|
61
|
+
: null;
|
|
62
|
+
const contextInterfaceArtifacts = contextInterface
|
|
63
|
+
? listContextInterfaceArtifacts(contextInterface)
|
|
64
|
+
: [];
|
|
65
|
+
const contextInterfaceLines = contextInterfaceArtifacts.length > 0
|
|
66
|
+
? contextInterfaceArtifacts
|
|
67
|
+
.map((artifact) => `- \`${artifact.id}\` — ${artifact.role} ${artifact.kind} Artifact at \`${artifact.path}\`: ${artifact.description}`)
|
|
68
|
+
.join("\n")
|
|
69
|
+
: null;
|
|
70
|
+
const inputs = buildPlan.inputs?.length
|
|
71
|
+
? buildPlan.inputs
|
|
72
|
+
: deriveBuildPlanInputsFromContextInterface(contextInterface);
|
|
73
|
+
const inputLines = inputs.length > 0
|
|
74
|
+
? inputs
|
|
75
|
+
.map((input) => `- \`${input.id}\` — ${input.label}: ${input.description}${input.required ? " (required)" : ""}${input.examples?.length ? ` Example inputs: ${input.examples.join("; ")}` : ""}`)
|
|
76
|
+
.join("\n")
|
|
77
|
+
: null;
|
|
78
|
+
const contextInterfaceSummaryLines = interfaceSummary
|
|
79
|
+
? [
|
|
80
|
+
`- Input Artifacts: ${interfaceSummary.inputArtifacts.length > 0 ? interfaceSummary.inputArtifacts.map((artifact) => `\`${artifact.id}\``).join(", ") : "none"}`,
|
|
81
|
+
`- Working Artifacts: ${interfaceSummary.workingArtifacts.length > 0 ? interfaceSummary.workingArtifacts.map((artifact) => `\`${artifact.id}\``).join(", ") : "none"}`,
|
|
82
|
+
`- Output Artifacts: ${interfaceSummary.outputArtifacts.length > 0 ? interfaceSummary.outputArtifacts.map((artifact) => `\`${artifact.id}\``).join(", ") : "none"}`,
|
|
83
|
+
`- Runtime Artifacts: ${interfaceSummary.runtimeArtifacts.length > 0 ? interfaceSummary.runtimeArtifacts.map((artifact) => `\`${artifact.id}\``).join(", ") : "none"}`,
|
|
84
|
+
].join("\n")
|
|
85
|
+
: null;
|
|
86
|
+
return [
|
|
87
|
+
`# ${buildPlan.label}`,
|
|
88
|
+
"",
|
|
89
|
+
buildPlan.hint,
|
|
90
|
+
...(buildPlan.purpose
|
|
91
|
+
? [
|
|
92
|
+
"",
|
|
93
|
+
"## Purpose",
|
|
94
|
+
"",
|
|
95
|
+
`- ${buildPlan.purpose.label}`,
|
|
96
|
+
`- ${buildPlan.purpose.taskHint}`,
|
|
97
|
+
]
|
|
98
|
+
: []),
|
|
99
|
+
...(inputLines
|
|
100
|
+
? [
|
|
101
|
+
"",
|
|
102
|
+
"## Inputs",
|
|
103
|
+
"",
|
|
104
|
+
inputLines,
|
|
105
|
+
]
|
|
106
|
+
: []),
|
|
107
|
+
...(contextInterfaceLines
|
|
108
|
+
? [
|
|
109
|
+
"",
|
|
110
|
+
"## Context Interface",
|
|
111
|
+
"",
|
|
112
|
+
...(contextInterfaceSummaryLines
|
|
113
|
+
? [
|
|
114
|
+
contextInterfaceSummaryLines,
|
|
115
|
+
"",
|
|
116
|
+
]
|
|
117
|
+
: []),
|
|
118
|
+
"Artifact map:",
|
|
119
|
+
"",
|
|
120
|
+
contextInterfaceLines,
|
|
121
|
+
]
|
|
122
|
+
: []),
|
|
123
|
+
"",
|
|
124
|
+
"## Package",
|
|
125
|
+
"",
|
|
126
|
+
"- `build-plan.json` = Build Plan stage graph, local-engine API target, and build contract mapping",
|
|
127
|
+
"- `build-plan.schema.json` = deterministic context interface for the Build Plan",
|
|
128
|
+
"- `improve/`, `build/stages/`, and `use/query/` = human-readable authoring docs",
|
|
129
|
+
"- Build Plans are standalone: explicit stages, schema, and docs live together in this folder",
|
|
130
|
+
"- Interf projects native agent shells from these docs for query use, stage execution, and Build Plan improvement loops",
|
|
131
|
+
"",
|
|
132
|
+
"## Stages",
|
|
133
|
+
"",
|
|
134
|
+
stageLines,
|
|
135
|
+
"",
|
|
136
|
+
"Interf runs the local copy of this Build Plan directly from `.interf/build-plan/` inside each verifiable-context output.",
|
|
137
|
+
"",
|
|
138
|
+
].join("\n");
|
|
139
|
+
}
|
|
140
|
+
function renderDerivedBuildPlanReadme(options) {
|
|
141
|
+
return [
|
|
142
|
+
`# ${options.label}`,
|
|
143
|
+
"",
|
|
144
|
+
options.hint,
|
|
145
|
+
"",
|
|
146
|
+
`This Build Plan package was forked from \`${options.baseBuildPlanId}\` and materialized as a standalone package for this kind of agent work.`,
|
|
147
|
+
"It starts with that Build Plan topology; edit the package when the agent work needs different stages, Artifacts, or checks.",
|
|
148
|
+
"",
|
|
149
|
+
"Interf runs the local copy of this package directly. Keep purpose, inputs, context interface, and stage docs self-contained in this folder instead of relying on runtime inheritance.",
|
|
150
|
+
"",
|
|
151
|
+
"## Emphasis",
|
|
152
|
+
"",
|
|
153
|
+
...(options.emphasis.length > 0
|
|
154
|
+
? options.emphasis.map((entry) => `- ${entry.stageId} (${entry.label}): ${entry.notes.join("; ")}`)
|
|
155
|
+
: ["- No stage-specific emphasis was added yet."]),
|
|
156
|
+
"",
|
|
157
|
+
].join("\n");
|
|
158
|
+
}
|
|
159
|
+
function renderSeedBuildPlanReadme(options) {
|
|
160
|
+
return [
|
|
161
|
+
`# ${options.label}`,
|
|
162
|
+
"",
|
|
163
|
+
options.hint,
|
|
164
|
+
"",
|
|
165
|
+
`This Build Plan package was forked from \`${options.baseBuildPlanId}\` as a standalone local package.`,
|
|
166
|
+
"It starts with that Build Plan topology; edit the package when the agent work needs different stages, Artifacts, or checks.",
|
|
167
|
+
"",
|
|
168
|
+
"Interf runs the local copy of this package directly. Refine purpose, inputs, context interface, and stage instructions in this folder instead of relying on inheritance.",
|
|
169
|
+
"",
|
|
170
|
+
].join("\n");
|
|
171
|
+
}
|
|
172
|
+
function renderScratchBuildPlanReadme(options) {
|
|
173
|
+
return [
|
|
174
|
+
`# ${options.label}`,
|
|
175
|
+
"",
|
|
176
|
+
options.hint,
|
|
177
|
+
"",
|
|
178
|
+
"This Build Plan package is a neutral from-scratch authoring scaffold.",
|
|
179
|
+
"",
|
|
180
|
+
"It is not copied from `interf-default`, and its placeholder stage is not a recommended topology.",
|
|
181
|
+
"Replace purpose, inputs, context interface, stages, stage docs, proof rules, and query guidance with the Build Plan this source data and task actually need.",
|
|
182
|
+
"",
|
|
183
|
+
].join("\n");
|
|
184
|
+
}
|
|
185
|
+
function renderImproveSkill(buildPlan) {
|
|
186
|
+
return [
|
|
187
|
+
"# Build Plan Improvement",
|
|
188
|
+
"",
|
|
189
|
+
`Build Plan package: ${buildPlan.id}`,
|
|
190
|
+
"",
|
|
191
|
+
"This file is the editable authoring source for Interf's generated native Build Plan improver shell.",
|
|
192
|
+
"The improver edits this local package directly.",
|
|
193
|
+
"",
|
|
194
|
+
"Default loop:",
|
|
195
|
+
"1. Read the loop context first.",
|
|
196
|
+
"2. Review preserved stage shells, runtime logs, and saved test runs from failed attempts.",
|
|
197
|
+
"3. Edit only the local Build Plan package for this verifiable context to create a better Build Plan implementation for this kind of agent work.",
|
|
198
|
+
`4. Keep purpose, inputs, \`build-plan.json\`, \`${CONTEXT_INTERFACE_FILE}\`, and any changed stage docs aligned.`,
|
|
199
|
+
"",
|
|
200
|
+
"Guardrails:",
|
|
201
|
+
"- do not edit checks, test specs, or source artifacts",
|
|
202
|
+
"- do not hardcode expected answers into Build Plan docs",
|
|
203
|
+
"- keep this package standalone; do not rely on runtime inheritance",
|
|
204
|
+
"- keep the Build Plan stack coherent: purpose, inputs, context interface, and stages should describe the same job",
|
|
205
|
+
"- prefer small, defensible Build Plan changes over random churn",
|
|
206
|
+
"",
|
|
207
|
+
].join("\n");
|
|
208
|
+
}
|
|
209
|
+
function renderStageSkill(buildPlan, stage) {
|
|
210
|
+
const notes = buildPlan.stagePolicyNotes?.[stage.id] ?? [];
|
|
211
|
+
const abstractRules = stage.contractType === "build-file-evidence"
|
|
212
|
+
? [
|
|
213
|
+
"- Valid abstract forms for deterministic validation are:",
|
|
214
|
+
' - frontmatter key `"abstract"` with a real sentence, or',
|
|
215
|
+
" - a markdown heading `## Abstract` followed by at least one sentence",
|
|
216
|
+
"- A bare `Abstract` label without markdown heading syntax does not count.",
|
|
217
|
+
]
|
|
218
|
+
: [];
|
|
219
|
+
return [
|
|
220
|
+
`# ${stage.label}`,
|
|
221
|
+
"",
|
|
222
|
+
stage.description,
|
|
223
|
+
"",
|
|
224
|
+
"## Stage Contract",
|
|
225
|
+
"",
|
|
226
|
+
`- Contract type: \`${stage.contractType}\``,
|
|
227
|
+
`- Reads Artifacts: ${stage.reads.map((artifactId) => `\`${artifactId}\``).join(", ")}`,
|
|
228
|
+
`- Writes Artifacts: ${stage.writes.map((artifactId) => `\`${artifactId}\``).join(", ")}`,
|
|
229
|
+
"",
|
|
230
|
+
"## Requirements",
|
|
231
|
+
"",
|
|
232
|
+
"- Treat `build-plan.json` and `build-plan.schema.json` as the authoritative package contract for this stage.",
|
|
233
|
+
"- Read only from the declared input Artifacts unless this package explicitly documents broader Build Plan behavior.",
|
|
234
|
+
"- Write only inside the declared output Artifacts for this stage. Do not invent undeclared Artifacts or implicit outputs.",
|
|
235
|
+
"- Keep stage instructions, artifact ownership, and Build Plan checks aligned when you change this stage.",
|
|
236
|
+
"- Treat runtime files as proof and execution state, not as the source of truth for Build Plan behavior.",
|
|
237
|
+
"- Prefer direct file-reading and search tools over shell commands for routine file inspection.",
|
|
238
|
+
...abstractRules,
|
|
239
|
+
"",
|
|
240
|
+
...(notes.length > 0
|
|
241
|
+
? [
|
|
242
|
+
"## Notes",
|
|
243
|
+
"",
|
|
244
|
+
...notes.map((note) => `- ${note}`),
|
|
245
|
+
"",
|
|
246
|
+
]
|
|
247
|
+
: []),
|
|
248
|
+
].join("\n");
|
|
249
|
+
}
|
|
250
|
+
export function writeBuildPlanPackageForVerifiableContext(verifiableContextPath, buildPlan) {
|
|
251
|
+
writeBuildPlanPackageToDir(buildPlanPackagePathForVerifiableContext(verifiableContextPath), buildPlan);
|
|
252
|
+
}
|
|
253
|
+
export function writeBuildPlanPackageToDir(buildPlanDir, buildPlan, options = {}) {
|
|
254
|
+
const overwrite = options.overwrite ?? true;
|
|
255
|
+
mkdirSync(join(buildPlanDir, "improve"), { recursive: true });
|
|
256
|
+
mkdirSync(join(buildPlanDir, "use", "query"), { recursive: true });
|
|
257
|
+
mkdirSync(join(buildPlanDir, "build", "stages"), { recursive: true });
|
|
258
|
+
for (const stage of buildPlan.stages) {
|
|
259
|
+
mkdirSync(join(buildPlanDir, "build", "stages", stage.skillDir), { recursive: true });
|
|
260
|
+
}
|
|
261
|
+
writeBuildPlanPackageJson(buildPlanDir, buildPlan, { overwrite });
|
|
262
|
+
if (overwrite || !existsSync(join(buildPlanDir, CONTEXT_INTERFACE_FILE))) {
|
|
263
|
+
const contextInterface = buildPlan.contextInterface ?? buildPlan.schema;
|
|
264
|
+
if (contextInterface) {
|
|
265
|
+
writeContextInterface(buildPlanDir, {
|
|
266
|
+
...contextInterface,
|
|
267
|
+
label: contextInterface.label || `${buildPlan.label} Build Plan schema`,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
writeContextInterfaceFile(buildPlanDir, buildPlan.stages, `${buildPlan.label} Build Plan schema`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (overwrite || !existsSync(join(buildPlanDir, "README.md"))) {
|
|
275
|
+
writeFileSync(join(buildPlanDir, "README.md"), renderBuildPlanReadme(buildPlan));
|
|
276
|
+
}
|
|
277
|
+
if (overwrite || !existsSync(join(buildPlanDir, "improve", "SKILL.md"))) {
|
|
278
|
+
writeFileSync(join(buildPlanDir, "improve", "SKILL.md"), renderImproveSkill(buildPlan));
|
|
279
|
+
}
|
|
280
|
+
if (overwrite || !existsSync(join(buildPlanDir, "use", "query", "SKILL.md"))) {
|
|
281
|
+
writeFileSync(join(buildPlanDir, "use", "query", "SKILL.md"), renderVerifiableContextQuerySkill());
|
|
282
|
+
}
|
|
283
|
+
for (const stage of buildPlan.stages) {
|
|
284
|
+
const targetPath = join(buildPlanDir, "build", "stages", stage.skillDir, "SKILL.md");
|
|
285
|
+
if (overwrite || !existsSync(targetPath)) {
|
|
286
|
+
writeFileSync(targetPath, renderStageSkill(buildPlan, stage));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
writeBuildPlanStarterDocs(buildPlanDir, buildPlan.starterDocs, { overwrite });
|
|
290
|
+
}
|
|
291
|
+
export function seedVerifiableContextBuildPlanPackage(options) {
|
|
292
|
+
const resolvedBuildPlan = getBuildPlan(options.buildPlanId, {
|
|
293
|
+
prepDataDir: options.prepDataDir,
|
|
294
|
+
});
|
|
295
|
+
const sourceBuildPlanPath = resolveBuildPlanPackageSourcePath(options.prepDataDir, resolvedBuildPlan.id);
|
|
296
|
+
if (sourceBuildPlanPath && isPortableBuildPlanPackage(sourceBuildPlanPath)) {
|
|
297
|
+
// Portable seed packages can be copied directly because Build runs the
|
|
298
|
+
// local package folder without reading source-root Build Plan packages.
|
|
299
|
+
copyBuildPlanPackageDirectory(sourceBuildPlanPath, buildPlanPackagePathForVerifiableContext(options.verifiableContextPath));
|
|
300
|
+
patchBuildPlanPackageMetadata(buildPlanPackagePathForVerifiableContext(options.verifiableContextPath), {
|
|
301
|
+
id: resolvedBuildPlan.id,
|
|
302
|
+
inputs: resolvedBuildPlan.inputs,
|
|
303
|
+
label: resolvedBuildPlan.label,
|
|
304
|
+
hint: resolvedBuildPlan.hint,
|
|
305
|
+
stagePolicyNotes: resolvedBuildPlan.stagePolicyNotes,
|
|
306
|
+
});
|
|
307
|
+
// The verifiable-context README is always derived from the resolved Build Plan;
|
|
308
|
+
// any hand-authored README belongs in the Preparation-local draft at
|
|
309
|
+
// <prep-data>/build-plans/<id>/, not in the built copy.
|
|
310
|
+
writeFileSync(join(buildPlanPackagePathForVerifiableContext(options.verifiableContextPath), "README.md"), renderBuildPlanReadme(resolvedBuildPlan));
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// Legacy or partially-defined seed packages are resolved once and
|
|
314
|
+
// materialized into a standalone local package.
|
|
315
|
+
writeBuildPlanPackageForVerifiableContext(options.verifiableContextPath, resolvedBuildPlan);
|
|
316
|
+
}
|
|
317
|
+
export function createLocalBuildPlanPackageFromTemplate(options) {
|
|
318
|
+
const targetPath = seedLocalBuildPlanPackageFromBase({
|
|
319
|
+
prepDataDir: options.prepDataDir,
|
|
320
|
+
baseBuildPlanId: options.baseBuildPlanId,
|
|
321
|
+
buildPlanId: options.buildPlanId,
|
|
322
|
+
label: options.label,
|
|
323
|
+
hint: options.hint,
|
|
324
|
+
});
|
|
325
|
+
const baseBuildPlan = getBuildPlan(options.baseBuildPlanId, {
|
|
326
|
+
prepDataDir: options.prepDataDir,
|
|
327
|
+
});
|
|
328
|
+
const stagePolicyNotes = mergeStagePolicyNotesForStages(baseBuildPlan.stages, baseBuildPlan.stagePolicyNotes, options.stagePolicyNotes);
|
|
329
|
+
patchBuildPlanPackageMetadata(targetPath, {
|
|
330
|
+
id: options.buildPlanId,
|
|
331
|
+
label: options.label,
|
|
332
|
+
hint: options.hint,
|
|
333
|
+
stagePolicyNotes,
|
|
334
|
+
});
|
|
335
|
+
writeFileSync(join(targetPath, "README.md"), renderDerivedBuildPlanReadme({
|
|
336
|
+
label: options.label,
|
|
337
|
+
hint: options.hint,
|
|
338
|
+
baseBuildPlanId: options.baseBuildPlanId,
|
|
339
|
+
emphasis: baseBuildPlan.stages
|
|
340
|
+
.map((stage) => ({
|
|
341
|
+
stageId: stage.id,
|
|
342
|
+
label: stage.label,
|
|
343
|
+
notes: stagePolicyNotes?.[stage.id] ?? [],
|
|
344
|
+
}))
|
|
345
|
+
.filter((entry) => entry.notes.length > 0),
|
|
346
|
+
}));
|
|
347
|
+
return targetPath;
|
|
348
|
+
}
|
|
349
|
+
export function seedLocalBuildPlanPackageFromBase(options) {
|
|
350
|
+
const baseBuildPlan = getBuildPlan(options.baseBuildPlanId, {
|
|
351
|
+
prepDataDir: options.prepDataDir,
|
|
352
|
+
});
|
|
353
|
+
const sourceBuildPlanPath = resolveBuildPlanPackageSourcePath(options.prepDataDir, options.baseBuildPlanId);
|
|
354
|
+
const targetPath = buildPlanDefinitionPath(options.prepDataDir, options.buildPlanId);
|
|
355
|
+
if (sourceBuildPlanPath && isPortableBuildPlanPackage(sourceBuildPlanPath)) {
|
|
356
|
+
// Copy directly when the base package is already portable and standalone.
|
|
357
|
+
copyBuildPlanPackageDirectory(sourceBuildPlanPath, targetPath);
|
|
358
|
+
patchBuildPlanPackageMetadata(targetPath, {
|
|
359
|
+
id: options.buildPlanId,
|
|
360
|
+
inputs: baseBuildPlan.inputs,
|
|
361
|
+
label: options.label,
|
|
362
|
+
hint: options.hint,
|
|
363
|
+
});
|
|
364
|
+
writeFileSync(join(targetPath, "README.md"), renderSeedBuildPlanReadme({
|
|
365
|
+
label: options.label,
|
|
366
|
+
hint: options.hint,
|
|
367
|
+
baseBuildPlanId: options.baseBuildPlanId,
|
|
368
|
+
}));
|
|
369
|
+
return targetPath;
|
|
370
|
+
}
|
|
371
|
+
// Base packages are materialized immediately so the new local Build Plan package
|
|
372
|
+
// is standalone from its first write.
|
|
373
|
+
const localBuildPlan = {
|
|
374
|
+
...baseBuildPlan,
|
|
375
|
+
id: options.buildPlanId,
|
|
376
|
+
label: options.label,
|
|
377
|
+
hint: options.hint,
|
|
378
|
+
recommended: false,
|
|
379
|
+
scope: "local",
|
|
380
|
+
starterDocs: [
|
|
381
|
+
{
|
|
382
|
+
relativePath: "README.md",
|
|
383
|
+
content: renderSeedBuildPlanReadme({
|
|
384
|
+
label: options.label,
|
|
385
|
+
hint: options.hint,
|
|
386
|
+
baseBuildPlanId: options.baseBuildPlanId,
|
|
387
|
+
}),
|
|
388
|
+
},
|
|
389
|
+
...(baseBuildPlan.starterDocs ?? []).filter((doc) => doc.relativePath !== "README.md"),
|
|
390
|
+
],
|
|
391
|
+
};
|
|
392
|
+
writeBuildPlanPackageToDir(targetPath, localBuildPlan);
|
|
393
|
+
return targetPath;
|
|
394
|
+
}
|
|
395
|
+
export function createScratchLocalBuildPlanPackage(options) {
|
|
396
|
+
const targetPath = buildPlanDefinitionPath(options.prepDataDir, options.buildPlanId);
|
|
397
|
+
const buildPlan = {
|
|
398
|
+
id: options.buildPlanId,
|
|
399
|
+
engineApi: {
|
|
400
|
+
kind: "build",
|
|
401
|
+
version: 1,
|
|
402
|
+
},
|
|
403
|
+
purpose: {
|
|
404
|
+
label: "From-scratch Build Plan draft",
|
|
405
|
+
taskHint: "Replace this neutral scaffold with the Build Plan stages, outputs, and proof rules this agent work requires.",
|
|
406
|
+
},
|
|
407
|
+
inputs: [
|
|
408
|
+
{
|
|
409
|
+
id: "source",
|
|
410
|
+
label: "Source",
|
|
411
|
+
description: "Source references assigned to each stage by Interf runtime.",
|
|
412
|
+
required: true,
|
|
413
|
+
},
|
|
414
|
+
],
|
|
415
|
+
label: options.label,
|
|
416
|
+
hint: options.hint,
|
|
417
|
+
recommended: false,
|
|
418
|
+
scope: "local",
|
|
419
|
+
contextInterface: {
|
|
420
|
+
kind: "build-plan-schema",
|
|
421
|
+
version: 1,
|
|
422
|
+
target_type: "verifiable-context",
|
|
423
|
+
label: `${options.label} Build Plan schema`,
|
|
424
|
+
artifacts: [
|
|
425
|
+
{
|
|
426
|
+
id: "draft-context",
|
|
427
|
+
description: "Temporary placeholder Artifact for the neutral authoring scaffold. Replace it with task-specific Artifacts.",
|
|
428
|
+
shape: { kind: "path", path: "draft", artifact_kind: "directory" },
|
|
429
|
+
checks: [
|
|
430
|
+
{ id: "exists", kind: "min_file_count", required: true, params: { min: 1 } },
|
|
431
|
+
],
|
|
432
|
+
built_by_stages: ["prepare"],
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
},
|
|
436
|
+
stages: [
|
|
437
|
+
{
|
|
438
|
+
id: "prepare",
|
|
439
|
+
label: "Prepare",
|
|
440
|
+
description: "Neutral placeholder stage for Build Plan authoring. Replace this stage with the topology this agent work needs.",
|
|
441
|
+
contractType: "build-plan-draft-stage",
|
|
442
|
+
skillDir: "prepare",
|
|
443
|
+
role: "general",
|
|
444
|
+
reads: [],
|
|
445
|
+
writes: ["draft-context"],
|
|
446
|
+
},
|
|
447
|
+
],
|
|
448
|
+
stagePolicyNotes: {
|
|
449
|
+
prepare: [
|
|
450
|
+
"This is a neutral authoring scaffold, not a recommended Build Plan topology.",
|
|
451
|
+
"Replace this stage, Artifact, and check when drafting the final Build Plan.",
|
|
452
|
+
],
|
|
453
|
+
},
|
|
454
|
+
starterDocs: [
|
|
455
|
+
{
|
|
456
|
+
relativePath: "README.md",
|
|
457
|
+
content: renderScratchBuildPlanReadme({
|
|
458
|
+
label: options.label,
|
|
459
|
+
hint: options.hint,
|
|
460
|
+
}),
|
|
461
|
+
},
|
|
462
|
+
],
|
|
463
|
+
};
|
|
464
|
+
writeBuildPlanPackageToDir(targetPath, buildPlan);
|
|
465
|
+
return targetPath;
|
|
466
|
+
}
|
|
@@ -2,5 +2,5 @@ import { dirname, join } from "node:path";
|
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
const __filename = fileURLToPath(import.meta.url);
|
|
4
4
|
const __dirname = dirname(__filename);
|
|
5
|
-
// Package root (dist/packages/
|
|
5
|
+
// Package root (dist/packages/build-plans/package/lib/ -> package root)
|
|
6
6
|
export const PACKAGE_ROOT = join(__dirname, "..", "..", "..", "..", "..");
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BuildPlanEngineApiSchema, BuildPlanPurposeSchema, type BuildPlanStageArtifactReadAccess, type BuildPlanStageArtifactWriteAccess } from "../../engine/build/lib/schema.js";
|
|
3
|
+
import { RuntimeContractTypeSchema } from "../../contracts/lib/schema.js";
|
|
4
|
+
import { BuildPlanInputSpecSchema, type ContextInterface, type BuildPlanInputSpec } from "./context-interface.js";
|
|
5
|
+
export interface LocalBuildPlanStarterDoc {
|
|
6
|
+
relativePath: string;
|
|
7
|
+
content: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LocalBuildPlanStageDefinition {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
contract_type: z.infer<typeof RuntimeContractTypeSchema>;
|
|
13
|
+
skill_dir?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional role hint. Open-ended string; defaults to `general` at the
|
|
17
|
+
* runtime layer when missing. Maps to a connected agent via the user's
|
|
18
|
+
* role-map (`~/.interf/agents.json`).
|
|
19
|
+
*/
|
|
20
|
+
role?: string;
|
|
21
|
+
reads: BuildPlanStageArtifactReadAccess;
|
|
22
|
+
writes: BuildPlanStageArtifactWriteAccess;
|
|
23
|
+
}
|
|
24
|
+
export interface LocalBuildPlanDefinition {
|
|
25
|
+
id: string;
|
|
26
|
+
type: "build-plan";
|
|
27
|
+
engine_api?: z.infer<typeof BuildPlanEngineApiSchema>;
|
|
28
|
+
purpose?: z.infer<typeof BuildPlanPurposeSchema>;
|
|
29
|
+
inputs?: Array<z.infer<typeof BuildPlanInputSpecSchema>>;
|
|
30
|
+
label: string;
|
|
31
|
+
hint: string;
|
|
32
|
+
stages?: LocalBuildPlanStageDefinition[];
|
|
33
|
+
stage_policy_notes?: Record<string, string[]>;
|
|
34
|
+
build_plan_schema: ContextInterface;
|
|
35
|
+
starter_docs: LocalBuildPlanStarterDoc[];
|
|
36
|
+
directoryPath: string;
|
|
37
|
+
buildPlanPath: string;
|
|
38
|
+
buildPlanSchemaPath: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function mergeStagePolicyNotesForStages(stages: readonly {
|
|
41
|
+
id: string;
|
|
42
|
+
}[], baseNotes: unknown, overrideNotes: Record<string, string[]> | undefined): Record<string, string[]> | undefined;
|
|
43
|
+
export declare function builtinBuildPlanPackagePath(buildPlanId: string): string;
|
|
44
|
+
export declare function buildPlanDefinitionPath(prepDataDir: string, id: string): string;
|
|
45
|
+
export declare function loadBuildPlanDefinitionFromDir(dirPath: string): LocalBuildPlanDefinition | null;
|
|
46
|
+
export declare function isNeutralScaffoldBuildPlanDefinition(definition: Pick<LocalBuildPlanDefinition, "purpose" | "stages" | "build_plan_schema">): boolean;
|
|
47
|
+
export declare function listLocalBuildPlanDefinitions(prepDataDir: string): LocalBuildPlanDefinition[];
|
|
48
|
+
export declare function loadLocalBuildPlanDefinition(prepDataDir: string, id: string): LocalBuildPlanDefinition | null;
|
|
49
|
+
export declare function resolveBuildPlanPackageSourcePath(prepDataDir: string, buildPlanId: string): string | null;
|
|
50
|
+
export declare function seedLocalDefaultBuildPlan(options: {
|
|
51
|
+
prepDataDir: string;
|
|
52
|
+
}): {
|
|
53
|
+
buildPlanId: string;
|
|
54
|
+
targetPath: string;
|
|
55
|
+
alreadyExisted: boolean;
|
|
56
|
+
};
|
|
57
|
+
export declare function isBuildPlanId(value: string): boolean;
|
|
58
|
+
export declare function patchBuildPlanPackageMetadata(dirPath: string, options: {
|
|
59
|
+
id?: string;
|
|
60
|
+
inputs?: BuildPlanInputSpec[];
|
|
61
|
+
label?: string;
|
|
62
|
+
hint?: string;
|
|
63
|
+
stagePolicyNotes?: Record<string, string[]>;
|
|
64
|
+
}): void;
|
|
65
|
+
export declare function describeBuildPlanPackagePortability(dirPath: string): string[];
|
|
66
|
+
export declare function isPortableBuildPlanPackage(dirPath: string): boolean;
|
|
67
|
+
export declare function copyBuildPlanPackageDirectory(sourceBuildPlanPath: string, targetBuildPlanPath: string): void;
|
|
68
|
+
export interface BuildPlanValidationResult {
|
|
69
|
+
ok: boolean;
|
|
70
|
+
summary: string;
|
|
71
|
+
errors: string[];
|
|
72
|
+
counts: Record<string, number>;
|
|
73
|
+
}
|
|
74
|
+
export declare function validateBuildPlanPackage(dirPath: string): BuildPlanValidationResult;
|