@vimhead.dev/norn-cli 0.1.0-tip.35614826665.1 → 0.1.0-tip.35724621678.1
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/assets/README.md +41 -13
- package/assets/docs/README.md +16 -16
- package/assets/docs/agents.md +23 -15
- package/assets/docs/cli.md +10 -8
- package/assets/docs/composition.md +7 -7
- package/assets/docs/persistence.md +22 -22
- package/assets/docs/projects.md +6 -6
- package/assets/docs/recovery.md +10 -10
- package/assets/docs/schemas.md +42 -36
- package/assets/docs/workflows.md +39 -32
- package/assets/examples/agent-then-analysis/input.json +3 -3
- package/assets/examples/agent-then-analysis/norn.project.json +2 -2
- package/assets/examples/agent-then-analysis/plugin.ts +37 -9
- package/assets/examples/caller-owned-routing/README.md +6 -6
- package/assets/examples/caller-owned-routing/assessment.ts +18 -4
- package/assets/examples/caller-owned-routing/contracts.ts +7 -2
- package/assets/examples/caller-owned-routing/input.json +12 -12
- package/assets/examples/caller-owned-routing/norn.project.json +2 -2
- package/assets/examples/caller-owned-routing/revision.ts +7 -2
- package/assets/examples/caller-owned-routing/router.ts +14 -3
- package/assets/examples/caller-selected-continuation/caller.ts +38 -12
- package/assets/examples/caller-selected-continuation/input.json +7 -7
- package/assets/examples/caller-selected-continuation/norn.project.json +2 -2
- package/assets/examples/caller-selected-continuation/producer.ts +10 -3
- package/assets/examples/coordinating-multiple-agents/README.md +6 -6
- package/assets/examples/coordinating-multiple-agents/input.json +20 -8
- package/assets/examples/coordinating-multiple-agents/norn.project.json +2 -2
- package/assets/examples/coordinating-multiple-agents/plugin.ts +165 -46
- package/assets/examples/coordinating-multiple-agents/queue-tools.ts +30 -7
- package/assets/examples/coordinating-multiple-agents/work-queue.ts +211 -63
- package/assets/examples/getting-started/norn.project.json +2 -2
- package/assets/examples/getting-started/plugin.ts +33 -13
- package/assets/examples/minimal-workflow/norn.project.json +2 -2
- package/assets/examples/minimal-workflow/plugin.ts +12 -3
- package/assets/examples/shared-state/README.md +6 -6
- package/assets/examples/shared-state/input.json +1 -1
- package/assets/examples/shared-state/norn.project.json +2 -2
- package/assets/examples/shared-state/plugin.ts +44 -15
- package/assets/examples/shared-state/shared-state.ts +46 -13
- package/assets/examples/shared-state/state-tools.ts +68 -16
- package/assets/examples/worktree-development-loop/README.md +12 -12
- package/assets/examples/worktree-development-loop/norn.project.json +7 -7
- package/assets/examples/worktree-development-loop/plugin.ts +7 -1
- package/assets/examples/worktree-development-loop/scope.ts +4 -1
- package/assets/examples/worktree-development-loop/shared/commands.ts +6 -2
- package/assets/examples/worktree-development-loop/workflows/development-loop/execute.ts +18 -4
- package/assets/examples/worktree-development-loop/workflows/development-loop/index.ts +4 -1
- package/assets/examples/worktree-development-loop/workflows/development-loop/repository.ts +11 -1
- package/assets/examples/worktree-development-loop/workflows/development-loop/schema.ts +6 -2
- package/assets/examples/worktree-development-loop/workflows/implementation/execute.ts +40 -10
- package/assets/examples/worktree-development-loop/workflows/implementation/index.ts +5 -1
- package/assets/examples/worktree-development-loop/workflows/planning/execute.ts +1 -1
- package/assets/examples/worktree-development-loop/workflows/planning/index.ts +5 -1
- package/assets/examples/worktree-development-loop/workflows/review/execute.ts +33 -9
- package/assets/examples/worktree-development-loop/workflows/review-router/execute.ts +51 -8
- package/assets/package.json +1 -1
- package/assets/packages/cli/src/build-info.ts +4 -1
- package/assets/packages/cli/src/bun/cli.ts +21 -5
- package/assets/packages/cli/src/cli.ts +585 -170
- package/assets/packages/cli/src/client.ts +194 -36
- package/assets/packages/cli/src/documentation.ts +135 -30
- package/assets/packages/cli/src/generated-build-info.ts +2 -2
- package/assets/packages/cli/src/internal/agent-directory.ts +7 -2
- package/assets/packages/cli/src/internal/agent-response-tool.ts +57 -15
- package/assets/packages/cli/src/internal/agents.ts +248 -60
- package/assets/packages/cli/src/internal/commands.ts +82 -20
- package/assets/packages/cli/src/internal/documentation-bundle.ts +44 -13
- package/assets/packages/cli/src/internal/engine.ts +396 -87
- package/assets/packages/cli/src/internal/errors.ts +13 -5
- package/assets/packages/cli/src/internal/execution-context.ts +20 -12
- package/assets/packages/cli/src/internal/file-coordinator.ts +95 -26
- package/assets/packages/cli/src/internal/file-names.ts +4 -1
- package/assets/packages/cli/src/internal/launch-request.ts +74 -22
- package/assets/packages/cli/src/internal/logs.ts +10 -2
- package/assets/packages/cli/src/internal/metrics.ts +247 -61
- package/assets/packages/cli/src/internal/pi-assets.ts +105 -23
- package/assets/packages/cli/src/internal/run-lease.ts +72 -22
- package/assets/packages/cli/src/internal/run-log.ts +49 -20
- package/assets/packages/cli/src/internal/run-names.ts +120 -12
- package/assets/packages/cli/src/internal/run-state.ts +306 -71
- package/assets/packages/cli/src/internal/run-store.ts +216 -53
- package/assets/packages/cli/src/internal/usage.ts +23 -7
- package/assets/packages/cli/src/internal/worker-directory.ts +9 -3
- package/assets/packages/cli/src/internal/workflow-registry.ts +281 -70
- package/assets/packages/cli/src/internal/working-directory.ts +2 -1
- package/assets/packages/cli/src/workflow-loader.ts +341 -74
- package/assets/packages/core/src/atomic-files.ts +13 -4
- package/assets/packages/core/src/workflow-transition.ts +13 -2
- package/assets/packages/sdk/src/api.ts +248 -80
- package/assets/packages/sdk/src/index.ts +6 -1
- package/assets/packages/sdk/src/schema.ts +75 -21
- package/assets/tests/workflow-ref.test.ts +242 -57
- package/bin/norn.mjs +13 -4
- package/dist/cli.js +344 -90
- package/dist/client.js +100 -22
- package/dist/documentation.js +102 -25
- package/dist/generated-build-info.d.ts +2 -2
- package/dist/generated-build-info.js +2 -2
- package/dist/internal/agent-directory.js +3 -1
- package/dist/internal/agent-response-tool.js +42 -11
- package/dist/internal/agents.js +149 -37
- package/dist/internal/commands.js +65 -16
- package/dist/internal/documentation-bundle.js +23 -11
- package/dist/internal/engine.js +304 -66
- package/dist/internal/errors.js +4 -2
- package/dist/internal/execution-context.js +2 -1
- package/dist/internal/file-coordinator.js +59 -19
- package/dist/internal/launch-request.js +32 -14
- package/dist/internal/metrics.js +138 -38
- package/dist/internal/pi-assets.js +70 -19
- package/dist/internal/run-lease.js +29 -9
- package/dist/internal/run-log.js +24 -12
- package/dist/internal/run-state.js +172 -48
- package/dist/internal/run-store.js +157 -45
- package/dist/internal/worker-directory.js +6 -2
- package/dist/internal/workflow-registry.js +123 -32
- package/dist/internal/working-directory.js +2 -1
- package/dist/workflow-loader.js +198 -41
- package/package.json +2 -2
|
@@ -11,7 +11,10 @@ export const reviewRouterWorkflow = developmentLoopScope.workflow({
|
|
|
11
11
|
entrypoint: false,
|
|
12
12
|
gate: {
|
|
13
13
|
enabled: true,
|
|
14
|
-
describe: ({ args }) =>
|
|
14
|
+
describe: ({ args }) =>
|
|
15
|
+
`Review iteration ${args.iteration}.
|
|
16
|
+
Confirm or edit the automated decision before continuing.
|
|
17
|
+
Plan: ${args.planPath}.`,
|
|
15
18
|
fields: ["decision", "summary"] as const,
|
|
16
19
|
},
|
|
17
20
|
args: reviewRouterArgsSchema,
|
|
@@ -25,32 +28,72 @@ export const reviewRouterWorkflow = developmentLoopScope.workflow({
|
|
|
25
28
|
await mkdir(join(paths.workspace, "review"), { recursive: true });
|
|
26
29
|
await writeFile(
|
|
27
30
|
join(paths.workspace, reviewPath),
|
|
28
|
-
JSON.stringify(
|
|
31
|
+
JSON.stringify(
|
|
32
|
+
{
|
|
33
|
+
decision: args.decision,
|
|
34
|
+
summary: args.summary,
|
|
35
|
+
automatedReviewPath: args.automatedReviewPath,
|
|
36
|
+
},
|
|
37
|
+
null,
|
|
38
|
+
2,
|
|
39
|
+
),
|
|
29
40
|
);
|
|
30
|
-
const lastReview: StoredReview = {
|
|
41
|
+
const lastReview: StoredReview = {
|
|
42
|
+
decision: args.decision,
|
|
43
|
+
summary: args.summary,
|
|
44
|
+
reviewPath,
|
|
45
|
+
};
|
|
31
46
|
|
|
32
47
|
if (args.decision === "accept") {
|
|
33
48
|
return run.complete({
|
|
34
49
|
summary: `Implementation accepted after ${currentIteration} iteration(s).`,
|
|
35
|
-
data: {
|
|
50
|
+
data: {
|
|
51
|
+
status: "done",
|
|
52
|
+
repositoryPath,
|
|
53
|
+
planPath,
|
|
54
|
+
reviewPath,
|
|
55
|
+
iterations: currentIteration,
|
|
56
|
+
lastReview,
|
|
57
|
+
},
|
|
36
58
|
});
|
|
37
59
|
}
|
|
38
60
|
|
|
39
61
|
if (args.decision === "blocked") {
|
|
40
62
|
return run.fail({
|
|
41
63
|
summary: args.summary,
|
|
42
|
-
data: {
|
|
64
|
+
data: {
|
|
65
|
+
status: "blocked",
|
|
66
|
+
repositoryPath,
|
|
67
|
+
planPath,
|
|
68
|
+
reviewPath,
|
|
69
|
+
iterations: currentIteration,
|
|
70
|
+
lastReview,
|
|
71
|
+
},
|
|
43
72
|
});
|
|
44
73
|
}
|
|
45
74
|
|
|
46
75
|
if (currentIteration >= maxIterations) {
|
|
47
76
|
return run.fail({
|
|
48
77
|
summary: `Maximum iteration count reached after ${currentIteration} iteration(s).`,
|
|
49
|
-
data: {
|
|
78
|
+
data: {
|
|
79
|
+
status: "needs-attention",
|
|
80
|
+
repositoryPath,
|
|
81
|
+
planPath,
|
|
82
|
+
reviewPath,
|
|
83
|
+
iterations: currentIteration,
|
|
84
|
+
lastReview,
|
|
85
|
+
},
|
|
50
86
|
});
|
|
51
87
|
}
|
|
52
88
|
|
|
53
89
|
const nextIteration = currentIteration + 1;
|
|
54
|
-
return implementationWorkflow({
|
|
55
|
-
|
|
90
|
+
return implementationWorkflow({
|
|
91
|
+
task,
|
|
92
|
+
repositoryPath,
|
|
93
|
+
maxIterations,
|
|
94
|
+
planPath,
|
|
95
|
+
iteration: nextIteration,
|
|
96
|
+
previousReviewPath: reviewPath,
|
|
97
|
+
});
|
|
98
|
+
},
|
|
56
99
|
});
|
package/assets/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.1.0-tip.
|
|
1
|
+
{"version":"0.1.0-tip.35724621678.1"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { NORN_GENERATED_BUILD_INFO } from "./generated-build-info.ts";
|
|
2
2
|
|
|
3
|
-
export type NornBuildInfo =
|
|
3
|
+
export type NornBuildInfo =
|
|
4
|
+
| NornUnknownBuildInfo
|
|
5
|
+
| NornNpmRegistryBuildInfo
|
|
6
|
+
| NornGithubReleaseBinaryBuildInfo;
|
|
4
7
|
|
|
5
8
|
export type NornUnknownBuildInfo = {
|
|
6
9
|
readonly kind: "unknown";
|
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { resolveNornAgentDirectory } from "../internal/agent-directory.ts";
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import {
|
|
5
|
+
materializePiAssets,
|
|
6
|
+
resolvePiAssetsCacheRoot,
|
|
7
|
+
} from "../internal/pi-assets.ts";
|
|
8
|
+
import {
|
|
9
|
+
piAssetArchive,
|
|
10
|
+
registerBunOAuthFlows,
|
|
11
|
+
} from "./pi-assets.generated.ts";
|
|
6
12
|
import { documentationAssets } from "./documentation-assets.generated.ts";
|
|
7
13
|
|
|
8
|
-
process.env.NORN_AGENT_DIR = resolveNornAgentDirectory({
|
|
14
|
+
process.env.NORN_AGENT_DIR = resolveNornAgentDirectory({
|
|
15
|
+
home: homedir(),
|
|
16
|
+
environment: process.env,
|
|
17
|
+
});
|
|
9
18
|
process.env.PI_CODING_AGENT_DIR = process.env.NORN_AGENT_DIR;
|
|
10
19
|
process.env.PI_PACKAGE_DIR = await materializePiAssets({
|
|
11
20
|
archive: piAssetArchive,
|
|
12
|
-
cacheRoot: resolvePiAssetsCacheRoot({
|
|
21
|
+
cacheRoot: resolvePiAssetsCacheRoot({
|
|
22
|
+
platform: process.platform,
|
|
23
|
+
home: homedir(),
|
|
24
|
+
environment: process.env,
|
|
25
|
+
}),
|
|
13
26
|
});
|
|
14
27
|
registerBunOAuthFlows();
|
|
15
28
|
const { main } = await import("../cli.ts");
|
|
16
|
-
await main(process.argv.slice(2), {
|
|
29
|
+
await main(process.argv.slice(2), {
|
|
30
|
+
kind: "embedded",
|
|
31
|
+
bundle: documentationAssets,
|
|
32
|
+
});
|