@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.
Files changed (119) hide show
  1. package/assets/README.md +41 -13
  2. package/assets/docs/README.md +16 -16
  3. package/assets/docs/agents.md +23 -15
  4. package/assets/docs/cli.md +10 -8
  5. package/assets/docs/composition.md +7 -7
  6. package/assets/docs/persistence.md +22 -22
  7. package/assets/docs/projects.md +6 -6
  8. package/assets/docs/recovery.md +10 -10
  9. package/assets/docs/schemas.md +42 -36
  10. package/assets/docs/workflows.md +39 -32
  11. package/assets/examples/agent-then-analysis/input.json +3 -3
  12. package/assets/examples/agent-then-analysis/norn.project.json +2 -2
  13. package/assets/examples/agent-then-analysis/plugin.ts +37 -9
  14. package/assets/examples/caller-owned-routing/README.md +6 -6
  15. package/assets/examples/caller-owned-routing/assessment.ts +18 -4
  16. package/assets/examples/caller-owned-routing/contracts.ts +7 -2
  17. package/assets/examples/caller-owned-routing/input.json +12 -12
  18. package/assets/examples/caller-owned-routing/norn.project.json +2 -2
  19. package/assets/examples/caller-owned-routing/revision.ts +7 -2
  20. package/assets/examples/caller-owned-routing/router.ts +14 -3
  21. package/assets/examples/caller-selected-continuation/caller.ts +38 -12
  22. package/assets/examples/caller-selected-continuation/input.json +7 -7
  23. package/assets/examples/caller-selected-continuation/norn.project.json +2 -2
  24. package/assets/examples/caller-selected-continuation/producer.ts +10 -3
  25. package/assets/examples/coordinating-multiple-agents/README.md +6 -6
  26. package/assets/examples/coordinating-multiple-agents/input.json +20 -8
  27. package/assets/examples/coordinating-multiple-agents/norn.project.json +2 -2
  28. package/assets/examples/coordinating-multiple-agents/plugin.ts +165 -46
  29. package/assets/examples/coordinating-multiple-agents/queue-tools.ts +30 -7
  30. package/assets/examples/coordinating-multiple-agents/work-queue.ts +211 -63
  31. package/assets/examples/getting-started/norn.project.json +2 -2
  32. package/assets/examples/getting-started/plugin.ts +33 -13
  33. package/assets/examples/minimal-workflow/norn.project.json +2 -2
  34. package/assets/examples/minimal-workflow/plugin.ts +12 -3
  35. package/assets/examples/shared-state/README.md +6 -6
  36. package/assets/examples/shared-state/input.json +1 -1
  37. package/assets/examples/shared-state/norn.project.json +2 -2
  38. package/assets/examples/shared-state/plugin.ts +44 -15
  39. package/assets/examples/shared-state/shared-state.ts +46 -13
  40. package/assets/examples/shared-state/state-tools.ts +68 -16
  41. package/assets/examples/worktree-development-loop/README.md +12 -12
  42. package/assets/examples/worktree-development-loop/norn.project.json +7 -7
  43. package/assets/examples/worktree-development-loop/plugin.ts +7 -1
  44. package/assets/examples/worktree-development-loop/scope.ts +4 -1
  45. package/assets/examples/worktree-development-loop/shared/commands.ts +6 -2
  46. package/assets/examples/worktree-development-loop/workflows/development-loop/execute.ts +18 -4
  47. package/assets/examples/worktree-development-loop/workflows/development-loop/index.ts +4 -1
  48. package/assets/examples/worktree-development-loop/workflows/development-loop/repository.ts +11 -1
  49. package/assets/examples/worktree-development-loop/workflows/development-loop/schema.ts +6 -2
  50. package/assets/examples/worktree-development-loop/workflows/implementation/execute.ts +40 -10
  51. package/assets/examples/worktree-development-loop/workflows/implementation/index.ts +5 -1
  52. package/assets/examples/worktree-development-loop/workflows/planning/execute.ts +1 -1
  53. package/assets/examples/worktree-development-loop/workflows/planning/index.ts +5 -1
  54. package/assets/examples/worktree-development-loop/workflows/review/execute.ts +33 -9
  55. package/assets/examples/worktree-development-loop/workflows/review-router/execute.ts +51 -8
  56. package/assets/package.json +1 -1
  57. package/assets/packages/cli/src/build-info.ts +4 -1
  58. package/assets/packages/cli/src/bun/cli.ts +21 -5
  59. package/assets/packages/cli/src/cli.ts +585 -170
  60. package/assets/packages/cli/src/client.ts +194 -36
  61. package/assets/packages/cli/src/documentation.ts +135 -30
  62. package/assets/packages/cli/src/generated-build-info.ts +2 -2
  63. package/assets/packages/cli/src/internal/agent-directory.ts +7 -2
  64. package/assets/packages/cli/src/internal/agent-response-tool.ts +57 -15
  65. package/assets/packages/cli/src/internal/agents.ts +248 -60
  66. package/assets/packages/cli/src/internal/commands.ts +82 -20
  67. package/assets/packages/cli/src/internal/documentation-bundle.ts +44 -13
  68. package/assets/packages/cli/src/internal/engine.ts +396 -87
  69. package/assets/packages/cli/src/internal/errors.ts +13 -5
  70. package/assets/packages/cli/src/internal/execution-context.ts +20 -12
  71. package/assets/packages/cli/src/internal/file-coordinator.ts +95 -26
  72. package/assets/packages/cli/src/internal/file-names.ts +4 -1
  73. package/assets/packages/cli/src/internal/launch-request.ts +74 -22
  74. package/assets/packages/cli/src/internal/logs.ts +10 -2
  75. package/assets/packages/cli/src/internal/metrics.ts +247 -61
  76. package/assets/packages/cli/src/internal/pi-assets.ts +105 -23
  77. package/assets/packages/cli/src/internal/run-lease.ts +72 -22
  78. package/assets/packages/cli/src/internal/run-log.ts +49 -20
  79. package/assets/packages/cli/src/internal/run-names.ts +120 -12
  80. package/assets/packages/cli/src/internal/run-state.ts +306 -71
  81. package/assets/packages/cli/src/internal/run-store.ts +216 -53
  82. package/assets/packages/cli/src/internal/usage.ts +23 -7
  83. package/assets/packages/cli/src/internal/worker-directory.ts +9 -3
  84. package/assets/packages/cli/src/internal/workflow-registry.ts +281 -70
  85. package/assets/packages/cli/src/internal/working-directory.ts +2 -1
  86. package/assets/packages/cli/src/workflow-loader.ts +341 -74
  87. package/assets/packages/core/src/atomic-files.ts +13 -4
  88. package/assets/packages/core/src/workflow-transition.ts +13 -2
  89. package/assets/packages/sdk/src/api.ts +248 -80
  90. package/assets/packages/sdk/src/index.ts +6 -1
  91. package/assets/packages/sdk/src/schema.ts +75 -21
  92. package/assets/tests/workflow-ref.test.ts +242 -57
  93. package/bin/norn.mjs +13 -4
  94. package/dist/cli.js +344 -90
  95. package/dist/client.js +100 -22
  96. package/dist/documentation.js +102 -25
  97. package/dist/generated-build-info.d.ts +2 -2
  98. package/dist/generated-build-info.js +2 -2
  99. package/dist/internal/agent-directory.js +3 -1
  100. package/dist/internal/agent-response-tool.js +42 -11
  101. package/dist/internal/agents.js +149 -37
  102. package/dist/internal/commands.js +65 -16
  103. package/dist/internal/documentation-bundle.js +23 -11
  104. package/dist/internal/engine.js +304 -66
  105. package/dist/internal/errors.js +4 -2
  106. package/dist/internal/execution-context.js +2 -1
  107. package/dist/internal/file-coordinator.js +59 -19
  108. package/dist/internal/launch-request.js +32 -14
  109. package/dist/internal/metrics.js +138 -38
  110. package/dist/internal/pi-assets.js +70 -19
  111. package/dist/internal/run-lease.js +29 -9
  112. package/dist/internal/run-log.js +24 -12
  113. package/dist/internal/run-state.js +172 -48
  114. package/dist/internal/run-store.js +157 -45
  115. package/dist/internal/worker-directory.js +6 -2
  116. package/dist/internal/workflow-registry.js +123 -32
  117. package/dist/internal/working-directory.js +2 -1
  118. package/dist/workflow-loader.js +198 -41
  119. 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 }) => `Review iteration ${args.iteration}. Confirm or edit the automated decision before continuing. Plan: ${args.planPath}.`,
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({ decision: args.decision, summary: args.summary, automatedReviewPath: args.automatedReviewPath }, null, 2),
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 = { decision: args.decision, summary: args.summary, reviewPath };
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: { status: "done", repositoryPath, planPath, reviewPath, iterations: currentIteration, lastReview },
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: { status: "blocked", repositoryPath, planPath, reviewPath, iterations: currentIteration, lastReview },
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: { status: "needs-attention", repositoryPath, planPath, reviewPath, iterations: currentIteration, lastReview },
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({ task, repositoryPath, maxIterations, planPath, iteration: nextIteration, previousReviewPath: reviewPath });
55
- }
90
+ return implementationWorkflow({
91
+ task,
92
+ repositoryPath,
93
+ maxIterations,
94
+ planPath,
95
+ iteration: nextIteration,
96
+ previousReviewPath: reviewPath,
97
+ });
98
+ },
56
99
  });
@@ -1 +1 @@
1
- {"version":"0.1.0-tip.35614826665.1"}
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 = NornUnknownBuildInfo | NornNpmRegistryBuildInfo | NornGithubReleaseBinaryBuildInfo;
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 { materializePiAssets, resolvePiAssetsCacheRoot } from "../internal/pi-assets.ts";
5
- import { piAssetArchive, registerBunOAuthFlows } from "./pi-assets.generated.ts";
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({ home: homedir(), environment: process.env });
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({ platform: process.platform, home: homedir(), environment: process.env }),
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), { kind: "embedded", bundle: documentationAssets });
29
+ await main(process.argv.slice(2), {
30
+ kind: "embedded",
31
+ bundle: documentationAssets,
32
+ });