@interf/compiler 0.9.5 → 0.16.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/README.md +135 -91
- package/TRADEMARKS.md +2 -13
- package/agent-skills/interf-actions/SKILL.md +143 -38
- package/agent-skills/interf-actions/references/cli.md +134 -67
- package/builtin-methods/interf-default/README.md +3 -4
- package/builtin-methods/interf-default/compile/stages/shape/SKILL.md +2 -2
- package/builtin-methods/interf-default/compile/stages/summarize/SKILL.md +2 -1
- package/builtin-methods/interf-default/improve/SKILL.md +1 -1
- package/builtin-methods/interf-default/method.json +10 -4
- package/builtin-methods/interf-default/method.schema.json +0 -9
- package/builtin-methods/interf-default/use/query/SKILL.md +5 -5
- package/dist/cli/commands/agents.d.ts +2 -0
- package/dist/cli/commands/agents.js +213 -0
- package/dist/cli/commands/compile.d.ts +8 -25
- package/dist/cli/commands/compile.js +83 -359
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/login.d.ts +7 -0
- package/dist/cli/commands/login.js +39 -0
- package/dist/cli/commands/logout.d.ts +2 -0
- package/dist/cli/commands/logout.js +16 -0
- package/dist/cli/commands/mcp.d.ts +42 -0
- package/dist/cli/commands/mcp.js +239 -0
- package/dist/cli/commands/method.d.ts +2 -0
- package/dist/cli/commands/method.js +113 -0
- package/dist/cli/commands/prep.d.ts +2 -0
- package/dist/cli/commands/prep.js +152 -0
- package/dist/cli/commands/reset.d.ts +8 -1
- package/dist/cli/commands/reset.js +47 -26
- package/dist/cli/commands/runs.d.ts +2 -0
- package/dist/cli/commands/runs.js +120 -0
- package/dist/cli/commands/status.d.ts +6 -1
- package/dist/cli/commands/status.js +68 -111
- package/dist/cli/commands/verify.d.ts +7 -1
- package/dist/cli/commands/verify.js +69 -85
- package/dist/cli/commands/web.d.ts +0 -9
- package/dist/cli/commands/web.js +201 -121
- package/dist/cli/commands/wizard.d.ts +9 -0
- package/dist/cli/commands/wizard.js +689 -0
- package/dist/cli/index.d.ts +10 -7
- package/dist/cli/index.js +19 -12
- package/dist/compiler-ui/404.html +1 -1
- package/dist/compiler-ui/__next.__PAGE__.txt +2 -2
- package/dist/compiler-ui/__next._full.txt +3 -3
- package/dist/compiler-ui/__next._head.txt +1 -1
- package/dist/compiler-ui/__next._index.txt +2 -2
- package/dist/compiler-ui/__next._tree.txt +2 -2
- package/dist/compiler-ui/_next/static/chunks/{177mvn4rse235.js → 0jipmpez3_ehh.js} +16 -16
- package/dist/compiler-ui/_next/static/chunks/{18a8f2jkv3z.c.css → 13awzu4tooflw.css} +1 -1
- package/dist/compiler-ui/_not-found/__next._full.txt +2 -2
- package/dist/compiler-ui/_not-found/__next._head.txt +1 -1
- package/dist/compiler-ui/_not-found/__next._index.txt +2 -2
- package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/compiler-ui/_not-found/__next._not-found.txt +1 -1
- package/dist/compiler-ui/_not-found/__next._tree.txt +2 -2
- package/dist/compiler-ui/_not-found.html +1 -1
- package/dist/compiler-ui/_not-found.txt +2 -2
- package/dist/compiler-ui/index.html +1 -1
- package/dist/compiler-ui/index.txt +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/contracts/index.d.ts +2 -1
- package/dist/packages/contracts/index.js +1 -0
- package/dist/packages/contracts/lib/preparation-paths.d.ts +117 -0
- package/dist/packages/contracts/lib/preparation-paths.js +177 -0
- package/dist/packages/contracts/lib/schema.d.ts +187 -13
- package/dist/packages/contracts/lib/schema.js +148 -3
- package/dist/packages/contracts/utils/filesystem.d.ts +9 -0
- package/dist/packages/contracts/utils/filesystem.js +142 -0
- package/dist/packages/{local-service → engine}/action-definitions.d.ts +14 -14
- package/dist/packages/{local-service → engine}/action-definitions.js +35 -29
- package/dist/packages/{local-service → engine}/action-planner.d.ts +1 -1
- package/dist/packages/{local-service → engine}/action-planner.js +3 -2
- package/dist/packages/{agents → engine/agents}/index.d.ts +3 -0
- package/dist/packages/{agents → engine/agents}/index.js +3 -0
- package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.js +2 -2
- package/dist/packages/engine/agents/lib/detection.d.ts +13 -0
- package/dist/packages/{agents → engine/agents}/lib/detection.js +11 -0
- package/dist/packages/{agents → engine/agents}/lib/executors.d.ts +2 -2
- package/dist/packages/{agents → engine/agents}/lib/shells.d.ts +5 -5
- package/dist/packages/{agents → engine/agents}/lib/shells.js +117 -58
- package/dist/packages/{agents → engine/agents}/lib/user-config.d.ts +4 -2
- package/dist/packages/engine/agents/lib/user-config.js +24 -0
- package/dist/packages/engine/agents/registry.d.ts +91 -0
- package/dist/packages/engine/agents/registry.js +321 -0
- package/dist/packages/engine/agents/role-executors.d.ts +35 -0
- package/dist/packages/engine/agents/role-executors.js +88 -0
- package/dist/packages/engine/agents/role-router.d.ts +66 -0
- package/dist/packages/engine/agents/role-router.js +73 -0
- package/dist/packages/{local-service → engine}/client.d.ts +59 -60
- package/dist/packages/{local-service → engine}/client.js +137 -145
- package/dist/packages/{compiler → engine/compile}/artifact-counts.js +1 -1
- package/dist/packages/{compiler → engine/compile}/compiled-paths.d.ts +9 -2
- package/dist/packages/{compiler → engine/compile}/compiled-paths.js +30 -15
- package/dist/packages/{compiler → engine/compile}/compiled-pipeline.d.ts +12 -1
- package/dist/packages/{compiler → engine/compile}/compiled-pipeline.js +39 -9
- package/dist/packages/{compiler → engine/compile}/compiled-schema.d.ts +2 -2
- package/dist/packages/{compiler → engine/compile}/compiled-schema.js +4 -4
- package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.d.ts +1 -1
- package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.js +8 -4
- package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.d.ts +1 -1
- package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.js +3 -3
- package/dist/packages/{compiler → engine/compile}/compiled-target.d.ts +3 -3
- package/dist/packages/{compiler → engine/compile}/compiled-target.js +3 -3
- package/dist/packages/{compiler → engine/compile}/discovery.js +1 -1
- package/dist/packages/{compiler → engine/compile}/index.d.ts +1 -0
- package/dist/packages/{compiler → engine/compile}/index.js +1 -0
- package/dist/packages/{compiler → engine/compile}/lib/schema.d.ts +26 -31
- package/dist/packages/{compiler → engine/compile}/lib/schema.js +2 -13
- package/dist/packages/engine/compile/method-runs.d.ts +14 -0
- package/dist/packages/{compiler → engine/compile}/method-runs.js +5 -6
- package/dist/packages/{compiler → engine/compile}/reset.js +3 -1
- package/dist/packages/{compiler → engine/compile}/runtime-acceptance.js +17 -14
- package/dist/packages/{compiler → engine/compile}/runtime-contracts.js +0 -3
- package/dist/packages/{compiler → engine/compile}/runtime-prompt.js +1 -1
- package/dist/packages/{compiler → engine/compile}/runtime-reconcile.d.ts +1 -1
- package/dist/packages/{compiler → engine/compile}/runtime-reconcile.js +12 -10
- package/dist/packages/{compiler → engine/compile}/runtime-runs.d.ts +1 -2
- package/dist/packages/{compiler → engine/compile}/runtime-runs.js +3 -43
- package/dist/packages/{compiler → engine/compile}/runtime-types.d.ts +1 -5
- package/dist/packages/{compiler → engine/compile}/runtime.d.ts +2 -2
- package/dist/packages/{compiler → engine/compile}/runtime.js +1 -1
- package/dist/packages/engine/compile/source-files.d.ts +46 -0
- package/dist/packages/engine/compile/source-files.js +149 -0
- package/dist/packages/engine/compile/state-artifacts.d.ts +9 -0
- package/dist/packages/{compiler → engine/compile}/state-artifacts.js +4 -3
- package/dist/packages/{compiler → engine/compile}/state-health.js +2 -2
- package/dist/packages/{compiler → engine/compile}/state-io.d.ts +3 -2
- package/dist/packages/{compiler → engine/compile}/state-io.js +13 -7
- package/dist/packages/{compiler → engine/compile}/state-paths.d.ts +2 -1
- package/dist/packages/engine/compile/state-paths.js +16 -0
- package/dist/packages/engine/compile/state-view.d.ts +5 -0
- package/dist/packages/{compiler → engine/compile}/state-view.js +20 -30
- package/dist/packages/engine/compile/state.d.ts +7 -0
- package/dist/packages/{compiler → engine/compile}/state.js +3 -3
- package/dist/packages/{compiler → engine/compile}/validate-compiled.js +2 -2
- package/dist/packages/{compiler → engine/compile}/validate.d.ts +1 -1
- package/dist/packages/{compiler → engine/compile}/validate.js +3 -3
- package/dist/packages/engine/connection-config.d.ts +38 -0
- package/dist/packages/engine/connection-config.js +75 -0
- package/dist/packages/{execution → engine/execution}/lib/schema.d.ts +52 -72
- package/dist/packages/{execution → engine/execution}/lib/schema.js +3 -3
- package/dist/packages/engine/index.d.ts +22 -0
- package/dist/packages/engine/index.js +15 -0
- package/dist/packages/engine/instance-paths.d.ts +100 -0
- package/dist/packages/engine/instance-paths.js +165 -0
- package/dist/packages/{local-service → engine}/lib/schema.d.ts +392 -2408
- package/dist/packages/{local-service → engine}/lib/schema.js +164 -76
- package/dist/packages/{local-service → engine}/native-run-handlers.d.ts +7 -5
- package/dist/packages/{local-service → engine}/native-run-handlers.js +71 -27
- package/dist/packages/engine/preparation-store.d.ts +104 -0
- package/dist/packages/engine/preparation-store.js +194 -0
- package/dist/packages/{local-service → engine}/readiness-check-draft.d.ts +2 -2
- package/dist/packages/engine/routes.d.ts +78 -0
- package/dist/packages/engine/routes.js +92 -0
- package/dist/packages/{local-service → engine}/run-observability.d.ts +3 -3
- package/dist/packages/{local-service → engine}/run-observability.js +25 -24
- package/dist/packages/engine/runtime-caches.d.ts +76 -0
- package/dist/packages/engine/runtime-caches.js +191 -0
- package/dist/packages/engine/runtime-event-applier.d.ts +12 -0
- package/dist/packages/engine/runtime-event-applier.js +177 -0
- package/dist/packages/engine/runtime-persistence.d.ts +47 -0
- package/dist/packages/engine/runtime-persistence.js +137 -0
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +35 -0
- package/dist/packages/engine/runtime-proposal-helpers.js +251 -0
- package/dist/packages/engine/runtime-resource-builders.d.ts +52 -0
- package/dist/packages/engine/runtime-resource-builders.js +149 -0
- package/dist/packages/engine/runtime.d.ts +318 -0
- package/dist/packages/{local-service → engine}/runtime.js +835 -1011
- package/dist/packages/{local-service → engine}/server.d.ts +15 -0
- package/dist/packages/engine/server.js +1257 -0
- package/dist/packages/engine/service-registry.d.ts +47 -0
- package/dist/packages/engine/service-registry.js +137 -0
- package/dist/packages/{testing → engine/verify}/lib/schema.d.ts +11 -11
- package/dist/packages/{testing → engine/verify}/lib/schema.js +3 -3
- package/dist/packages/{testing → engine/verify}/readiness-check-run.d.ts +9 -16
- package/dist/packages/{testing → engine/verify}/readiness-check-run.js +38 -94
- package/dist/packages/{testing → engine/verify}/test-execution.js +6 -6
- package/dist/packages/{testing → engine/verify}/test-paths.js +5 -4
- package/dist/packages/{testing → engine/verify}/test-sandbox.d.ts +0 -1
- package/dist/packages/{testing → engine/verify}/test-sandbox.js +17 -33
- package/dist/packages/{testing → engine/verify}/test-specs.js +1 -1
- package/dist/packages/{testing → engine/verify}/test-targets.d.ts +1 -1
- package/dist/packages/{testing → engine/verify}/test-targets.js +9 -9
- package/dist/packages/{testing → engine/verify}/test.d.ts +1 -1
- package/dist/packages/{testing → engine/verify}/test.js +1 -1
- package/dist/packages/{method-authoring → methods/authoring}/method-authoring.d.ts +12 -4
- package/dist/packages/{method-authoring → methods/authoring}/method-authoring.js +70 -7
- package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.d.ts +2 -2
- package/dist/packages/{method-authoring → methods/authoring}/method-improvement.d.ts +4 -4
- package/dist/packages/{method-authoring → methods/authoring}/method-improvement.js +16 -10
- package/dist/packages/{method-package → methods/package}/builtin-compiled-method.d.ts +4 -5
- package/dist/packages/{method-package → methods/package}/builtin-compiled-method.js +10 -16
- package/dist/packages/{method-package → methods/package}/context-interface.d.ts +5 -41
- package/dist/packages/{method-package → methods/package}/context-interface.js +3 -25
- package/dist/packages/{method-package → methods/package}/interf-method-package.d.ts +4 -4
- package/dist/packages/{method-package → methods/package}/interf-method-package.js +24 -35
- package/dist/packages/{method-package → methods/package}/lib/package-root.js +2 -2
- package/dist/packages/{method-package → methods/package}/local-methods.d.ts +18 -8
- package/dist/packages/{method-package → methods/package}/local-methods.js +64 -45
- package/dist/packages/{method-package → methods/package}/method-definitions.d.ts +16 -36
- package/dist/packages/{method-package → methods/package}/method-definitions.js +53 -40
- package/dist/packages/{method-package → methods/package}/method-helpers.d.ts +2 -14
- package/dist/packages/{method-package → methods/package}/method-helpers.js +12 -46
- package/dist/packages/{method-package → methods/package}/method-review-paths.d.ts +1 -1
- package/dist/packages/{method-package → methods/package}/method-review-paths.js +1 -1
- package/dist/packages/{method-package → methods/package}/method-stage-runner.d.ts +4 -9
- package/dist/packages/{method-package → methods/package}/method-stage-runner.js +3 -31
- package/dist/packages/methods/package/user-methods.d.ts +17 -0
- package/dist/packages/methods/package/user-methods.js +77 -0
- package/dist/packages/{project-model → project}/index.d.ts +0 -1
- package/dist/packages/{project-model → project}/index.js +0 -1
- package/dist/packages/{project-model → project}/interf-bootstrap.d.ts +1 -1
- package/dist/packages/{project-model → project}/interf-bootstrap.js +1 -1
- package/dist/packages/{project-model → project}/interf-detect.d.ts +8 -3
- package/dist/packages/{project-model → project}/interf-detect.js +38 -38
- package/dist/packages/project/interf-scaffold.d.ts +3 -0
- package/dist/packages/{project-model → project}/interf-scaffold.js +30 -39
- package/dist/packages/{project-model → project}/lib/schema.d.ts +2 -2
- package/dist/packages/{project-model → project}/lib/schema.js +39 -2
- package/dist/packages/project/preparation-entries.d.ts +11 -0
- package/dist/packages/{project-model → project}/preparation-entries.js +14 -14
- package/dist/packages/{project-model → project}/source-config.d.ts +12 -12
- package/dist/packages/{project-model → project}/source-config.js +81 -53
- package/dist/packages/{project-model → project}/source-folders.d.ts +5 -5
- package/dist/packages/{project-model → project}/source-folders.js +16 -16
- package/package.json +8 -8
- package/CHANGELOG.md +0 -93
- package/LICENSE +0 -183
- package/dist/cli/commands/action-input-cli.d.ts +0 -25
- package/dist/cli/commands/action-input-cli.js +0 -73
- package/dist/cli/commands/control-path.d.ts +0 -11
- package/dist/cli/commands/control-path.js +0 -72
- package/dist/cli/commands/create-method-wizard.d.ts +0 -64
- package/dist/cli/commands/create-method-wizard.js +0 -434
- package/dist/cli/commands/create.d.ts +0 -6
- package/dist/cli/commands/create.js +0 -183
- package/dist/cli/commands/default.d.ts +0 -2
- package/dist/cli/commands/default.js +0 -39
- package/dist/cli/commands/executor-flow.d.ts +0 -29
- package/dist/cli/commands/executor-flow.js +0 -163
- package/dist/cli/commands/init.d.ts +0 -26
- package/dist/cli/commands/init.js +0 -771
- package/dist/cli/commands/list.d.ts +0 -2
- package/dist/cli/commands/list.js +0 -30
- package/dist/cli/commands/preparation-action.d.ts +0 -8
- package/dist/cli/commands/preparation-action.js +0 -29
- package/dist/cli/commands/preparation-picker.d.ts +0 -5
- package/dist/cli/commands/preparation-picker.js +0 -36
- package/dist/cli/commands/preparation-selection.d.ts +0 -6
- package/dist/cli/commands/preparation-selection.js +0 -11
- package/dist/cli/commands/service-action-flow.d.ts +0 -9
- package/dist/cli/commands/service-action-flow.js +0 -19
- package/dist/cli/commands/source-config-wizard.d.ts +0 -51
- package/dist/cli/commands/source-config-wizard.js +0 -670
- package/dist/cli/commands/test.d.ts +0 -17
- package/dist/cli/commands/test.js +0 -188
- package/dist/packages/agents/lib/detection.d.ts +0 -7
- package/dist/packages/agents/lib/user-config.js +0 -16
- package/dist/packages/compiler/method-runs.d.ts +0 -15
- package/dist/packages/compiler/raw-snapshot.d.ts +0 -49
- package/dist/packages/compiler/raw-snapshot.js +0 -101
- package/dist/packages/compiler/state-artifacts.d.ts +0 -8
- package/dist/packages/compiler/state-paths.js +0 -13
- package/dist/packages/compiler/state-view.d.ts +0 -4
- package/dist/packages/compiler/state.d.ts +0 -7
- package/dist/packages/local-service/index.d.ts +0 -18
- package/dist/packages/local-service/index.js +0 -13
- package/dist/packages/local-service/routes.d.ts +0 -32
- package/dist/packages/local-service/routes.js +0 -37
- package/dist/packages/local-service/runtime.d.ts +0 -133
- package/dist/packages/local-service/server.js +0 -627
- package/dist/packages/method-package/index.d.ts +0 -11
- package/dist/packages/method-package/index.js +0 -11
- package/dist/packages/method-package/method-stage-policy.d.ts +0 -5
- package/dist/packages/method-package/method-stage-policy.js +0 -31
- package/dist/packages/project-model/interf-scaffold.d.ts +0 -3
- package/dist/packages/project-model/preparation-entries.d.ts +0 -11
- package/dist/packages/project-model/project-paths.d.ts +0 -12
- package/dist/packages/project-model/project-paths.js +0 -33
- package/dist/packages/shared/filesystem.d.ts +0 -2
- package/dist/packages/shared/filesystem.js +0 -55
- /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_buildManifest.js +0 -0
- /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_clientMiddlewareManifest.js +0 -0
- /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_ssgManifest.js +0 -0
- /package/dist/packages/{shared → contracts/utils}/file-types.d.ts +0 -0
- /package/dist/packages/{shared → contracts/utils}/file-types.js +0 -0
- /package/dist/packages/{shared → contracts/utils}/logger.d.ts +0 -0
- /package/dist/packages/{shared → contracts/utils}/logger.js +0 -0
- /package/dist/packages/{shared → contracts/utils}/naming.d.ts +0 -0
- /package/dist/packages/{shared → contracts/utils}/naming.js +0 -0
- /package/dist/packages/{shared → contracts/utils}/parse.d.ts +0 -0
- /package/dist/packages/{shared → contracts/utils}/parse.js +0 -0
- /package/dist/packages/{shared → contracts/utils}/path-guards.d.ts +0 -0
- /package/dist/packages/{shared → contracts/utils}/path-guards.js +0 -0
- /package/dist/packages/{local-service → engine}/action-values.d.ts +0 -0
- /package/dist/packages/{local-service → engine}/action-values.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/agents.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/agents.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/args.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/args.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/constants.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/constants.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/execution-profile.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/execution-profile.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/execution.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/execution.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/executors.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/logs.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/logs.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/preflight.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/preflight.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/render.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/render.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/schema.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/schema.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/status.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/status.js +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/types.d.ts +0 -0
- /package/dist/packages/{agents → engine/agents}/lib/types.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/artifact-counts.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/compiled-compile.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/compiled-compile.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/discovery.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/method-primitives.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/method-primitives.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/reset.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-acceptance.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-contracts.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-inventory.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-inventory.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-paths.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-paths.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-prompt.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/runtime-types.js +0 -0
- /package/dist/packages/{compiler → engine/compile}/state-health.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/validate-compiled.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/validate-helpers.d.ts +0 -0
- /package/dist/packages/{compiler → engine/compile}/validate-helpers.js +0 -0
- /package/dist/packages/{execution → engine/execution}/adapters.d.ts +0 -0
- /package/dist/packages/{execution → engine/execution}/adapters.js +0 -0
- /package/dist/packages/{execution → engine/execution}/events.d.ts +0 -0
- /package/dist/packages/{execution → engine/execution}/events.js +0 -0
- /package/dist/packages/{execution → engine/execution}/index.d.ts +0 -0
- /package/dist/packages/{execution → engine/execution}/index.js +0 -0
- /package/dist/packages/{local-service → engine}/readiness-check-draft.js +0 -0
- /package/dist/packages/{testing → engine/verify}/index.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/index.js +0 -0
- /package/dist/packages/{testing → engine/verify}/test-execution.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/test-paths.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/test-profile-presets.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/test-profile-presets.js +0 -0
- /package/dist/packages/{testing → engine/verify}/test-specs.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/test-types.d.ts +0 -0
- /package/dist/packages/{testing → engine/verify}/test-types.js +0 -0
- /package/dist/packages/{method-authoring → methods/authoring}/index.d.ts +0 -0
- /package/dist/packages/{method-authoring → methods/authoring}/index.js +0 -0
- /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.d.ts +0 -0
- /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.js +0 -0
- /package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.js +0 -0
- /package/dist/packages/{method-package → methods/package}/lib/package-root.d.ts +0 -0
- /package/dist/packages/{project-model → project}/interf.d.ts +0 -0
- /package/dist/packages/{project-model → project}/interf.js +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { isAbsolute,
|
|
4
|
-
import { refreshCompiledBootstrapGuidance } from "../agents/lib/compiled-bootstrap.js";
|
|
3
|
+
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
4
|
+
import { refreshCompiledBootstrapGuidance } from "../engine/agents/lib/compiled-bootstrap.js";
|
|
5
5
|
import { readInterfConfig, } from "./interf.js";
|
|
6
|
-
import { seedCompiledMethodPackage } from "../
|
|
7
|
-
import { readJsonFileWithSchema } from "../
|
|
8
|
-
import { getCompiledMethod } from "../
|
|
6
|
+
import { seedCompiledMethodPackage } from "../methods/package/interf-method-package.js";
|
|
7
|
+
import { readJsonFileWithSchema } from "../contracts/utils/parse.js";
|
|
8
|
+
import { getCompiledMethod } from "../methods/package/method-definitions.js";
|
|
9
9
|
import { DEFAULT_METHOD_ID, methodIdForSourcePreparationConfig, } from "../methods/method-resolution.js";
|
|
10
10
|
import { SourceFolderConfigSchema, } from "./lib/schema.js";
|
|
11
|
-
import { slugify } from "../
|
|
12
|
-
import { assertPathWithinRoot, isPathWithinRoot } from "../
|
|
13
|
-
import { defaultControlPathForCompiled, resolveSourceControlPathForCompiled, compiledInterfConfigPath, compiledInterfRoot, } from "../
|
|
14
|
-
import {
|
|
15
|
-
export const SOURCE_FOLDER_CONFIG_FILE =
|
|
16
|
-
export const SOURCE_FOLDER_CONFIG_PATH =
|
|
17
|
-
export function sourceFolderConfigPath(
|
|
18
|
-
return
|
|
11
|
+
import { slugify } from "../contracts/utils/naming.js";
|
|
12
|
+
import { assertPathWithinRoot, isPathWithinRoot } from "../contracts/utils/path-guards.js";
|
|
13
|
+
import { defaultControlPathForCompiled, resolveSourceControlPathForCompiled, compiledInterfConfigPath, compiledInterfRoot, } from "../engine/compile/compiled-paths.js";
|
|
14
|
+
import { asPreparationDataDir, preparationConfigPath, PREPARATION_CONFIG_FILENAME, } from "../contracts/lib/preparation-paths.js";
|
|
15
|
+
export const SOURCE_FOLDER_CONFIG_FILE = PREPARATION_CONFIG_FILENAME;
|
|
16
|
+
export const SOURCE_FOLDER_CONFIG_PATH = SOURCE_FOLDER_CONFIG_FILE;
|
|
17
|
+
export function sourceFolderConfigPath(prepDataDir) {
|
|
18
|
+
return preparationConfigPath(asPreparationDataDir(prepDataDir));
|
|
19
19
|
}
|
|
20
|
-
export function resolveSourceFolderConfigPath(
|
|
21
|
-
return sourceFolderConfigPath(
|
|
20
|
+
export function resolveSourceFolderConfigPath(prepDataDir) {
|
|
21
|
+
return sourceFolderConfigPath(prepDataDir);
|
|
22
22
|
}
|
|
23
23
|
function readSourceFolderConfigFile(filePath) {
|
|
24
24
|
return readJsonFileWithSchema(filePath, "Interf project config", SourceFolderConfigSchema);
|
|
@@ -55,8 +55,8 @@ export function fingerprintReadinessChecks(checks) {
|
|
|
55
55
|
.digest("hex")
|
|
56
56
|
.slice(0, 16);
|
|
57
57
|
}
|
|
58
|
-
export function loadSourceFolderConfig(
|
|
59
|
-
const filePath = resolveSourceFolderConfigPath(
|
|
58
|
+
export function loadSourceFolderConfig(prepDataDir) {
|
|
59
|
+
const filePath = resolveSourceFolderConfigPath(prepDataDir);
|
|
60
60
|
if (!existsSync(filePath))
|
|
61
61
|
return null;
|
|
62
62
|
return readSourceFolderConfigFile(filePath);
|
|
@@ -100,9 +100,9 @@ export function findSourcePreparationConfig(config, preparationName) {
|
|
|
100
100
|
export function configuredSourceFolderPath(config) {
|
|
101
101
|
return config?.source_folder?.path ?? null;
|
|
102
102
|
}
|
|
103
|
-
export function resolveConfiguredSourceFolderPath(
|
|
103
|
+
export function resolveConfiguredSourceFolderPath(prepDataDir, config = loadSourceFolderConfig(prepDataDir)) {
|
|
104
104
|
const configuredPath = configuredSourceFolderPath(config);
|
|
105
|
-
return configuredPath ? resolve(
|
|
105
|
+
return configuredPath ? resolve(prepDataDir, configuredPath) : null;
|
|
106
106
|
}
|
|
107
107
|
function toWritableSourceProjectConfig(config) {
|
|
108
108
|
const preparations = config?.preparations ?? [];
|
|
@@ -130,17 +130,17 @@ function toWritableSourcePreparationConfig(preparation) {
|
|
|
130
130
|
checks: preparation.checks,
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
-
export function saveSourceFolderConfig(
|
|
134
|
-
const existing = loadSourceFolderConfig(
|
|
133
|
+
export function saveSourceFolderConfig(prepDataDir, config) {
|
|
134
|
+
const existing = loadSourceFolderConfig(prepDataDir);
|
|
135
135
|
const mergedConfig = {
|
|
136
136
|
...(existing?.source_folder && !config.source_folder ? { source_folder: existing.source_folder } : {}),
|
|
137
137
|
...config,
|
|
138
138
|
};
|
|
139
|
-
mkdirSync(
|
|
140
|
-
writeFileSync(sourceFolderConfigPath(
|
|
139
|
+
mkdirSync(prepDataDir, { recursive: true });
|
|
140
|
+
writeFileSync(sourceFolderConfigPath(prepDataDir), JSON.stringify(toWritableSourceProjectConfig(mergedConfig), null, 2) + "\n");
|
|
141
141
|
}
|
|
142
|
-
export function appendSourcePreparationChecks(
|
|
143
|
-
const existing = loadSourceFolderConfig(
|
|
142
|
+
export function appendSourcePreparationChecks(prepDataDir, preparationName, checks) {
|
|
143
|
+
const existing = loadSourceFolderConfig(prepDataDir);
|
|
144
144
|
const currentPreparation = findSourcePreparationConfig(existing, preparationName);
|
|
145
145
|
const otherPreparations = listSourcePreparationConfigs(existing).filter((preparation) => preparation.name !== preparationName);
|
|
146
146
|
const currentChecks = currentPreparation?.checks ?? [];
|
|
@@ -152,15 +152,15 @@ export function appendSourcePreparationChecks(sourcePath, preparationName, check
|
|
|
152
152
|
}),
|
|
153
153
|
checks: [...currentChecks, ...checks],
|
|
154
154
|
};
|
|
155
|
-
saveSourceFolderConfig(
|
|
155
|
+
saveSourceFolderConfig(prepDataDir, {
|
|
156
156
|
preparations: [
|
|
157
157
|
nextPreparation,
|
|
158
158
|
...otherPreparations,
|
|
159
159
|
],
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
|
-
export function upsertSourcePreparationConfig(
|
|
163
|
-
const existing = loadSourceFolderConfig(
|
|
162
|
+
export function upsertSourcePreparationConfig(prepDataDir, preparationConfig, options = {}) {
|
|
163
|
+
const existing = loadSourceFolderConfig(prepDataDir);
|
|
164
164
|
const preparations = listSourcePreparationConfigs(existing);
|
|
165
165
|
const candidateNames = Array.from(new Set([preparationConfig.name, options.matchName].filter((value) => Boolean(value))));
|
|
166
166
|
const existingIndex = preparations.findIndex((entry) => candidateNames.includes(entry.name));
|
|
@@ -170,17 +170,17 @@ export function upsertSourcePreparationConfig(sourcePath, preparationConfig, opt
|
|
|
170
170
|
else {
|
|
171
171
|
preparations.push(normalizeSourcePreparationConfig(preparationConfig));
|
|
172
172
|
}
|
|
173
|
-
saveSourceFolderConfig(
|
|
173
|
+
saveSourceFolderConfig(prepDataDir, {
|
|
174
174
|
preparations,
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
|
-
export function removeSourcePreparationConfig(
|
|
178
|
-
const existing = loadSourceFolderConfig(
|
|
177
|
+
export function removeSourcePreparationConfig(prepDataDir, preparationName) {
|
|
178
|
+
const existing = loadSourceFolderConfig(prepDataDir);
|
|
179
179
|
const preparations = listSourcePreparationConfigs(existing);
|
|
180
180
|
const nextPreparations = preparations.filter((entry) => entry.name !== preparationName);
|
|
181
181
|
if (nextPreparations.length === preparations.length)
|
|
182
182
|
return false;
|
|
183
|
-
saveSourceFolderConfig(
|
|
183
|
+
saveSourceFolderConfig(prepDataDir, {
|
|
184
184
|
preparations: nextPreparations,
|
|
185
185
|
});
|
|
186
186
|
return true;
|
|
@@ -214,8 +214,8 @@ export function loadCompiledPreparationConfig(compiledPath) {
|
|
|
214
214
|
const config = readInterfConfig(compiledPath);
|
|
215
215
|
if (!config)
|
|
216
216
|
return null;
|
|
217
|
-
const
|
|
218
|
-
const configuredPreparations = listSourcePreparationConfigs(loadSourceFolderConfig(
|
|
217
|
+
const prepDataDir = resolveSourceControlPathForCompiled(compiledPath);
|
|
218
|
+
const configuredPreparations = listSourcePreparationConfigs(loadSourceFolderConfig(prepDataDir));
|
|
219
219
|
const defaultPreparationPath = configuredPreparations.length === 1
|
|
220
220
|
? configuredPreparations[0].path
|
|
221
221
|
: `./${config.name}`;
|
|
@@ -225,10 +225,10 @@ export function loadCompiledPreparationConfig(compiledPath) {
|
|
|
225
225
|
const preparationPath = sourceBinding
|
|
226
226
|
? (() => {
|
|
227
227
|
const sourceAbsolutePath = resolve(compiledPath, sourceBinding);
|
|
228
|
-
if (!isPathWithinRoot(
|
|
228
|
+
if (!isPathWithinRoot(prepDataDir, sourceAbsolutePath)) {
|
|
229
229
|
return sourceAbsolutePath;
|
|
230
230
|
}
|
|
231
|
-
return relative(
|
|
231
|
+
return relative(prepDataDir, sourceAbsolutePath).split(sep).join("/") || defaultPreparationPath;
|
|
232
232
|
})()
|
|
233
233
|
: defaultPreparationPath;
|
|
234
234
|
return sourcePreparationConfigFromInterfConfig(config, preparationPath);
|
|
@@ -240,8 +240,8 @@ export function saveCompiledInterfConfig(compiledPath, config) {
|
|
|
240
240
|
}
|
|
241
241
|
export function syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath, preparationConfig) {
|
|
242
242
|
const current = readInterfConfig(compiledPath);
|
|
243
|
-
const
|
|
244
|
-
const preparationAbsolutePath = resolveSourcePreparationPath(
|
|
243
|
+
const prepDataDir = resolveSourceControlPathForCompiled(compiledPath);
|
|
244
|
+
const preparationAbsolutePath = resolveSourcePreparationPath(prepDataDir, preparationConfig);
|
|
245
245
|
const preparationRelativePath = relative(compiledPath, preparationAbsolutePath).split(sep).join("/") || ".";
|
|
246
246
|
const methodId = methodIdForSourcePreparationConfig(preparationConfig)
|
|
247
247
|
?? methodIdForSourcePreparationConfig(current)
|
|
@@ -259,7 +259,7 @@ export function syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath
|
|
|
259
259
|
...(!current ? {
|
|
260
260
|
type: "compiled",
|
|
261
261
|
source: {
|
|
262
|
-
path:
|
|
262
|
+
path: preparationRelativePath,
|
|
263
263
|
},
|
|
264
264
|
} : {}),
|
|
265
265
|
type: "compiled",
|
|
@@ -275,18 +275,17 @@ export function syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath
|
|
|
275
275
|
checks: preparationConfig.checks,
|
|
276
276
|
method_origin: methodOrigin,
|
|
277
277
|
source: {
|
|
278
|
-
path:
|
|
278
|
+
path: preparationRelativePath,
|
|
279
279
|
control_path: defaultControlPathForCompiled(compiledPath),
|
|
280
280
|
preparation_path: preparationRelativePath,
|
|
281
281
|
},
|
|
282
282
|
};
|
|
283
283
|
const saved = saveCompiledInterfConfig(compiledPath, nextConfig);
|
|
284
284
|
if (methodChanged) {
|
|
285
|
-
const
|
|
286
|
-
const selectedMethod = getCompiledMethod(methodId, { sourcePath });
|
|
285
|
+
const selectedMethod = getCompiledMethod(methodId, { prepDataDir });
|
|
287
286
|
seedCompiledMethodPackage({
|
|
288
287
|
compiledPath,
|
|
289
|
-
|
|
288
|
+
prepDataDir,
|
|
290
289
|
methodId: selectedMethod.id,
|
|
291
290
|
});
|
|
292
291
|
}
|
|
@@ -298,7 +297,7 @@ function buildLoadedTestSpec(options) {
|
|
|
298
297
|
return null;
|
|
299
298
|
const testId = options.id ?? slugify(options.name);
|
|
300
299
|
return {
|
|
301
|
-
id: options.targetType === "
|
|
300
|
+
id: options.targetType === "source-files" ? `${testId}-source-files` : testId,
|
|
302
301
|
filePath: options.filePath,
|
|
303
302
|
type: options.targetType,
|
|
304
303
|
name: options.name,
|
|
@@ -307,8 +306,8 @@ function buildLoadedTestSpec(options) {
|
|
|
307
306
|
};
|
|
308
307
|
}
|
|
309
308
|
export function buildTestSpecFromSourceFolderConfig(options) {
|
|
310
|
-
const {
|
|
311
|
-
const config = loadSourceFolderConfig(
|
|
309
|
+
const { prepDataDir, targetName, targetType = "compiled" } = options;
|
|
310
|
+
const config = loadSourceFolderConfig(prepDataDir);
|
|
312
311
|
if (!config)
|
|
313
312
|
return null;
|
|
314
313
|
const preparations = listSourcePreparationConfigs(config);
|
|
@@ -321,14 +320,14 @@ export function buildTestSpecFromSourceFolderConfig(options) {
|
|
|
321
320
|
: getDefaultSourcePreparationConfig(config);
|
|
322
321
|
if (!match)
|
|
323
322
|
return null;
|
|
324
|
-
const configPath = resolveSourceFolderConfigPath(
|
|
323
|
+
const configPath = resolveSourceFolderConfigPath(prepDataDir);
|
|
325
324
|
return buildLoadedTestSpec({
|
|
326
325
|
id: match.id,
|
|
327
326
|
name: match.name,
|
|
328
327
|
about: match.about,
|
|
329
328
|
checks: match.checks,
|
|
330
329
|
targetType,
|
|
331
|
-
filePath: targetType === "
|
|
330
|
+
filePath: targetType === "source-files"
|
|
332
331
|
? `${configPath}#preparations/${match.name}:source-files`
|
|
333
332
|
: `${configPath}#preparations/${match.name}:portable-context`,
|
|
334
333
|
defaultDescription: `Derived from saved Preparation checks in ${SOURCE_FOLDER_CONFIG_PATH}`,
|
|
@@ -345,17 +344,46 @@ export function buildTestSpecFromCompiledPreparationConfig(options) {
|
|
|
345
344
|
about: config.about,
|
|
346
345
|
checks: config.checks ?? [],
|
|
347
346
|
targetType,
|
|
348
|
-
filePath: targetType === "
|
|
349
|
-
? `${configPath}#checks:
|
|
347
|
+
filePath: targetType === "source-files"
|
|
348
|
+
? `${configPath}#checks:source-files`
|
|
350
349
|
: `${configPath}#checks:compiled`,
|
|
351
350
|
defaultDescription: "Derived from checks in the portable context config.",
|
|
352
351
|
});
|
|
353
352
|
}
|
|
354
|
-
|
|
353
|
+
/**
|
|
354
|
+
* System path prefixes the runtime must never operate on, even when an
|
|
355
|
+
* absolute `preparation.path` was authored by hand. The schema-level
|
|
356
|
+
* refinement in `SourcePreparationConfigSchema` is the primary line of
|
|
357
|
+
* defense; this is the in-process backstop for callers that hand-craft a
|
|
358
|
+
* SourcePreparationConfig at runtime (e.g. method authoring helpers that
|
|
359
|
+
* construct a config from an InterfConfig).
|
|
360
|
+
*/
|
|
361
|
+
const FORBIDDEN_PREPARATION_PATH_PREFIXES = [
|
|
362
|
+
"/etc",
|
|
363
|
+
"/sys",
|
|
364
|
+
"/proc",
|
|
365
|
+
"/dev",
|
|
366
|
+
"/var/run",
|
|
367
|
+
"/var/lib",
|
|
368
|
+
"/usr",
|
|
369
|
+
"/bin",
|
|
370
|
+
"/sbin",
|
|
371
|
+
"/boot",
|
|
372
|
+
];
|
|
373
|
+
function rejectForbiddenPreparationPath(absolutePath) {
|
|
374
|
+
for (const prefix of FORBIDDEN_PREPARATION_PATH_PREFIXES) {
|
|
375
|
+
if (absolutePath === prefix || absolutePath.startsWith(`${prefix}/`)) {
|
|
376
|
+
throw new Error(`Preparation path may not target system directory ${prefix}: ${absolutePath}`);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
export function resolveSourcePreparationPath(prepDataDir, preparationConfig) {
|
|
355
381
|
const configuredPath = preparationConfig.path.trim();
|
|
356
|
-
const resolvedPath = resolve(
|
|
382
|
+
const resolvedPath = resolve(prepDataDir, configuredPath);
|
|
357
383
|
if (isAbsolute(configuredPath)) {
|
|
384
|
+
rejectForbiddenPreparationPath(resolvedPath);
|
|
358
385
|
return resolvedPath;
|
|
359
386
|
}
|
|
360
|
-
|
|
387
|
+
rejectForbiddenPreparationPath(resolvedPath);
|
|
388
|
+
return assertPathWithinRoot(prepDataDir, resolvedPath, "Source folder path");
|
|
361
389
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare function listVisibleSourceFolders(
|
|
1
|
+
export declare function listVisibleSourceFolders(prepDataDir: string): string[];
|
|
2
2
|
export declare function isReservedSourcePreparationPath(relativePath: string): boolean;
|
|
3
|
-
export declare function normalizeSourcePreparationPathForConfig(
|
|
3
|
+
export declare function normalizeSourcePreparationPathForConfig(prepDataDir: string, value: string): string;
|
|
4
4
|
export declare function defaultPreparationNameForPath(sourceFolderPath: string): string;
|
|
5
|
-
export declare function findSingleSourceFolderCandidate(
|
|
6
|
-
export declare function listSourceFolderChoices(
|
|
5
|
+
export declare function findSingleSourceFolderCandidate(prepDataDir: string): string | null;
|
|
6
|
+
export declare function listSourceFolderChoices(prepDataDir?: string): Array<{
|
|
7
7
|
value: string;
|
|
8
8
|
label: string;
|
|
9
9
|
hint: string;
|
|
10
10
|
}>;
|
|
11
|
-
export declare function defaultSourcePreparationPathForPrompt(name: string, introStyle: "first" | "additional" | "edit",
|
|
11
|
+
export declare function defaultSourcePreparationPathForPrompt(name: string, introStyle: "first" | "additional" | "edit", prepDataDir?: string): string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
2
2
|
import { isAbsolute, join, relative, sep } from "node:path";
|
|
3
|
-
import { slugify } from "../
|
|
3
|
+
import { slugify } from "../contracts/utils/naming.js";
|
|
4
4
|
import { resolveSourcePreparationPath } from "./source-config.js";
|
|
5
|
-
import { isPathWithinRoot } from "../
|
|
5
|
+
import { isPathWithinRoot } from "../contracts/utils/path-guards.js";
|
|
6
6
|
const DEFAULT_PREPARATION_NAME = "default";
|
|
7
7
|
const IGNORED_SOURCE_FOLDER_ENTRIES = new Set([
|
|
8
8
|
".DS_Store",
|
|
@@ -12,10 +12,10 @@ const IGNORED_SOURCE_FOLDER_ENTRIES = new Set([
|
|
|
12
12
|
"interf.json",
|
|
13
13
|
"node_modules",
|
|
14
14
|
]);
|
|
15
|
-
export function listVisibleSourceFolders(
|
|
15
|
+
export function listVisibleSourceFolders(prepDataDir) {
|
|
16
16
|
let rootEntries = [];
|
|
17
17
|
try {
|
|
18
|
-
rootEntries = readdirSync(
|
|
18
|
+
rootEntries = readdirSync(prepDataDir);
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
21
21
|
return [];
|
|
@@ -24,7 +24,7 @@ export function listVisibleSourceFolders(projectPath) {
|
|
|
24
24
|
const visibleDirectories = [];
|
|
25
25
|
for (const entry of visibleEntries) {
|
|
26
26
|
try {
|
|
27
|
-
const entryPath = join(
|
|
27
|
+
const entryPath = join(prepDataDir, entry);
|
|
28
28
|
if (statSync(entryPath).isDirectory()) {
|
|
29
29
|
visibleDirectories.push(entry);
|
|
30
30
|
}
|
|
@@ -42,14 +42,14 @@ export function isReservedSourcePreparationPath(relativePath) {
|
|
|
42
42
|
normalized === ".interf" ||
|
|
43
43
|
normalized.startsWith(".interf/");
|
|
44
44
|
}
|
|
45
|
-
export function normalizeSourcePreparationPathForConfig(
|
|
45
|
+
export function normalizeSourcePreparationPathForConfig(prepDataDir, value) {
|
|
46
46
|
const trimmedValue = value.trim();
|
|
47
|
-
const resolvedPath = resolveSourcePreparationPath(
|
|
48
|
-
const relativePath = relative(
|
|
47
|
+
const resolvedPath = resolveSourcePreparationPath(prepDataDir, { path: trimmedValue });
|
|
48
|
+
const relativePath = relative(prepDataDir, resolvedPath).split(sep).join("/") || ".";
|
|
49
49
|
if (relativePath === ".") {
|
|
50
50
|
throw new Error("Pick a Source Folder, not the Interf Workspace itself.");
|
|
51
51
|
}
|
|
52
|
-
if (isAbsolute(trimmedValue) && !isPathWithinRoot(
|
|
52
|
+
if (isAbsolute(trimmedValue) && !isPathWithinRoot(prepDataDir, resolvedPath)) {
|
|
53
53
|
if (!existsSync(resolvedPath)) {
|
|
54
54
|
throw new Error("Pick an existing source folder.");
|
|
55
55
|
}
|
|
@@ -77,22 +77,22 @@ export function defaultPreparationNameForPath(sourceFolderPath) {
|
|
|
77
77
|
.filter((segment) => segment.length > 0 && segment !== ".");
|
|
78
78
|
return slugify(segments[segments.length - 1] ?? "") || DEFAULT_PREPARATION_NAME;
|
|
79
79
|
}
|
|
80
|
-
export function findSingleSourceFolderCandidate(
|
|
81
|
-
const visibleDirectories = listVisibleSourceFolders(
|
|
80
|
+
export function findSingleSourceFolderCandidate(prepDataDir) {
|
|
81
|
+
const visibleDirectories = listVisibleSourceFolders(prepDataDir);
|
|
82
82
|
if (visibleDirectories.length !== 1) {
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
85
85
|
return `./${visibleDirectories[0]}`;
|
|
86
86
|
}
|
|
87
|
-
export function listSourceFolderChoices(
|
|
88
|
-
return listVisibleSourceFolders(
|
|
87
|
+
export function listSourceFolderChoices(prepDataDir = process.cwd()) {
|
|
88
|
+
return listVisibleSourceFolders(prepDataDir).map((entry) => ({
|
|
89
89
|
value: `./${entry}`,
|
|
90
90
|
label: entry,
|
|
91
91
|
hint: `Use ./${entry} as the source folder`,
|
|
92
92
|
}));
|
|
93
93
|
}
|
|
94
|
-
export function defaultSourcePreparationPathForPrompt(name, introStyle,
|
|
95
|
-
const namedFolderPath = join(
|
|
94
|
+
export function defaultSourcePreparationPathForPrompt(name, introStyle, prepDataDir = process.cwd()) {
|
|
95
|
+
const namedFolderPath = join(prepDataDir, name);
|
|
96
96
|
if (existsSync(namedFolderPath)) {
|
|
97
97
|
try {
|
|
98
98
|
if (statSync(namedFolderPath).isDirectory()) {
|
|
@@ -104,7 +104,7 @@ export function defaultSourcePreparationPathForPrompt(name, introStyle, projectP
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
if (introStyle === "first") {
|
|
107
|
-
return findSingleSourceFolderCandidate(
|
|
107
|
+
return findSingleSourceFolderCandidate(prepDataDir) ?? `./${name}`;
|
|
108
108
|
}
|
|
109
109
|
return `./${name}`;
|
|
110
110
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interf/compiler",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Interf prepares data for agent work. It runs locally, processes your files, shows evidence that your data is ready, and writes portable context: a local folder with verifiable outputs agents can use.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
"import": "./dist/packages/contracts/index.js"
|
|
20
20
|
},
|
|
21
21
|
"./execution": {
|
|
22
|
-
"types": "./dist/packages/execution/index.d.ts",
|
|
23
|
-
"import": "./dist/packages/execution/index.js"
|
|
22
|
+
"types": "./dist/packages/engine/execution/index.d.ts",
|
|
23
|
+
"import": "./dist/packages/engine/execution/index.js"
|
|
24
24
|
},
|
|
25
25
|
"./local-service": {
|
|
26
|
-
"types": "./dist/packages/
|
|
27
|
-
"import": "./dist/packages/
|
|
26
|
+
"types": "./dist/packages/engine/index.d.ts",
|
|
27
|
+
"import": "./dist/packages/engine/index.js"
|
|
28
28
|
},
|
|
29
29
|
"./package.json": "./package.json"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
|
-
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && chmod 755 dist/bin.js",
|
|
32
|
+
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true});require('fs').rmSync('.tsbuildinfo',{force:true})\" && tsc && chmod 755 dist/bin.js",
|
|
33
33
|
"dev": "tsc --watch",
|
|
34
34
|
"web:dev": "npm --prefix apps/compiler-ui run dev",
|
|
35
35
|
"web:typecheck": "npm --prefix apps/compiler-ui run typecheck",
|
|
@@ -54,7 +54,6 @@
|
|
|
54
54
|
"dist",
|
|
55
55
|
"builtin-methods",
|
|
56
56
|
"agent-skills",
|
|
57
|
-
"CHANGELOG.md",
|
|
58
57
|
"TRADEMARKS.md"
|
|
59
58
|
],
|
|
60
59
|
"publishConfig": {
|
|
@@ -68,7 +67,7 @@
|
|
|
68
67
|
"claude",
|
|
69
68
|
"codex"
|
|
70
69
|
],
|
|
71
|
-
"license": "
|
|
70
|
+
"license": "UNLICENSED",
|
|
72
71
|
"repository": {
|
|
73
72
|
"type": "git",
|
|
74
73
|
"url": "git+https://github.com/interf-labs/interf.git"
|
|
@@ -82,6 +81,7 @@
|
|
|
82
81
|
},
|
|
83
82
|
"dependencies": {
|
|
84
83
|
"@clack/prompts": "^0.9.1",
|
|
84
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
85
85
|
"chalk": "^5.4.1",
|
|
86
86
|
"yargs": "^17.7.2",
|
|
87
87
|
"zod": "^4.3.6"
|
package/CHANGELOG.md
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
Interf follows practical release notes: what changed, why it matters, and what
|
|
4
|
-
still needs cleanup. Dates use the local release date.
|
|
5
|
-
|
|
6
|
-
## 0.9.5 - 2026-05-02
|
|
7
|
-
|
|
8
|
-
### Changed
|
|
9
|
-
|
|
10
|
-
- Made the local service the execution gate for observable work. Prepare runs,
|
|
11
|
-
readiness-check runs, and agent-backed work now route through service-owned
|
|
12
|
-
run resources so CLI and UI see the same status.
|
|
13
|
-
- Centralized user action definitions under the local-service package. UI
|
|
14
|
-
dialogs and CLI flows should render the same TypeScript/Zod-backed action
|
|
15
|
-
contract instead of carrying duplicate labels, prompts, and request fields.
|
|
16
|
-
- Separated structured UI controls from freeform chat. Buttons submit typed
|
|
17
|
-
service requests; chat remains an explicit proposal surface.
|
|
18
|
-
- Tightened Method removal. Removing a Method clears stale saved Preparation
|
|
19
|
-
selections instead of blocking on old references; preparing still requires an
|
|
20
|
-
explicit Method.
|
|
21
|
-
- Expanded smoke coverage around CLI behavior, service-backed actions,
|
|
22
|
-
Method mutations, run visibility, and package boundary rules.
|
|
23
|
-
|
|
24
|
-
### Fixed
|
|
25
|
-
|
|
26
|
-
- Removed the UI path that pasted prepare prompts into chat instead of running
|
|
27
|
-
the typed prepare action.
|
|
28
|
-
- Fixed action dialog/menu event handling so form input focus does not close the
|
|
29
|
-
parent row menu.
|
|
30
|
-
- Fixed service and CLI behavior that could hide observable work in package
|
|
31
|
-
calls instead of a visible run.
|
|
32
|
-
|
|
33
|
-
### Still To Watch
|
|
34
|
-
|
|
35
|
-
- `apps/compiler-ui/app/page.tsx` and `src/packages/local-service/runtime.ts`
|
|
36
|
-
are still too large. Future cleanup should split them only when it reduces
|
|
37
|
-
reader trace depth or state in memory.
|
|
38
|
-
- Some lower-level tests and package helpers still call package primitives
|
|
39
|
-
directly. That is correct for unit tests and package oracles; it is wrong for
|
|
40
|
-
user-visible prepare/check/Method actions.
|
|
41
|
-
- Any remaining compatibility path for old product nouns should be listed for
|
|
42
|
-
founder review before removal. Do not add new compatibility shims unless the
|
|
43
|
-
current product contract requires them.
|
|
44
|
-
|
|
45
|
-
## 0.9.4 - 2026-05-01
|
|
46
|
-
|
|
47
|
-
### Changed
|
|
48
|
-
|
|
49
|
-
- Kept setup separate from prepare runs. Creating or editing a Preparation is a
|
|
50
|
-
deterministic config action; preparing files is a visible run.
|
|
51
|
-
- Simplified retry behavior by removing the partial stage-retry path. A prepare
|
|
52
|
-
run should be understandable from one run record and one filesystem state.
|
|
53
|
-
- Stabilized trace rendering for active and failed runs, including failed-stage
|
|
54
|
-
layout and pending-run navigation.
|
|
55
|
-
- Improved portable-context status and expected-output display so the UI
|
|
56
|
-
distinguishes current output from Method-planned output.
|
|
57
|
-
|
|
58
|
-
### Fixed
|
|
59
|
-
|
|
60
|
-
- Repaired missing local Method packages before prepare runs when the selected
|
|
61
|
-
Method can be reseeded from the current Interf Workspace.
|
|
62
|
-
- Fixed packaged UI availability after local builds.
|
|
63
|
-
- Accepted relative portable-context wikilinks and markdown-source summary links
|
|
64
|
-
during validation.
|
|
65
|
-
- Stabilized the publish smoke gate environment.
|
|
66
|
-
|
|
67
|
-
## 0.9.3 - 2026-04-30
|
|
68
|
-
|
|
69
|
-
### Changed
|
|
70
|
-
|
|
71
|
-
- Completed the public Preparation/Method vocabulary pass across CLI, service,
|
|
72
|
-
UI state, runtime records, docs, and tests.
|
|
73
|
-
- Removed legacy 0.8 compatibility surfaces and project-model compiler shims
|
|
74
|
-
that forced readers to translate old product terms.
|
|
75
|
-
- Moved package boundaries toward one owner per primitive: contracts for shared
|
|
76
|
-
schemas, project-model for Interf Workspace config, compiler for portable
|
|
77
|
-
context writes, testing for readiness-check runs, and local-service for read
|
|
78
|
-
models.
|
|
79
|
-
- Added the source reader map in `src/README.md` so contributors can trace
|
|
80
|
-
`interf compile` without grepping through the whole repo first.
|
|
81
|
-
- Expanded public CLI smoke coverage and release acceptance checks.
|
|
82
|
-
|
|
83
|
-
### Fixed
|
|
84
|
-
|
|
85
|
-
- Fixed release readiness blockers around CLI parsing, status output,
|
|
86
|
-
verification, UI layout, executor acceptance, and package metadata.
|
|
87
|
-
- Served Interf Compiler UI from the static export used by `interf web`.
|
|
88
|
-
|
|
89
|
-
### Cleanup Principle
|
|
90
|
-
|
|
91
|
-
Every 0.9 patch is judged by one rubric: reduce the number of files a reader
|
|
92
|
-
must trace, or reduce the number of facts a reader must hold in memory. If a
|
|
93
|
-
change does neither, it should not be part of the cleanup.
|