@interf/compiler 0.33.0 → 0.50.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 +122 -226
- package/dist/cli/commands/agents.js +1 -32
- package/dist/cli/commands/benchmark.d.ts +2 -3
- package/dist/cli/commands/benchmark.js +1 -31
- package/dist/cli/commands/build-plan.js +26 -50
- package/dist/cli/commands/build.d.ts +2 -3
- package/dist/cli/commands/build.js +1 -31
- package/dist/cli/commands/graphs.js +177 -32
- package/dist/cli/commands/mcp.d.ts +1 -0
- package/dist/cli/commands/mcp.js +223 -126
- package/dist/cli/commands/project.js +10 -36
- package/dist/cli/commands/reset.d.ts +2 -3
- package/dist/cli/commands/reset.js +1 -22
- package/dist/cli/commands/runs.js +86 -33
- package/dist/cli/commands/status.js +3 -24
- package/dist/cli/commands/traces.js +1 -29
- package/dist/cli/commands/wizard.js +17 -29
- package/dist/cli/lib/http-client.d.ts +39 -0
- package/dist/cli/lib/http-client.js +73 -0
- package/dist/packages/build-plans/authoring/brief.d.ts +25 -4
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +42 -1
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +470 -63
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +9 -0
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -10
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +62 -8
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +0 -1
- package/dist/packages/build-plans/package/build-plan-definitions.js +5 -3
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +1 -0
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +2 -1
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +2 -2
- package/dist/packages/build-plans/package/builtin-build-plan.js +3 -3
- package/dist/packages/build-plans/package/context-interface.d.ts +3 -0
- package/dist/packages/build-plans/package/context-interface.js +5 -5
- package/dist/packages/build-plans/package/interf-build-plan-package.js +22 -22
- package/dist/packages/build-plans/package/local-build-plans.d.ts +10 -5
- package/dist/packages/build-plans/package/local-build-plans.js +57 -32
- package/dist/packages/contracts/index.d.ts +4 -3
- package/dist/packages/contracts/index.js +2 -1
- package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
- package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
- package/dist/packages/contracts/lib/project-paths.d.ts +7 -0
- package/dist/packages/contracts/lib/project-paths.js +9 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +264 -1
- package/dist/packages/contracts/lib/project-schema.js +38 -13
- package/dist/packages/contracts/lib/schema.d.ts +556 -23
- package/dist/packages/contracts/lib/schema.js +279 -18
- package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
- package/dist/packages/contracts/utils/filesystem.js +29 -1
- package/dist/packages/projects/lib/schema.d.ts +6 -8
- package/dist/packages/projects/lib/schema.js +3 -1
- package/dist/packages/projects/source-config.d.ts +0 -5
- package/dist/packages/projects/source-config.js +9 -22
- package/dist/packages/runtime/actions/fields.d.ts +4 -0
- package/dist/packages/runtime/actions/form-builders.js +79 -31
- package/dist/packages/runtime/actions/form-validators.js +9 -3
- package/dist/packages/runtime/actions/helpers.js +3 -3
- package/dist/packages/runtime/actions/registry.d.ts +1 -1
- package/dist/packages/runtime/actions/registry.js +1 -1
- package/dist/packages/runtime/actions/requests.d.ts +1 -1
- package/dist/packages/runtime/actions/requests.js +12 -6
- package/dist/packages/runtime/actions/schemas.d.ts +7 -0
- package/dist/packages/runtime/actions/schemas.js +1 -0
- package/dist/packages/runtime/agent-handoff.js +8 -7
- package/dist/packages/runtime/agents/lib/execution-profile.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/execution-profile.js +23 -0
- package/dist/packages/runtime/agents/lib/execution.js +14 -8
- package/dist/packages/runtime/agents/lib/executors.d.ts +1 -0
- package/dist/packages/runtime/agents/lib/executors.js +11 -2
- package/dist/packages/runtime/agents/lib/logs.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/logs.js +32 -8
- package/dist/packages/runtime/agents/lib/preflight.js +4 -1
- package/dist/packages/runtime/agents/lib/render.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/render.js +44 -18
- package/dist/packages/runtime/agents/lib/shell-templates.js +105 -63
- package/dist/packages/runtime/agents/lib/shells.d.ts +29 -0
- package/dist/packages/runtime/agents/lib/shells.js +158 -32
- package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
- package/dist/packages/runtime/agents/lib/status.js +1 -14
- package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
- package/dist/packages/runtime/agents/lib/types.d.ts +1 -0
- package/dist/packages/runtime/agents/providers/codex.js +2 -0
- package/dist/packages/runtime/agents/role-executors.js +2 -1
- package/dist/packages/runtime/auth/session-store.js +11 -3
- package/dist/packages/runtime/benchmark-question-draft.d.ts +3 -0
- package/dist/packages/runtime/benchmark-question-draft.js +57 -28
- package/dist/packages/runtime/build/artifact-status.d.ts +1 -1
- package/dist/packages/runtime/build/artifact-status.js +1 -1
- package/dist/packages/runtime/build/build-evidence.d.ts +2 -1
- package/dist/packages/runtime/build/build-evidence.js +11 -5
- package/dist/packages/runtime/build/build-pipeline.js +89 -5
- package/dist/packages/runtime/build/build-stage-plan.js +3 -1
- package/dist/packages/runtime/build/build-stage-runner.js +169 -32
- package/dist/packages/runtime/build/build-target.d.ts +3 -0
- package/dist/packages/runtime/build/build-target.js +25 -1
- package/dist/packages/runtime/build/check-evaluator.d.ts +1 -1
- package/dist/packages/runtime/build/check-evaluator.js +655 -4
- package/dist/packages/runtime/build/context-graph-paths.d.ts +13 -0
- package/dist/packages/runtime/build/context-graph-paths.js +27 -0
- package/dist/packages/runtime/build/index.d.ts +2 -2
- package/dist/packages/runtime/build/index.js +2 -2
- package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
- package/dist/packages/runtime/build/inspect-map.js +270 -0
- package/dist/packages/runtime/build/lib/schema.d.ts +246 -53
- package/dist/packages/runtime/build/lib/schema.js +173 -15
- package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
- package/dist/packages/runtime/build/native-entrypoint.js +286 -0
- package/dist/packages/runtime/build/runtime-contracts.js +9 -3
- package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
- package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
- package/dist/packages/runtime/build/runtime-prompt.js +6 -4
- package/dist/packages/runtime/build/runtime-runs.js +63 -10
- package/dist/packages/runtime/build/runtime-types.d.ts +4 -1
- package/dist/packages/runtime/build/runtime.d.ts +3 -1
- package/dist/packages/runtime/build/runtime.js +3 -1
- package/dist/packages/runtime/build/source-files.js +11 -2
- package/dist/packages/runtime/build/source-inventory.d.ts +1 -0
- package/dist/packages/runtime/build/source-inventory.js +246 -7
- package/dist/packages/runtime/build/source-manifest.d.ts +11 -0
- package/dist/packages/runtime/build/source-manifest.js +30 -2
- package/dist/packages/runtime/build/stage-evidence.js +80 -11
- package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
- package/dist/packages/runtime/build/stage-manifest.js +1125 -0
- package/dist/packages/runtime/build/stage-reuse.js +12 -0
- package/dist/packages/runtime/build/stage-session.d.ts +81 -0
- package/dist/packages/runtime/build/stage-session.js +308 -0
- package/dist/packages/runtime/build/state-io.js +10 -11
- package/dist/packages/runtime/build/state-view.js +1 -1
- package/dist/packages/runtime/build/state.d.ts +1 -1
- package/dist/packages/runtime/build/state.js +1 -1
- package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
- package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
- package/dist/packages/runtime/build/traces.js +3 -3
- package/dist/packages/runtime/build/validate-context-graph.d.ts +1 -1
- package/dist/packages/runtime/build/validate-context-graph.js +5 -5
- package/dist/packages/runtime/build/validate.d.ts +1 -1
- package/dist/packages/runtime/build/validate.js +1 -1
- package/dist/packages/runtime/client.d.ts +3 -3
- package/dist/packages/runtime/client.js +8 -13
- package/dist/packages/runtime/context-checks.js +13 -0
- package/dist/packages/runtime/context-graph-scaffold.js +2 -1
- package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
- package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
- package/dist/packages/runtime/execution/lib/schema.d.ts +34 -31
- package/dist/packages/runtime/index.d.ts +2 -2
- package/dist/packages/runtime/index.js +1 -1
- package/dist/packages/runtime/native-run-handlers.d.ts +38 -0
- package/dist/packages/runtime/native-run-handlers.js +52 -33
- package/dist/packages/runtime/plan-artifact-contract.js +1 -1
- package/dist/packages/runtime/project-source-state.d.ts +4 -4
- package/dist/packages/runtime/project-source-state.js +5 -2
- package/dist/packages/runtime/project-store.d.ts +5 -0
- package/dist/packages/runtime/project-store.js +30 -3
- package/dist/packages/runtime/requested-artifacts.js +1 -1
- package/dist/packages/runtime/run-observability.js +9 -4
- package/dist/packages/runtime/runtime-action-proposals.js +3 -3
- package/dist/packages/runtime/runtime-build-plans.js +47 -3
- package/dist/packages/runtime/runtime-build-runs.js +9 -16
- package/dist/packages/runtime/runtime-caches.d.ts +26 -0
- package/dist/packages/runtime/runtime-caches.js +47 -0
- package/dist/packages/runtime/runtime-jobs.js +6 -6
- package/dist/packages/runtime/runtime-project-mutations.js +1 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +4 -1
- package/dist/packages/runtime/runtime-project-reads.js +229 -36
- package/dist/packages/runtime/runtime-proposal-helpers.js +6 -6
- package/dist/packages/runtime/runtime-resource-builders.d.ts +4 -2
- package/dist/packages/runtime/runtime-resource-builders.js +16 -14
- package/dist/packages/runtime/runtime-status.d.ts +14 -0
- package/dist/packages/runtime/runtime-status.js +15 -0
- package/dist/packages/runtime/runtime-verify-runs.js +6 -5
- package/dist/packages/runtime/runtime.d.ts +439 -22
- package/dist/packages/runtime/runtime.js +16 -2
- package/dist/packages/runtime/schemas/actions.d.ts +24 -0
- package/dist/packages/runtime/schemas/agents.d.ts +28 -0
- package/dist/packages/runtime/schemas/agents.js +33 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +181 -8
- package/dist/packages/runtime/schemas/build-plans.js +36 -2
- package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
- package/dist/packages/runtime/schemas/context-graphs.js +110 -0
- package/dist/packages/runtime/schemas/files.d.ts +7 -347
- package/dist/packages/runtime/schemas/files.js +1 -24
- package/dist/packages/runtime/schemas/index.d.ts +1 -0
- package/dist/packages/runtime/schemas/index.js +1 -0
- package/dist/packages/runtime/schemas/jobs.js +4 -0
- package/dist/packages/runtime/schemas/projects.d.ts +48 -21
- package/dist/packages/runtime/schemas/projects.js +34 -10
- package/dist/packages/runtime/schemas/runs.d.ts +1009 -240
- package/dist/packages/runtime/schemas/runs.js +17 -0
- package/dist/packages/runtime/service/openapi.js +1 -0
- package/dist/packages/runtime/service/operations.d.ts +1666 -145
- package/dist/packages/runtime/service/operations.js +147 -17
- package/dist/packages/runtime/service/routes.d.ts +11 -3
- package/dist/packages/runtime/service/routes.js +11 -3
- package/dist/packages/runtime/service/server-app-boot.js +2 -2
- package/dist/packages/runtime/service/server-helpers.d.ts +11 -0
- package/dist/packages/runtime/service/server-helpers.js +19 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +4 -2
- package/dist/packages/runtime/service/server-routes-agents.js +19 -85
- package/dist/packages/runtime/service/server-routes-build-plans.js +14 -11
- package/dist/packages/runtime/service/server-routes-project-context.js +102 -7
- package/dist/packages/runtime/service/server-routes-project-jobs.js +19 -12
- package/dist/packages/runtime/service/server-routes-project-runs.js +5 -2
- package/dist/packages/runtime/service/server-routes-projects.js +6 -2
- package/dist/packages/runtime/service/server-routes-runs.js +11 -4
- package/dist/packages/runtime/verify/lib/schema.js +12 -0
- package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
- package/dist/packages/runtime/verify/test-file-guard.js +29 -0
- package/dist/packages/runtime/verify/verify-execution.d.ts +7 -0
- package/dist/packages/runtime/verify/verify-execution.js +109 -35
- package/dist/packages/runtime/verify/verify-paths.d.ts +1 -0
- package/dist/packages/runtime/verify/verify-paths.js +4 -0
- package/dist/packages/runtime/verify/verify-specs.js +49 -39
- package/dist/packages/runtime/wire-schemas.d.ts +1 -1
- package/dist/packages/runtime/wire-schemas.js +1 -1
- package/package.json +2 -8
- package/public-repo/CONTRIBUTING.md +10 -3
- package/public-repo/README.md +122 -226
- package/public-repo/build-plans/interf-default/README.md +15 -12
- package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
- package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +38 -5
- package/public-repo/build-plans/interf-default/build-plan.json +27 -23
- package/public-repo/build-plans/interf-default/build-plan.schema.json +24 -20
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +8 -7
- package/public-repo/openapi/local-service.openapi.json +11637 -4213
- package/public-repo/skills/interf/SKILL.md +174 -134
- package/dist/packages/runtime/build/runtime-paths.d.ts +0 -8
- package/dist/packages/runtime/build/runtime-paths.js +0 -26
- package/dist/packages/runtime/build/state-paths.d.ts +0 -7
- package/dist/packages/runtime/build/state-paths.js +0 -22
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -34
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -28
package/README.md
CHANGED
|
@@ -1,268 +1,164 @@
|
|
|
1
1
|
# Interf
|
|
2
2
|
|
|
3
|
-
**Interf prepares data for
|
|
3
|
+
**Interf prepares data for agent tasks.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Interf structures your files into a task-specific graph your agent can navigate.
|
|
6
|
+
Your agent starts from prepared context built for the task, instead of a partial
|
|
7
|
+
read of whatever files it happened to open.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
facts across files. That file-to-context step is hidden, inconsistent, and hard
|
|
11
|
-
to inspect.
|
|
9
|
+
> This npm package is the `interf` CLI and local runtime. A Mac app (Interf
|
|
10
|
+
> Desktop) is coming soon.
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
their files. It has source coverage summaries, task-aware knowledge, artifact
|
|
15
|
-
handoffs, and links back to sources. Your agent uses the prepared map instead
|
|
16
|
-
of rediscovering the files during the task.
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
Source files Context Graph agents use
|
|
20
|
-
|
|
21
|
-
bristol-office-market/ <context-graph>/
|
|
22
|
-
q4-market-report.pdf AGENTS.md
|
|
23
|
-
lease-comps.xlsx home.md
|
|
24
|
-
planning-notes.md summaries/
|
|
25
|
-
exports/availability.csv knowledge/
|
|
26
|
-
artifacts/
|
|
27
|
-
traces/
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## What a Build Produces
|
|
31
|
-
|
|
32
|
-
A Build produces a Context Graph. The Context Graph is source-backed context
|
|
33
|
-
built from files so agents can use prepared context instead of partial file
|
|
34
|
-
reads.
|
|
35
|
-
|
|
36
|
-
For a local Build, the Context Graph is an inspectable folder:
|
|
37
|
-
|
|
38
|
-
```text
|
|
39
|
-
<context-graph>/
|
|
40
|
-
AGENTS.md # agent guidance
|
|
41
|
-
home.md # overview and routes
|
|
42
|
-
artifacts/ # task-specific agent handoffs
|
|
43
|
-
summaries/ # source coverage proof
|
|
44
|
-
knowledge/ # navigation and drilldown
|
|
45
|
-
traces/ # links back to sources
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
The output is not an answer. It is a prepared map over the Source: artifact
|
|
49
|
-
handoffs, summaries, knowledge notes, and links back to sources. The Source
|
|
50
|
-
remains the ground truth. Agents start from `artifacts/`, use `summaries/` for
|
|
51
|
-
coverage proof and `knowledge/` for drilldown, then follow source links when
|
|
52
|
-
exact wording, table values, chart reads, or provenance-sensitive claims matter.
|
|
53
|
-
|
|
54
|
-
## Design Choices
|
|
55
|
-
|
|
56
|
-
- `Project-scoped`: every Project starts from a specific Source and selected
|
|
57
|
-
Build Plan, not a generic index over every file.
|
|
58
|
-
- `Inspectable`: Interf records what was built, which requested Artifacts exist,
|
|
59
|
-
and where source-backed traces live.
|
|
60
|
-
- `Local-first`: local Builds keep Source files on your machine and read-only.
|
|
61
|
-
- `Bring your own agent`: use Claude Code, Codex, or another registered
|
|
62
|
-
command-line agent.
|
|
63
|
-
- `File over hidden index`: local Builds expose the Context Graph as a folder
|
|
64
|
-
agents can inspect.
|
|
65
|
-
- `Context Checks you control`: every Build can be checked against
|
|
66
|
-
plain-English conditions such as "Every page is covered" or "Every figure
|
|
67
|
-
cites a source page."
|
|
68
|
-
|
|
69
|
-
## Why Not Just Ask Your Agent?
|
|
70
|
-
|
|
71
|
-
You can. Interf can use Claude Code, Codex, or another registered local agent
|
|
72
|
-
while it builds the Context Graph.
|
|
73
|
-
|
|
74
|
-
A one-off preprocessing prompt gives you another answer to trust. Interf puts
|
|
75
|
-
the preparation step inside a Build Plan you can inspect: requested Artifacts,
|
|
76
|
-
declared stages, Build evidence, Context Checks, and traces.
|
|
77
|
-
|
|
78
|
-
The agent can still execute the stages. Interf shows what was covered, what was
|
|
79
|
-
produced, and whether the Context Graph is ready for the task.
|
|
80
|
-
|
|
81
|
-
## Install
|
|
12
|
+
## Quick start
|
|
82
13
|
|
|
83
14
|
```bash
|
|
84
15
|
npm install -g @interf/compiler
|
|
85
|
-
interf
|
|
16
|
+
interf # the interactive wizard walks you through your first build
|
|
86
17
|
```
|
|
87
18
|
|
|
88
|
-
Requires Node
|
|
89
|
-
|
|
90
|
-
executor is not detected.
|
|
19
|
+
Requires Node 20+ and a local agent CLI (Claude Code, Codex, or another). Check
|
|
20
|
+
it with `interf doctor --live`.
|
|
91
21
|
|
|
92
|
-
|
|
22
|
+
Or run it command by command:
|
|
93
23
|
|
|
94
24
|
```bash
|
|
95
|
-
#
|
|
96
|
-
interf
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
interf
|
|
25
|
+
interf runtime # start the local runtime
|
|
26
|
+
interf project create bristol \ # bind a folder + the agent's task
|
|
27
|
+
--source ./bristol-office-market \
|
|
28
|
+
--intent "Bristol annual take-up and availability"
|
|
29
|
+
interf plan draft bristol # draft a Build Plan, then review it
|
|
30
|
+
interf plan select bristol <build-plan-id> # pick the reviewed plan
|
|
31
|
+
interf build bristol # build the graph
|
|
32
|
+
```
|
|
100
33
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
--artifacts "Guide to the report; annual take-up figures with source references" \
|
|
105
|
-
--ready-when "Every page is listed and every figure has a source reference."
|
|
34
|
+
`interf build` returns the graph path: a folder your agent opens and continues
|
|
35
|
+
from. No `--out` flag, no copy of your Source. Mutating commands never auto-start
|
|
36
|
+
the runtime; they exit with a hint if nothing is connected.
|
|
106
37
|
|
|
107
|
-
|
|
108
|
-
interf plan select bristol <build-plan-id>
|
|
38
|
+
## What you get
|
|
109
39
|
|
|
110
|
-
|
|
111
|
-
|
|
40
|
+
A folder your agent navigates instead of grepping raw files. Interf calls it a
|
|
41
|
+
**Context Graph**:
|
|
112
42
|
|
|
113
|
-
|
|
114
|
-
|
|
43
|
+
```text
|
|
44
|
+
<graph>/
|
|
45
|
+
home.md # start here. routes into the three layers below
|
|
46
|
+
summaries/ # one folder per source file. every file read and summarized
|
|
47
|
+
knowledge/ # the connected web: linked notes, claims, entities, source refs
|
|
48
|
+
artifacts/ # task handoffs that reference summaries and knowledge
|
|
49
|
+
traces/ # provenance: every claim links back to source
|
|
50
|
+
AGENTS.md # how agents use the graph (plus CLAUDE.md for Claude Code)
|
|
115
51
|
```
|
|
116
52
|
|
|
117
|
-
`
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
53
|
+
`summaries/`, `knowledge/`, and `artifacts/` are the three fixed layers, plus
|
|
54
|
+
`home.md`. What goes inside `knowledge/` (claims, entities, timelines, tables) is
|
|
55
|
+
up to the Build Plan, so any task shapes its own web. Your Source stays read-only
|
|
56
|
+
and the ground truth. Agents follow source links when exact wording, table
|
|
57
|
+
values, or chart reads matter.
|
|
121
58
|
|
|
122
|
-
|
|
123
|
-
connected, they exit with a hint pointing at `interf runtime`,
|
|
124
|
-
`interf runtime start`, or `interf login`.
|
|
59
|
+
## Why Interf is different
|
|
125
60
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
61
|
+
Most tools prepare your files one way for every question: chunks in a vector
|
|
62
|
+
store, or a single knowledge graph that maps everything the same way (RAG
|
|
63
|
+
indexes, Obsidian-style graphs, code-graph tools). Interf is `task-specific`. You
|
|
64
|
+
tell it what the agent needs to do, and it builds a graph tailored to that task:
|
|
65
|
+
the right summaries, connections, and entrypoints for *this* work, not a one-size
|
|
66
|
+
index of all your files.
|
|
129
67
|
|
|
130
|
-
|
|
68
|
+
And the graph is `provable`:
|
|
131
69
|
|
|
132
|
-
|
|
133
|
-
|
|
70
|
+
- `Coverage`: every Source file was read and summarized.
|
|
71
|
+
- `Traceability`: every claim links back to a Source, and every note connects to
|
|
72
|
+
the web. No orphans, no islands.
|
|
134
73
|
|
|
135
|
-
It
|
|
136
|
-
the
|
|
74
|
+
It is `provider-agnostic` by design: the same prepared context works across
|
|
75
|
+
Claude, Codex, GPT, and whatever you switch to next, because the graph is a
|
|
76
|
+
portable folder you own, never trapped in one vendor's session. Your own agents
|
|
77
|
+
do the work, your files never leave your machine, and the output is files you can
|
|
78
|
+
read, diff, commit, and reuse.
|
|
137
79
|
|
|
138
|
-
|
|
139
|
-
<context-graph>/
|
|
140
|
-
AGENTS.md # agent-facing guidance and source-checking rules
|
|
141
|
-
CLAUDE.md # same guidance for Claude Code
|
|
142
|
-
home.md # graph index
|
|
143
|
-
artifacts/ # task-specific handoffs for agents
|
|
144
|
-
summaries/ # one source-named folder per source file
|
|
145
|
-
knowledge/ # linked notes built from summaries and source refs
|
|
146
|
-
traces/ # source provenance for claims and checks
|
|
147
|
-
```
|
|
80
|
+
## Design principles
|
|
148
81
|
|
|
149
|
-
|
|
150
|
-
|
|
82
|
+
- `Not a replacement for your agent harness`: just a task-specific graph to navigate.
|
|
83
|
+
- `Your files stay yours`: local, read-only, never sent to Interf's servers.
|
|
84
|
+
- `Runs with your agents`: your CLIs, your subscriptions, in a replayable shell.
|
|
85
|
+
- `File over app`: the graph is inspectable files, not a hidden index.
|
|
86
|
+
- `Connected, not orphaned`: every note links to others and back to sources.
|
|
87
|
+
- `Coverage-first`: exact file, summary, knowledge, and output counts.
|
|
88
|
+
- `Project-scoped`: one Source, one agent task, one Build Plan.
|
|
151
89
|
|
|
152
|
-
|
|
153
|
-
outputs, follow the prepared routes, and use the recorded source references
|
|
154
|
-
when exact source evidence matters.
|
|
90
|
+
## Readiness is provable
|
|
155
91
|
|
|
156
|
-
|
|
92
|
+
Every Build reports exact coverage metrics (files processed, source units
|
|
93
|
+
summarized, knowledge reviewed and used, graph outputs, entrypoints) behind a
|
|
94
|
+
single `ready` / `not ready` verdict backed by two deterministic guarantees:
|
|
157
95
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
96
|
+
- **Coverage**: every Source file was read and summarized. This is file-level. It
|
|
97
|
+
does not claim every fact was caught, only that no file went unread.
|
|
98
|
+
- **Traceability**: every claim links back to a Source, every summary is linked,
|
|
99
|
+
and every knowledge note connects to the web. No orphans, no islands.
|
|
161
100
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
`interf plan draft <project-id>`.
|
|
101
|
+
If a file is unread, a claim is unlinked, or a note is an island, the graph is
|
|
102
|
+
`not ready` and the gap is named.
|
|
165
103
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
build-plan.schema.json # output contract: required Context Graph files/folders
|
|
170
|
-
README.md # what this Build Plan is for
|
|
171
|
-
build/
|
|
172
|
-
stages/
|
|
173
|
-
summarize/ # stage instructions Interf runs during the Build
|
|
174
|
-
structure/
|
|
175
|
-
shape/
|
|
176
|
-
use/
|
|
177
|
-
query/ # how agents read the Context Graph
|
|
178
|
-
improve/ # how Interf revises the plan if checks still fail
|
|
179
|
-
```
|
|
104
|
+
`interf benchmark` is a separate, optional check that scores answer accuracy
|
|
105
|
+
against the Source baseline, the graph, or both. It is a fallible double-check,
|
|
106
|
+
never a readiness gate.
|
|
180
107
|
|
|
181
|
-
|
|
182
|
-
requested Artifacts, stages, and how the files should be built.
|
|
183
|
-
- `build-plan.schema.json` describes the output contract: what the Context Graph
|
|
184
|
-
must contain.
|
|
185
|
-
- `build/stages/<stage>/` is where you author one folder per stage.
|
|
186
|
-
- `use/query/` holds the instructions agents follow when they read the Context
|
|
187
|
-
Graph for the task.
|
|
188
|
-
- `improve/` holds the instructions Interf follows when the first Build misses
|
|
189
|
-
and the Build Plan itself needs editing.
|
|
108
|
+
## Build Plans
|
|
190
109
|
|
|
191
|
-
|
|
110
|
+
A Build Plan is the reviewed recipe for how Interf builds the graph from your
|
|
111
|
+
Source for the task: requested outputs, stage instructions, expected inputs, and
|
|
112
|
+
the entrypoints you review before building. `interf-default` ships built in.
|
|
113
|
+
Draft your own with `interf plan draft <project-id>`, or save one with
|
|
114
|
+
`interf plan save <path>`.
|
|
192
115
|
|
|
193
|
-
When
|
|
194
|
-
|
|
116
|
+
When a Build comes back `not ready`, Interf can revise the plan and build again
|
|
117
|
+
(same Source, same intent, better plan), recorded as a Run:
|
|
195
118
|
|
|
196
119
|
```bash
|
|
197
120
|
interf plan improve <project-id>
|
|
198
121
|
```
|
|
199
122
|
|
|
200
|
-
|
|
201
|
-
Build evidence, and resulting Context Graph.
|
|
202
|
-
|
|
203
|
-
## Context Checks And Benchmarks
|
|
204
|
-
|
|
205
|
-
Context Checks are plain-English promises the user reviews before a Build.
|
|
206
|
-
Requested Artifacts back those checks.
|
|
207
|
-
|
|
208
|
-
Examples:
|
|
123
|
+
A Build Plan is a folder you can read and version:
|
|
209
124
|
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
accuracy against an agent source-access baseline, the Context Graph, or both.
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
interf benchmark bristol
|
|
221
|
-
interf benchmark bristol --target source-files
|
|
222
|
-
interf benchmark bristol --target context-graph
|
|
125
|
+
```text
|
|
126
|
+
<build-plan>/
|
|
127
|
+
build-plan.json # outputs, stages, and build rules
|
|
128
|
+
build-plan.schema.json # the output contract: what the graph must contain
|
|
129
|
+
build/stages/<stage>/ # the instructions Interf runs for each stage
|
|
130
|
+
use/query/ # how agents read the graph for the task
|
|
131
|
+
improve/ # how Interf revises the plan when checks still fail
|
|
223
132
|
```
|
|
224
133
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
-
|
|
245
|
-
|
|
246
|
-
-
|
|
247
|
-
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
-
|
|
252
|
-
-
|
|
253
|
-
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
- `interf status` - show the active connection and Project summary.
|
|
257
|
-
- `interf doctor --live` - check the local executor before a Build.
|
|
258
|
-
|
|
259
|
-
## Public Assets
|
|
260
|
-
|
|
261
|
-
- [skills/interf](./skills/interf/) - bundled agent Skill for Interf.
|
|
262
|
-
- [build-plans/interf-default](./build-plans/interf-default/) - default Build
|
|
263
|
-
Plan that ships with `interf`.
|
|
264
|
-
|
|
265
|
-
Contributors: see [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
266
|
-
|
|
267
|
-
License: see [LICENSE.md](./LICENSE.md). © 2026 Interf Inc. All rights reserved.
|
|
268
|
-
Name and branding: see [TRADEMARKS.md](./TRADEMARKS.md).
|
|
134
|
+
## Commands
|
|
135
|
+
|
|
136
|
+
| Command | What it does |
|
|
137
|
+
|---|---|
|
|
138
|
+
| `interf` / `interf init` | Open the interactive wizard |
|
|
139
|
+
| `interf runtime` / `start` / `stop` | Run, background, or stop the local runtime |
|
|
140
|
+
| `interf project create / ls / show / rm` | Manage Projects |
|
|
141
|
+
| `interf plan draft / select / improve / save / list / show` | Manage Build Plans |
|
|
142
|
+
| `interf build <id>` | Build the graph for a Project |
|
|
143
|
+
| `interf graphs ls / show --project <id>` | Inspect built graphs |
|
|
144
|
+
| `interf traces ls / show --project <id>` | Inspect source provenance |
|
|
145
|
+
| `interf runs ls / status --project <id>` | Inspect Runs |
|
|
146
|
+
| `interf benchmark <id>` | Optional accuracy check |
|
|
147
|
+
| `interf agents ls / use / register / map` | Configure local execution agents |
|
|
148
|
+
| `interf status` | Connection and Project summary |
|
|
149
|
+
| `interf doctor --live` | Check your agent before a Build |
|
|
150
|
+
|
|
151
|
+
## What Interf is not
|
|
152
|
+
|
|
153
|
+
- Not a second brain or memory product: one Project, one Source, one task.
|
|
154
|
+
- Not a vector store or hosted RAG server: the graph is inspectable, source-backed files.
|
|
155
|
+
- Not a hosted data platform: local Builds run on your machine.
|
|
156
|
+
- Not a general knowledge graph or notes app: each graph is built for one agent task, not a single index of everything.
|
|
157
|
+
|
|
158
|
+
## More
|
|
159
|
+
|
|
160
|
+
- [skills/interf](./skills/interf/): the bundled agent Skill.
|
|
161
|
+
- [build-plans/interf-default](./build-plans/interf-default/): the default Build Plan.
|
|
162
|
+
- [CONTRIBUTING.md](./CONTRIBUTING.md) · [LICENSE.md](./LICENSE.md) · [TRADEMARKS.md](./TRADEMARKS.md)
|
|
163
|
+
|
|
164
|
+
© 2026 Interf Inc. All rights reserved.
|
|
@@ -12,38 +12,7 @@
|
|
|
12
12
|
* `~/.interf/agents.json` directly — the service is the source of truth.
|
|
13
13
|
*/
|
|
14
14
|
import chalk from "chalk";
|
|
15
|
-
import {
|
|
16
|
-
function resolveConnection(args) {
|
|
17
|
-
const conn = readActiveConnection({
|
|
18
|
-
urlOverride: args.url,
|
|
19
|
-
authTokenOverride: args.token,
|
|
20
|
-
});
|
|
21
|
-
if (!conn) {
|
|
22
|
-
console.error(CONNECT_OR_ERROR_HINT);
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
|
-
return { url: conn.url.replace(/\/+$/, ""), token: conn.auth_token };
|
|
26
|
-
}
|
|
27
|
-
async function callJson(url, token, init = {}) {
|
|
28
|
-
const headers = new Headers(init.headers ?? {});
|
|
29
|
-
if (token)
|
|
30
|
-
headers.set("authorization", `Bearer ${token}`);
|
|
31
|
-
if (init.body && !headers.has("content-type")) {
|
|
32
|
-
headers.set("content-type", "application/json");
|
|
33
|
-
}
|
|
34
|
-
const response = await fetch(url, { ...init, headers });
|
|
35
|
-
const raw = await response.text();
|
|
36
|
-
let body = null;
|
|
37
|
-
if (raw.length > 0) {
|
|
38
|
-
try {
|
|
39
|
-
body = JSON.parse(raw);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
body = null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return { status: response.status, body, raw };
|
|
46
|
-
}
|
|
15
|
+
import { callJson, resolveConnection } from "../lib/http-client.js";
|
|
47
16
|
function formatAgentLine(agent, registry) {
|
|
48
17
|
const isActive = agent.name === registry.active_agent?.name;
|
|
49
18
|
const sourceLabel = agent.source === "builtin" ? "builtin" : "user";
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { CommandModule } from "yargs";
|
|
2
|
+
import { type ConnectionArgs } from "../lib/http-client.js";
|
|
2
3
|
type BenchmarkTarget = "context-graph" | "source-files" | "both";
|
|
3
|
-
interface BenchmarkArgs {
|
|
4
|
+
interface BenchmarkArgs extends ConnectionArgs {
|
|
4
5
|
projectId: string;
|
|
5
6
|
target?: BenchmarkTarget;
|
|
6
|
-
url?: string;
|
|
7
|
-
token?: string;
|
|
8
7
|
}
|
|
9
8
|
export declare const benchmarkCommand: CommandModule<unknown, BenchmarkArgs>;
|
|
10
9
|
export {};
|
|
@@ -9,37 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
11
|
import chalk from "chalk";
|
|
12
|
-
import {
|
|
13
|
-
function resolveConnection(args) {
|
|
14
|
-
const conn = readActiveConnection({
|
|
15
|
-
urlOverride: args.url,
|
|
16
|
-
authTokenOverride: args.token,
|
|
17
|
-
});
|
|
18
|
-
if (!conn) {
|
|
19
|
-
console.error(CONNECT_OR_ERROR_HINT);
|
|
20
|
-
process.exit(1);
|
|
21
|
-
}
|
|
22
|
-
return { url: conn.url.replace(/\/+$/, ""), token: conn.auth_token };
|
|
23
|
-
}
|
|
24
|
-
async function callJson(url, token, init = {}) {
|
|
25
|
-
const headers = new Headers(init.headers ?? {});
|
|
26
|
-
if (token)
|
|
27
|
-
headers.set("authorization", `Bearer ${token}`);
|
|
28
|
-
if (init.body && !headers.has("content-type"))
|
|
29
|
-
headers.set("content-type", "application/json");
|
|
30
|
-
const response = await fetch(url, { ...init, headers });
|
|
31
|
-
const raw = await response.text();
|
|
32
|
-
let body = null;
|
|
33
|
-
if (raw.length > 0) {
|
|
34
|
-
try {
|
|
35
|
-
body = JSON.parse(raw);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
body = null;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return { status: response.status, body, raw };
|
|
42
|
-
}
|
|
12
|
+
import { callJson, resolveConnection } from "../lib/http-client.js";
|
|
43
13
|
function buildBenchmarkArgs(yargs) {
|
|
44
14
|
return yargs
|
|
45
15
|
.positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
|
|
@@ -13,41 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import chalk from "chalk";
|
|
15
15
|
import { resolve } from "node:path";
|
|
16
|
-
import {
|
|
16
|
+
import { callJson, resolveConnection } from "../lib/http-client.js";
|
|
17
17
|
import { buildPlanResourcePath, projectResourcePath, projectSubresourcePath, } from "../../packages/runtime/service/routes.js";
|
|
18
18
|
import { BuildPlanAuthoringArtifactRequirementSchema, BuildPlanContextCheckDraftSchema, RequestedArtifactSchema, SourceContextSchema, } from "../../packages/runtime/schemas/index.js";
|
|
19
19
|
import { artifactRequirementsFromRequestedArtifacts, formatRequestedArtifactsForPrompt, requestedArtifactsFromPlanArtifacts, } from "../../packages/runtime/requested-artifacts.js";
|
|
20
20
|
import { slugify } from "../../packages/contracts/utils/naming.js";
|
|
21
|
-
function resolveConnection(args) {
|
|
22
|
-
const conn = readActiveConnection({
|
|
23
|
-
urlOverride: args.url,
|
|
24
|
-
authTokenOverride: args.token,
|
|
25
|
-
});
|
|
26
|
-
if (!conn) {
|
|
27
|
-
console.error(CONNECT_OR_ERROR_HINT);
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
return { url: conn.url.replace(/\/+$/, ""), token: conn.auth_token };
|
|
31
|
-
}
|
|
32
|
-
async function callJson(url, token, init = {}) {
|
|
33
|
-
const headers = new Headers(init.headers ?? {});
|
|
34
|
-
if (token)
|
|
35
|
-
headers.set("authorization", `Bearer ${token}`);
|
|
36
|
-
if (init.body && !headers.has("content-type"))
|
|
37
|
-
headers.set("content-type", "application/json");
|
|
38
|
-
const response = await fetch(url, { ...init, headers });
|
|
39
|
-
const raw = await response.text();
|
|
40
|
-
let body = null;
|
|
41
|
-
if (raw) {
|
|
42
|
-
try {
|
|
43
|
-
body = JSON.parse(raw);
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
body = null;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return { status: response.status, body, raw };
|
|
50
|
-
}
|
|
51
21
|
const BuildPlanAuthoringArtifactRequirementsCliSchema = BuildPlanAuthoringArtifactRequirementSchema.array();
|
|
52
22
|
const BuildPlanChecksCliSchema = BuildPlanContextCheckDraftSchema.array();
|
|
53
23
|
const RequestedArtifactsCliSchema = RequestedArtifactSchema.array();
|
|
@@ -105,7 +75,7 @@ function renderBuildPlanSummary(buildPlan) {
|
|
|
105
75
|
const artifacts = buildPlan.artifacts ?? [];
|
|
106
76
|
if (artifacts.length > 0) {
|
|
107
77
|
console.log();
|
|
108
|
-
console.log(chalk.bold("
|
|
78
|
+
console.log(chalk.bold(" Requested outputs"));
|
|
109
79
|
for (const artifact of artifacts) {
|
|
110
80
|
const shape = artifact.shape?.path
|
|
111
81
|
? chalk.dim(` -> ${artifact.shape.path}`)
|
|
@@ -158,10 +128,10 @@ function buildTaskPrompt(args, requestedArtifacts, projectId, mode) {
|
|
|
158
128
|
const sections = [
|
|
159
129
|
`${mode === "improve" ? "Improve" : "Draft"} a Build Plan for Project "${projectId}".`,
|
|
160
130
|
args.intent?.trim() ? `Intent:\n${args.intent.trim()}` : null,
|
|
161
|
-
requestedArtifactsText ? `Requested
|
|
162
|
-
args.artifacts?.trim() ? `Additional
|
|
163
|
-
args.readyWhen?.trim() ? `
|
|
164
|
-
"Return a Build Plan definition that
|
|
131
|
+
requestedArtifactsText ? `Requested graph outputs:\n${requestedArtifactsText}` : null,
|
|
132
|
+
args.artifacts?.trim() ? `Additional output notes:\n${args.artifacts.trim()}` : null,
|
|
133
|
+
args.readyWhen?.trim() ? `Coverage goal:\n${args.readyWhen.trim()}` : null,
|
|
134
|
+
"Return a Build Plan definition that starts from Project intent, declares the Context Graph outputs, stage inputs, coverage metrics, and deterministic validation needed for local service review.",
|
|
165
135
|
].filter((section) => Boolean(section));
|
|
166
136
|
return sections.join("\n\n");
|
|
167
137
|
}
|
|
@@ -180,6 +150,8 @@ async function readProjectContext(url, token, projectId) {
|
|
|
180
150
|
async function startBuildPlanRun(args, mode) {
|
|
181
151
|
const { url, token } = resolveConnection(args);
|
|
182
152
|
const { project } = await readProjectContext(url, token, args.projectId);
|
|
153
|
+
const projectIntent = typeof project.intent === "string" ? project.intent.trim() : "";
|
|
154
|
+
const effectiveIntent = args.intent?.trim() || projectIntent;
|
|
183
155
|
const existingBuildPlan = selectedBuildPlanId(project);
|
|
184
156
|
const buildPlanId = args.buildPlan ?? (mode === "improve" ? existingBuildPlan : defaultBuildPlanIdForProject(args.projectId));
|
|
185
157
|
const explicitRequestedArtifacts = parseJsonOption("--requested-artifacts-json", args.requestedArtifactsJson, (input) => RequestedArtifactsCliSchema.parse(input));
|
|
@@ -200,18 +172,22 @@ async function startBuildPlanRun(args, mode) {
|
|
|
200
172
|
: []);
|
|
201
173
|
if (!buildPlanId) {
|
|
202
174
|
console.error(chalk.red(`Project ${args.projectId} has no selected Build Plan to improve.`));
|
|
203
|
-
console.error(chalk.dim(`Draft a Build Plan first: interf plan draft ${args.projectId}
|
|
175
|
+
console.error(chalk.dim(`Draft a Build Plan first: interf plan draft ${args.projectId}`));
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
if (!effectiveIntent) {
|
|
179
|
+
console.error(chalk.red(`Project ${args.projectId} has no saved intent.`));
|
|
180
|
+
console.error(chalk.dim("Create or update the Project with an agent task intent before drafting a Build Plan."));
|
|
204
181
|
process.exit(1);
|
|
205
182
|
}
|
|
206
183
|
const body = {
|
|
207
|
-
project: args.projectId,
|
|
208
184
|
...(args.baseBuildPlan ? { base_build_plan_id: args.baseBuildPlan } : {}),
|
|
209
185
|
...(args.referenceBuildPlan ? { reference_build_plan_id: args.referenceBuildPlan } : {}),
|
|
210
186
|
...(mode === "improve" && !args.referenceBuildPlan && existingBuildPlan ? { reference_build_plan_id: existingBuildPlan } : {}),
|
|
211
187
|
build_plan_id: buildPlanId,
|
|
212
188
|
label: args.label ?? labelFromBuildPlanId(buildPlanId),
|
|
213
189
|
hint: args.hint ?? `Build Plan for Project ${args.projectId}.`,
|
|
214
|
-
intent: buildTaskPrompt(args, requestedArtifacts, args.projectId, mode),
|
|
190
|
+
intent: buildTaskPrompt({ ...args, intent: effectiveIntent }, requestedArtifacts, args.projectId, mode),
|
|
215
191
|
checks: buildPlanChecks,
|
|
216
192
|
requested_artifacts: requestedArtifacts,
|
|
217
193
|
artifact_requirements: artifactRequirements,
|
|
@@ -328,13 +304,13 @@ export const buildPlanCommand = {
|
|
|
328
304
|
})
|
|
329
305
|
.command("draft <project-id>", "Start a Build Plan draft run for a Project", (y) => y
|
|
330
306
|
.positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
|
|
331
|
-
.option("intent", { type: "string",
|
|
332
|
-
.option("artifacts", { type: "string", describe: "Requested
|
|
333
|
-
.option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested
|
|
334
|
-
.option("checks-json", { type: "string", describe: "JSON array of
|
|
335
|
-
.option("artifact-requirements-json", { type: "string", describe: "JSON array of exact
|
|
307
|
+
.option("intent", { type: "string", describe: "Agent task this Build Plan should support. Defaults to the Project intent." })
|
|
308
|
+
.option("artifacts", { type: "string", describe: "Requested outputs and why the agent needs them" })
|
|
309
|
+
.option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested outputs for Build Plan authoring" })
|
|
310
|
+
.option("checks-json", { type: "string", describe: "JSON array of coverage goals for Build Plan authoring" })
|
|
311
|
+
.option("artifact-requirements-json", { type: "string", describe: "JSON array of exact output requirements for the Build Plan" })
|
|
336
312
|
.option("source-context-json", { type: "string", describe: "JSON object with advisory Source context for Build Plan authoring" })
|
|
337
|
-
.option("ready-when", { type: "string", describe: "Plain-English
|
|
313
|
+
.option("ready-when", { type: "string", describe: "Plain-English coverage goal the Context Graph should satisfy" })
|
|
338
314
|
.option("build-plan", { type: "string", describe: "Build Plan id to write" })
|
|
339
315
|
.option("label", { type: "string", describe: "Human-readable Build Plan label" })
|
|
340
316
|
.option("hint", { type: "string", describe: "Short Build Plan summary for review" })
|
|
@@ -346,12 +322,12 @@ export const buildPlanCommand = {
|
|
|
346
322
|
.command("improve <project-id>", "Start a Build Plan improvement run for a Project", (y) => y
|
|
347
323
|
.positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
|
|
348
324
|
.option("intent", { type: "string", describe: "Change request for the selected Build Plan" })
|
|
349
|
-
.option("artifacts", { type: "string", describe: "Requested
|
|
350
|
-
.option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested
|
|
351
|
-
.option("checks-json", { type: "string", describe: "JSON array of
|
|
352
|
-
.option("artifact-requirements-json", { type: "string", describe: "JSON array of exact
|
|
325
|
+
.option("artifacts", { type: "string", describe: "Requested output changes and why they matter" })
|
|
326
|
+
.option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested outputs for Build Plan authoring" })
|
|
327
|
+
.option("checks-json", { type: "string", describe: "JSON array of coverage goals for Build Plan authoring" })
|
|
328
|
+
.option("artifact-requirements-json", { type: "string", describe: "JSON array of exact output requirements for the Build Plan" })
|
|
353
329
|
.option("source-context-json", { type: "string", describe: "JSON object with advisory Source context for Build Plan authoring" })
|
|
354
|
-
.option("ready-when", { type: "string", describe: "Plain-English
|
|
330
|
+
.option("ready-when", { type: "string", describe: "Plain-English coverage goal to add or change" })
|
|
355
331
|
.option("build-plan", { type: "string", describe: "Build Plan id to update" })
|
|
356
332
|
.option("label", { type: "string", describe: "Human-readable Build Plan label" })
|
|
357
333
|
.option("hint", { type: "string", describe: "Short Build Plan summary for review" })
|