@open-agent-toolkit/cli 0.2.69 → 0.2.72

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.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "oatVersion": "0.2.69"
3
+ "oatVersion": "0.2.72"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.69",
3
- "docs-config": "0.2.69",
4
- "docs-theme": "0.2.69",
5
- "docs-transforms": "0.2.69"
2
+ "cli": "0.2.72",
3
+ "docs-config": "0.2.72",
4
+ "docs-theme": "0.2.72",
5
+ "docs-transforms": "0.2.72"
6
6
  }
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Bash(oat:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.6.3
8
+ version: 1.6.4
9
9
  ---
10
10
 
11
11
  # Receive Review
@@ -36,6 +36,17 @@ When a project review target is resolvable, summarize the selected review path,
36
36
 
37
37
  **Purpose:** Convert review findings into plan tasks for systematic gap closure.
38
38
 
39
+ **Judgment stays with the caller.** Receiving a review is disposition judgment,
40
+ not reconnaissance: the agent running this skill reads the artifact, weighs each
41
+ finding against the project's artifacts and code, and decides fix, defer, or
42
+ reject in the current context on its own model class. Do not dispatch subagents
43
+ to read, parse, summarize, or disposition review artifacts, and never route any
44
+ part of a receive to a lower model class than the caller's — the same rule
45
+ `oat-repo-improve` applies to plan writes. Bounded read-only lookups (a grep, a
46
+ file:line check) may be delegated only as recon whose result the caller still
47
+ judges; the dispositions, the ledger row, and the bookkeeping commit are always
48
+ written by the caller.
49
+
39
50
  ## Progress Indicators (User-Facing)
40
51
 
41
52
  When executing this skill, provide lightweight progress feedback so the user can tell what’s happening after they confirm.
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAiB3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAgVtB,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,aAAa,EAAE,EAC3B,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAAC,IAAI,CAAC,CAsMf"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoB3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EAExB,MAAM,cAAc,CAAC;AA6XtB,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,aAAa,EAAE,EAC3B,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAAC,IAAI,CAAC,CAyMf"}
@@ -1,3 +1,4 @@
1
+ import { hasMaterializationChanges, } from '../../providers/shared/materialization-extension.js';
1
2
  import { getProviderRegistrations, } from '../../providers/shared/registry.js';
2
3
  import { adviseProviderRefresh, } from '../../providers/shared/restart-adviser.js';
3
4
  import { buildCollectionLifecycle, countPlannedOperations, formatCollectionLifecycle, toSyncOutputPlan, } from './sync.utils.js';
@@ -96,6 +97,47 @@ function normalizeOperationResults(plan, result) {
96
97
  };
97
98
  });
98
99
  }
100
+ /**
101
+ * Records the outcome of the extension plans the apply step will not run.
102
+ *
103
+ * A plan whose operations are all skips is never applied — there is nothing to
104
+ * write — and a scope with no work at all is skipped whole before the extension
105
+ * loop is reached, so neither path populates `operationResults`. The report and
106
+ * the JSON payload still describe every planned operation, so an unrecorded
107
+ * skip rendered as `result: unknown` while the identical skip rendered as
108
+ * `current` whenever some sibling operation happened to make the apply step run.
109
+ *
110
+ * Both extension implementations record a skip as `status: 'current'` without
111
+ * touching the filesystem, so that is what is reproduced here: same statuses,
112
+ * same per-extension counts, one answer for a skip regardless of which path
113
+ * produced it. Recording the results here rather than defaulting the renderer
114
+ * keeps the `--json` payload consistent too, since its consumers read
115
+ * `materializationExtensions[].operationResults` and the sibling counts
116
+ * directly.
117
+ */
118
+ function recordUnappliedExtensionSkips(scopePlan) {
119
+ for (const plan of scopePlan.materializationExtensionPlans) {
120
+ if (hasMaterializationChanges(plan)) {
121
+ continue;
122
+ }
123
+ const summary = scopePlan.materializationExtensions.find((candidate) => candidate.provider === plan.provider);
124
+ if (!summary) {
125
+ continue;
126
+ }
127
+ const operationResults = plan.operations.map((operation) => ({
128
+ provider: operation.provider,
129
+ target: operation.target,
130
+ path: operation.path,
131
+ entryName: operation.entryName,
132
+ action: operation.action,
133
+ status: 'current',
134
+ }));
135
+ summary.applied = 0;
136
+ summary.failed = 0;
137
+ summary.skipped = operationResults.length;
138
+ summary.operationResults = operationResults;
139
+ }
140
+ }
99
141
  function materializationOperationIdentity(operation) {
100
142
  return JSON.stringify([
101
143
  operation.provider,
@@ -227,6 +269,9 @@ export async function runSyncApply(context, scopePlans, dependencies) {
227
269
  const coreApplyEvidence = [];
228
270
  const extensionOperationResults = [];
229
271
  for (const scopePlan of scopePlans) {
272
+ // Runs before the two `continue`s below, both of which can leave an
273
+ // all-skip extension plan unapplied and therefore unreported.
274
+ recordUnappliedExtensionSkips(scopePlan);
230
275
  const hasSyncEntries = scopePlan.plan.entries.length > 0 ||
231
276
  scopePlan.plan.removals.length > 0 ||
232
277
  (scopePlan.plan.collections?.length ?? 0) > 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.2.69",
3
+ "version": "0.2.72",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -34,7 +34,7 @@
34
34
  "ora": "^9.0.0",
35
35
  "yaml": "2.8.2",
36
36
  "zod": "^3.25.76",
37
- "@open-agent-toolkit/control-plane": "0.2.69"
37
+ "@open-agent-toolkit/control-plane": "0.2.72"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^22.10.0",