@open-agent-toolkit/cli 0.3.3 → 0.3.5
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/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/tool-packs.md +12 -7
- package/assets/docs/provider-sync/providers.md +3 -2
- package/assets/docs/reference/troubleshooting.md +11 -8
- package/assets/public-package-versions.json +4 -4
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +9 -2
- package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-inventory.js +11 -6
- package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
- package/dist/providers/codex/codec/sync-extension.js +1 -0
- package/dist/providers/shared/materialization-extension.d.ts +7 -0
- package/dist/providers/shared/materialization-extension.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -288,9 +288,13 @@ an unset adapter follows detection. Provider mappings and registered
|
|
|
288
288
|
materialization extensions then determine the output: entry sync, native read,
|
|
289
289
|
extension-owned role materialization, or explicit unsupported evidence.
|
|
290
290
|
|
|
291
|
-
Core sync does not write extension-owned role paths.
|
|
292
|
-
|
|
293
|
-
|
|
291
|
+
Core sync does not write extension-owned role paths. At user scope only Codex
|
|
292
|
+
owns the base `oat-phase-implementer` and `oat-reviewer` roles, because its
|
|
293
|
+
extension renders them as native `.toml` roles. Claude and Cursor extensions
|
|
294
|
+
generate only model- or effort-pinned variants, so core sync still projects
|
|
295
|
+
their base roles from `~/.agents/agents/` alongside those variants, exactly as it
|
|
296
|
+
does at project scope. Other user agents continue through each active adapter's
|
|
297
|
+
declared mapping. Per-asset sync
|
|
294
298
|
results distinguish changed, current, missing, failed, unsupported, and unknown
|
|
295
299
|
outcomes, so one failed or unsupported asset does not erase evidence for its
|
|
296
300
|
siblings.
|
|
@@ -316,10 +320,11 @@ visibility, and recovery guidance. Human output names the provider on its own
|
|
|
316
320
|
line and on any provider-attributed diagnostic. Reachability is never inferred
|
|
317
321
|
from the presence of a provider directory on disk.
|
|
318
322
|
|
|
319
|
-
The four inventory surfaces agree on
|
|
320
|
-
`info` resolve the same provider surface as `status` and `doctor`, so
|
|
321
|
-
active
|
|
322
|
-
unmaterialized-user-agent report on
|
|
323
|
+
The four inventory surfaces agree on user-scope agent coverage. `list` and
|
|
324
|
+
`info` resolve the same provider surface as `status` and `doctor`, so any
|
|
325
|
+
active adapter that entry-syncs or natively reads user-scope agents — every
|
|
326
|
+
registered adapter does — suppresses the unmaterialized-user-agent report on
|
|
327
|
+
all four rather than only two.
|
|
323
328
|
|
|
324
329
|
Each provider state maps to exactly one row below. Pack evidence status and
|
|
325
330
|
the lifecycle exit code derive from the **severity** column, never from the
|
|
@@ -15,6 +15,7 @@ description: 'Provider-specific path mappings for Claude, Cursor, Copilot, Gemin
|
|
|
15
15
|
- Managed effort-pinned phase implementers and reviewers use the exact generated candidate returned as `providers.claude.dispatchArgs.variant`; its frontmatter carries model and effort because Agent has no per-call effort field. Legacy model-only candidates retain `providers.claude.dispatchArgs.model`, and any model supplied alongside a variant must match its definition.
|
|
16
16
|
- Generated names preserve the full normalized configured model ID after the provider token. A versioned ID such as `claude-opus-5-5` therefore produces the deterministic slug `oat-reviewer-claude-claude-opus-5-5-high`. This doubled `claude-` is the current managed-role contract, not a request to rename existing roles.
|
|
17
17
|
- Project variants live under `.claude/agents/`; user variants live under `~/.claude/agents/`. Sync removes stale managed variants for the reconciled owner while preserving base roles and unmanaged agents.
|
|
18
|
+
- Base `oat-phase-implementer` and `oat-reviewer` roles sync like any other canonical agent at both scopes, so legacy model-only dispatch and base-role fallback resolve after a pack moves to user scope.
|
|
18
19
|
- Claude's official subagent contract says existing agent directories are watched and changes load within seconds. It describes a conditional restart for the first agent added to a directory that was absent when the session started, for agents added through `--add-dir`, and when Claude starts with `--disable-slash-commands`. OAT cannot observe those session-start and launch-mode facts. After a successful provider-visible file change, the generic OAT repository policy therefore conservatively advises starting a new provider session; it does not claim that Claude hot-reloaded the file or that the application process must restart. The provider semantics were verified against [Claude Code subagent documentation](https://code.claude.com/docs/en/sub-agents) on 2026-08-31.
|
|
19
20
|
|
|
20
21
|
=== "Cursor"
|
|
@@ -25,7 +26,7 @@ description: 'Provider-specific path mappings for Claude, Cursor, Copilot, Gemin
|
|
|
25
26
|
- Interactive `oat init` and `oat status` ask for an individual disposition for each unresolved Cursor-local skill: adopt it into `.agents/skills` or keep it Cursor-only and remember the exact path in sync config
|
|
26
27
|
- Keep-local is blocked when a canonical skill has the same name because Cursor does not document a safe duplicate-resolution order
|
|
27
28
|
- During upgrades, OAT removes only verified clean legacy managed skill views. Changed or replaced views are preserved, detached from manifest ownership, and offered for migration.
|
|
28
|
-
- Sync materializes pinned Markdown definitions for both `oat-phase-implementer` and `oat-reviewer
|
|
29
|
+
- Sync materializes pinned Markdown definitions for both `oat-phase-implementer` and `oat-reviewer` in addition to the base roles, which sync like any other canonical agent at both scopes. Each generated name keeps the configured flat ladder ID, while an explicit verified mapping writes the separate bracket-form frontmatter model. OAT never derives one form from the other.
|
|
29
30
|
- Generated definitions carry `supported-catalogue`, `project-config`, or `user-config` ownership. Project and supported output lives in the tracked `.cursor/agents` view; user-owned output lives under `~/.cursor/agents`. Cleanup reconciles only the applicable owner.
|
|
30
31
|
- Managed dispatch requires `providers.cursor.dispatchArgs.variant` and launches that exact resolver-selected native agent type first. Skills do not pass a Task-level model argument or normalize Cursor model strings.
|
|
31
32
|
- Cursor may silently fallback when a definition pin cannot be honored. Variant acceptance therefore establishes launcher-owned `configured` provenance only; runtime identity remains `not-reported` unless independently observed.
|
|
@@ -176,7 +177,7 @@ current-session catalog probe is still not proof of provider visibility.
|
|
|
176
177
|
|
|
177
178
|
- Project scope: skills + agents + rules
|
|
178
179
|
- User scope: skills plus capability-supported ordinary agents (provider mappings vary by adapter)
|
|
179
|
-
- The two bundled managed roles separately participate in Codex and
|
|
180
|
+
- The two bundled managed roles separately participate in Codex, Cursor, and Claude extension expansion for user-owned targets. Only Codex renders the base roles itself; Claude and Cursor receive base roles through ordinary agent sync with generated variants alongside
|
|
180
181
|
- Rules are project-scoped only in this release
|
|
181
182
|
- Codex user-scope sync materializes user-config custom roles under `~/.codex`; project-config and supported-catalogue output remains project-scoped and version controlled
|
|
182
183
|
- Cursor user-scope sync materializes user-config variants under `~/.cursor/agents`; project-config and supported-catalogue output remains project-scoped and version controlled
|
|
@@ -167,14 +167,17 @@ Both commands report managed pack state with a scoped recovery command:
|
|
|
167
167
|
place and your edits are gone. The finding is informational and carries no
|
|
168
168
|
recovery command for exactly that reason.
|
|
169
169
|
- `user-agent-unmaterialized` — the pack installed canonical agents into
|
|
170
|
-
`~/.agents/agents/`, but active
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
170
|
+
`~/.agents/agents/`, but no active provider projects them at user scope.
|
|
171
|
+
Every registered adapter (Claude, Cursor, Codex, Gemini, Copilot) syncs or
|
|
172
|
+
natively reads user-scope agents, so while any of them is active for user
|
|
173
|
+
sync the finding is suppressed. It appears when no provider is enabled for
|
|
174
|
+
user sync, in which case every installed agent is listed. Provider access to
|
|
175
|
+
canonical instructions through loaded, user, and project reads is a separate
|
|
176
|
+
contract and does not clear this finding. `oat tools update` cannot fix it.
|
|
177
|
+
Enable a provider with `oat providers set --scope user --enabled <provider>`
|
|
178
|
+
and run `oat sync --scope user`; reinstalling at project scope is not
|
|
179
|
+
required. See [Tool packs](../cli-utilities/tool-packs.md) for how
|
|
180
|
+
user-scope agents reach each provider.
|
|
178
181
|
|
|
179
182
|
## `status` or `doctor` reports `packs:inventory`
|
|
180
183
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYhF,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AAWvB,OAAO,EAOL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,KAAK,EACV,aAAa,EAEb,uBAAuB,EAGxB,MAAM,cAAc,CAAC;AAEtB,KAAK,0BAA0B,GAAG,IAAI,CACpC,uBAAuB,EACvB,iBAAiB,GAAG,eAAe,CACpC,GAAG;IACF,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,KACrC,UAAU,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1D,eAAe,EAAE,CACf,IAAI,EAAE,UAAU,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAChE,sCAAsC,CAAC,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAClC,CAAC;KACH,KACE,UAAU,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5D,2BAA2B,CAAC,EAAE,CAAC,KAAK,EAAE;QACpC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC;KACpB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYhF,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AAWvB,OAAO,EAOL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,KAAK,EACV,aAAa,EAEb,uBAAuB,EAGxB,MAAM,cAAc,CAAC;AAEtB,KAAK,0BAA0B,GAAG,IAAI,CACpC,uBAAuB,EACvB,iBAAiB,GAAG,eAAe,CACpC,GAAG;IACF,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,KACrC,UAAU,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1D,eAAe,EAAE,CACf,IAAI,EAAE,UAAU,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAChE,sCAAsC,CAAC,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAClC,CAAC;KACH,KACE,UAAU,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5D,2BAA2B,CAAC,EAAE,CAAC,KAAK,EAAE;QACpC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC;KACpB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrC,CAAC;AA6gBF,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAClD,OAAO,CA+DT;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE;IACP,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC,EACD,SAAS,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAClD,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
@@ -243,10 +243,15 @@ async function computePlans(context, dependencies, canonicalFilter) {
|
|
|
243
243
|
const managedAgents = scope === 'user'
|
|
244
244
|
? await dependencies.scanBundledManagedAgents({ scopeRoot })
|
|
245
245
|
: [];
|
|
246
|
+
// A user-materializable pack agent resolves to its installed copy, which
|
|
247
|
+
// the canonical scan already found; planning it twice turns the second
|
|
248
|
+
// symlink create into a copy fallback.
|
|
249
|
+
const scannedCanonicalPaths = new Set(canonical.map(({ canonicalPath }) => canonicalPath));
|
|
246
250
|
const ordinaryCanonical = scope === 'user'
|
|
247
251
|
? [
|
|
248
252
|
...canonical,
|
|
249
|
-
...managedAgents.filter(({ canonicalPath }) =>
|
|
253
|
+
...managedAgents.filter(({ canonicalPath }) => !scannedCanonicalPaths.has(canonicalPath) &&
|
|
254
|
+
isPathWithin(join(scopeRoot, '.agents', 'agents'), canonicalPath)),
|
|
250
255
|
]
|
|
251
256
|
: canonical;
|
|
252
257
|
const materializationCanonical = scope === 'user'
|
|
@@ -263,7 +268,9 @@ async function computePlans(context, dependencies, canonicalFilter) {
|
|
|
263
268
|
const enabledExtensions = (providerContext
|
|
264
269
|
? providerContext.registrations.flatMap(({ extensions }) => extensions)
|
|
265
270
|
: dependencies.getMaterializationExtensions()).filter((extension) => activeAdapterNames.includes(extension.provider));
|
|
266
|
-
const extensionOwnedCanonicalPathsByProvider = Object.fromEntries(enabledExtensions
|
|
271
|
+
const extensionOwnedCanonicalPathsByProvider = Object.fromEntries(enabledExtensions
|
|
272
|
+
.filter(({ materializesBuiltInManagedRoles }) => materializesBuiltInManagedRoles === true)
|
|
273
|
+
.map(({ provider }) => [
|
|
267
274
|
provider,
|
|
268
275
|
USER_SCOPE_MANAGED_AGENT_FILES.map((name) => `.agents/agents/${name}`),
|
|
269
276
|
]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-inventory.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/shared/pack-inventory.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EACA,uBAAuB,GACvB,iBAAiB,GACjB,0BAA0B,GAC1B,2BAA2B,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IACvD,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"pack-inventory.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/shared/pack-inventory.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EACA,uBAAuB,GACvB,iBAAiB,GACjB,0BAA0B,GAC1B,2BAA2B,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IACvD,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAwRD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAwC9B;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,mBAAmB,GAC7B,OAAO,CAUT;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,aAAa,EAAE,GAC3B,aAAa,EAAE,CAgEjB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CAiDxB"}
|
|
@@ -173,12 +173,15 @@ function intentDiagnostic(diagnostic) {
|
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
175
|
* User-scope canonical agents are installed into `~/.agents/agents/`, while
|
|
176
|
-
*
|
|
177
|
-
*
|
|
176
|
+
* provider coverage is caller-resolved from the active config-aware adapter
|
|
177
|
+
* set. Callers suppress this diagnostic when an active provider entry-syncs or
|
|
178
|
+
* natively reads user agents, which every registered adapter does. It remains
|
|
179
|
+
* for two cases: no active provider covers user agents (every present agent is
|
|
180
|
+
* listed), or only extension-backed coverage is active, which supplies the
|
|
178
181
|
* bundled managed role file set plus explicitly user-materializable pack
|
|
179
|
-
* agents. Completeness alone
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
+
* agents. Completeness alone cannot describe either gap, so it is named here
|
|
183
|
+
* instead of staying silent. Canonical instruction-read availability is a
|
|
184
|
+
* separate contract.
|
|
182
185
|
*/
|
|
183
186
|
function userAgentMaterializationDiagnostics(pack, scope, assets, managedRoleMaterialization) {
|
|
184
187
|
if (scope !== 'user')
|
|
@@ -194,7 +197,9 @@ function userAgentMaterializationDiagnostics(pack, scope, assets, managedRoleMat
|
|
|
194
197
|
return [
|
|
195
198
|
{
|
|
196
199
|
code: 'user-agent-unmaterialized',
|
|
197
|
-
message:
|
|
200
|
+
message: managedRoleMaterialization
|
|
201
|
+
? `Pack ${pack} installs user-scope canonical agents that the active provider set does not project; canonical instruction reads are unaffected. The active providers cover user-scope agents only through materialization extensions, which supply built-in managed roles and manifest-declared user-materializable agents. Enable a provider that syncs or reads user-scope agents with \`oat providers set --scope user --enabled <provider>\`, then run \`oat sync --scope user\`.`
|
|
202
|
+
: `Pack ${pack} installs user-scope canonical agents, but no active provider projects user-scope agents; canonical instruction reads are unaffected. Enable a provider for user sync with \`oat providers set --scope user --enabled <provider>\`, then run \`oat sync --scope user\`.`,
|
|
198
203
|
paths: unmaterialized.map(({ path }) => path),
|
|
199
204
|
},
|
|
200
205
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-extension.d.ts","sourceRoot":"","sources":["../../../../src/providers/codex/codec/sync-extension.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AACzD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B,CACjF,OAAO,EACP,oBAAoB,CACrB;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB,CAC7D,OAAO,EACP,oBAAoB,EACpB,0BAA0B,CAC3B;IACC,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAiBnE,MAAM,WAAW,iCAAiC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAoiBD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAChC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,kBAAkB,CAAC,CAkL7B;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CA+DpC;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAEA;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,kBAAkB,GACvB,uBAAuB,EAAE,CAQ3B;AAED,eAAO,MAAM,6BAA6B,EAAE,wBAAwB,CAClE,kBAAkB,EAClB,sBAAsB,CAAC,iCAAiC,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-extension.d.ts","sourceRoot":"","sources":["../../../../src/providers/codex/codec/sync-extension.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AACzD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B,CACjF,OAAO,EACP,oBAAoB,CACrB;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB,CAC7D,OAAO,EACP,oBAAoB,EACpB,0BAA0B,CAC3B;IACC,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAiBnE,MAAM,WAAW,iCAAiC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAoiBD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAChC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,kBAAkB,CAAC,CAkL7B;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CA+DpC;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAEA;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,kBAAkB,GACvB,uBAAuB,EAAE,CAQ3B;AAED,eAAO,MAAM,6BAA6B,EAAE,wBAAwB,CAClE,kBAAkB,EAClB,sBAAsB,CAAC,iCAAiC,CAAC,CAa1D,CAAC"}
|
|
@@ -594,6 +594,7 @@ export function toCodexExtensionOperations(plan) {
|
|
|
594
594
|
}
|
|
595
595
|
export const codexMaterializationExtension = {
|
|
596
596
|
provider: 'codex',
|
|
597
|
+
materializesBuiltInManagedRoles: true,
|
|
597
598
|
computePlan(context) {
|
|
598
599
|
return computeCodexProjectExtensionPlan(context.scopeRoot, context.canonicalEntries, context.allowedCanonicalPaths, context.options);
|
|
599
600
|
},
|
|
@@ -43,6 +43,13 @@ export interface MaterializationContext<TOptions = undefined> {
|
|
|
43
43
|
}
|
|
44
44
|
export interface MaterializationExtension<TPlan extends MaterializationPlan = MaterializationPlan, TContext extends MaterializationContext<unknown> = MaterializationContext<unknown>> {
|
|
45
45
|
provider: TPlan['provider'];
|
|
46
|
+
/**
|
|
47
|
+
* True when this extension writes the provider's base built-in managed roles
|
|
48
|
+
* itself (for example Codex `oat-reviewer.toml`). Core user sync then skips
|
|
49
|
+
* those canonical roles for the provider. Extensions that only write model or
|
|
50
|
+
* effort variants leave this unset so core sync still projects the base role.
|
|
51
|
+
*/
|
|
52
|
+
materializesBuiltInManagedRoles?: boolean;
|
|
46
53
|
computePlan(context: TContext): Promise<TPlan>;
|
|
47
54
|
applyPlan(scopeRoot: string, plan: TPlan): Promise<MaterializationApplyResult>;
|
|
48
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialization-extension.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/materialization-extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materialization-extension.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/materialization-extension.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-agent-toolkit/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
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.3.
|
|
37
|
+
"@open-agent-toolkit/control-plane": "0.3.5"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^22.10.0",
|