@aiwg/cli 2026.10.9 → 2026.10.11
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/agentic/code/providers/model-capabilities.v1.json +275 -17
- package/bin/aiwg.mjs +8 -0
- package/dist/src/cli/handlers/mc-admission.js +39 -0
- package/dist/src/cli/handlers/mc.js +2 -31
- package/dist/src/cli/handlers/models-help.js +52 -0
- package/dist/src/cli/handlers/models.js +11 -81
- package/dist/src/cli/handlers/sessions.js +198 -15
- package/dist/src/cli/handlers/use-addon-profile.js +72 -0
- package/dist/src/cli/handlers/use.js +203 -234
- package/dist/src/cli/ui.js +1 -0
- package/dist/src/config/aiwg-config.js +38 -184
- package/dist/src/config/cli-help.js +54 -0
- package/dist/src/config/cli.js +5 -69
- package/dist/src/config/config-normalization.js +10 -0
- package/dist/src/config/worker-activation-gate.js +26 -0
- package/dist/src/config/worker-adoption-cli.js +102 -0
- package/dist/src/config/worker-adoption.js +368 -0
- package/dist/src/config/worker-config-digest.js +14 -0
- package/dist/src/config/worker-context.js +337 -0
- package/dist/src/config/worker-group-templates.js +150 -0
- package/dist/src/config/worker-guidance-warning.js +28 -0
- package/dist/src/config/worker-owner-lock.js +152 -0
- package/dist/src/config/worker-parallelism.js +154 -0
- package/dist/src/config/worker-write.js +75 -0
- package/dist/src/decision/telemetry/exporter.js +2 -1
- package/dist/src/decision/telemetry/index.js +1 -0
- package/dist/src/decision/telemetry/mapping.js +43 -0
- package/dist/src/decision/telemetry/otlp-http.js +5 -2
- package/dist/src/decision/telemetry/redaction.js +6 -1
- package/dist/src/decision/telemetry/types.js +3 -0
- package/dist/src/decision/telemetry/worker.js +69 -0
- package/dist/src/lint/rule-activation.js +15 -7
- package/dist/src/lint/runner.js +2 -2
- package/dist/src/mcp/server.mjs +2 -11
- package/dist/src/mcp/stdio-lifecycle.mjs +27 -0
- package/dist/src/mcp/tools/worker-failure-diagnostics.mjs +9 -0
- package/dist/src/mcp/tools/worker-invoke.mjs +114 -16
- package/dist/src/mission-protocol/codecs.js +8 -38
- package/dist/src/mission-protocol/worker-contract-diagnostics.js +62 -0
- package/dist/src/mission-protocol/worker-invocation-types.js +2 -0
- package/dist/src/models/conductor-data-policy.d.mts +8 -0
- package/dist/src/models/conductor-data-policy.mjs +190 -0
- package/dist/src/models/config-loader.js +19 -3
- package/dist/src/models/config-writer.js +27 -0
- package/dist/src/models/model-capabilities.v1.json +275 -17
- package/dist/src/models/provider-policy.js +14 -155
- package/dist/src/models/resolver.js +2 -293
- package/dist/src/models/worker-artifact-binding.mjs +12 -0
- package/dist/src/models/worker-direct-readiness-policy.js +155 -0
- package/dist/src/models/worker-direct-readiness.js +9 -218
- package/dist/src/models/worker-health-readiness.js +105 -26
- package/dist/src/models/worker-installation.mjs +12 -14
- package/dist/src/models/worker-member-references.js +64 -0
- package/dist/src/models/worker-plan.js +317 -0
- package/dist/src/models/worker-selection-policy.js +217 -0
- package/dist/src/models/wrapper-deployment.js +1 -1
- package/dist/src/policy/authorization.js +29 -1
- package/dist/src/process/aiwg-probe-command.d.mts +15 -0
- package/dist/src/process/aiwg-probe-command.mjs +37 -0
- package/dist/src/serve/shared-host-admission-checks.js +116 -0
- package/dist/src/serve/shared-host-scheduler.js +25 -107
- package/dist/src/serve/shared-host-starvation.js +73 -0
- package/dist/src/serve/worker-artifacts.d.mts +4 -0
- package/dist/src/serve/worker-artifacts.mjs +56 -0
- package/dist/src/serve/worker-command-request.js +68 -0
- package/dist/src/serve/worker-invocation-paths.js +144 -0
- package/dist/src/serve/worker-invocation-preparation.js +169 -0
- package/dist/src/serve/worker-invocation.js +24 -291
- package/dist/src/serve/worker-stdin-frame.d.mts +2 -2
- package/dist/src/serve/worker-stdin-frame.mjs +6 -6
- package/dist/src/sessions/adapters/grokbot.js +7 -0
- package/dist/src/sessions/batch-import.js +34 -6
- package/dist/src/sessions/contracts.js +19 -0
- package/dist/src/sessions/coverage-preflight.js +7 -1
- package/dist/src/sessions/fortemi-export-mapping.js +33 -3
- package/dist/src/sessions/host-catalog.js +157 -0
- package/dist/src/sessions/image-blobs.js +141 -0
- package/dist/src/sessions/importer.js +23 -3
- package/dist/src/sessions/index.js +2 -0
- package/dist/src/sessions/refresh.js +25 -2
- package/dist/src/sessions/repository.js +164 -22
- package/dist/src/sessions/workspace-discovery.js +5 -2
- package/dist/src/smiths/context-pipeline/parallelism-section.js +19 -7
- package/package.json +15 -1
- package/schemas/mission-v1.schema.json +20 -19
- package/schemas/models/model-config-compatibility.v1.schema.json +16 -0
- package/tools/agents/providers/claude-post-deploy.mjs +35 -0
- package/tools/agents/providers/claude.mjs +3 -30
- package/tools/agents/providers/codex-post-deploy.mjs +13 -0
- package/tools/agents/providers/codex.mjs +2 -8
- package/tools/agents/providers/conductor-data-guard.mjs +61 -0
- package/tools/agents/providers/rule-delivery.mjs +3 -16
- package/tools/agents/providers/rule-presentation.mjs +38 -0
- package/tools/plugin/package-plugins.mjs +1 -1
- package/tools/ralph-external/lib/claude-adapter.mjs +2 -2
- package/tools/ralph-external/lib/codex-adapter.mjs +3 -3
- package/tools/ralph-external/lib/managed-worker-attempt.mjs +86 -0
- package/tools/ralph-external/lib/muse-adapter.mjs +10 -0
- package/tools/ralph-external/lib/provider-adapter.mjs +11 -260
- package/tools/ralph-external/lib/session-attempt.mjs +85 -0
- package/tools/ralph-external/lib/strict-worker-json.mjs +190 -0
- package/tools/ralph-external/lib/worker-artifacts.mjs +209 -0
- package/tools/ralph-external/lib/worker-context.mjs +237 -0
- package/tools/ralph-external/lib/worker-final.mjs +143 -0
- package/tools/ralph-external/lib/worker-inputs.mjs +55 -0
- package/tools/ralph-external/lib/worker-invocation-ancestry.mjs +132 -0
- package/tools/ralph-external/lib/worker-invocation-processes.mjs +123 -0
- package/tools/ralph-external/lib/worker-isolation-status.mjs +48 -0
- package/tools/ralph-external/lib/worker-isolation.mjs +19 -73
- package/tools/ralph-external/lib/worker-launch-cli.mjs +49 -0
- package/tools/ralph-external/lib/worker-native-sandbox.mjs +83 -0
- package/tools/ralph-external/lib/worker-overflow.mjs +48 -13
- package/tools/ralph-external/lib/worker-retry-evidence.mjs +103 -0
- package/tools/ralph-external/lib/worker-termination.mjs +82 -0
- package/tools/ralph-external/session-launcher.mjs +124 -313
- package/vscode-extension/schemas/aiwg.config.v1.json +161 -2
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
"verifiedAt": "2026-07-20",
|
|
5
5
|
"providers": {
|
|
6
6
|
"antigravity": {
|
|
7
|
+
"sessionEnvAllowlist": [
|
|
8
|
+
"GEMINI_API_KEY"
|
|
9
|
+
],
|
|
7
10
|
"agent": "native",
|
|
8
11
|
"skill": "native",
|
|
9
12
|
"globalChild": "inherited",
|
|
@@ -19,7 +22,7 @@
|
|
|
19
22
|
"invalidPinFallback": "Provider validation/error; never assume fallback",
|
|
20
23
|
"configTarget": "agy launch arguments; custom-agent model tiers are not projected from generic AIWG model ids",
|
|
21
24
|
"artifactFormat": "YAML frontmatter plus Markdown; runtime --model and --effort flags",
|
|
22
|
-
"verification": "Pinned offline contract (--help/--version only); authenticated model selection was not executed",
|
|
25
|
+
"verification": "Pinned offline contract (--help/--version only); authenticated model selection was not executed. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
23
26
|
"sourceUrl": "https://antigravity.google/docs/cli/subagents/",
|
|
24
27
|
"verifiedAt": "2026-09-04",
|
|
25
28
|
"workerHealthAdapter": {
|
|
@@ -154,7 +157,7 @@
|
|
|
154
157
|
"Native MCP/client, MSP/ACP, gateway and conversation capabilities do not establish worker authority.",
|
|
155
158
|
"--dangerously-skip-permissions and --remote-control are never part of the direct profile; neither was ever shipped as a new argv-prompt path.",
|
|
156
159
|
"A soft-denied tool permission request (exit 0, stderr notice naming the allow-rule needed) is NOT the same as success; its exact stderr wording is not evidenced from help or changelog, so this is an open, honestly-marked detection gap rather than an invented check (tools/ralph-external/lib/antigravity-adapter.mjs ANTIGRAVITY_SOFT_DENY_RISK_NOTE).",
|
|
157
|
-
"GEMINI_API_KEY
|
|
160
|
+
"GEMINI_API_KEY is documented at https://antigravity.google/docs/install/ (reviewed 2026-10-26): settings.json must also set modelProvider to gemini; the key alone has no effect. Earlier 1.3.3 probes only exercised missing account login. This documentation confirms the credential name, not authenticated execution or qualification of this version-bound worker profile.",
|
|
158
161
|
"The 1.3.3 --effort enum (low|medium|high|xhigh|max) supersedes the stale 1.1.26-pinned three-value set in tools/providers/antigravity-transport.mjs (a separate, unedited legacy transport used by the MCP/doctor bridge, not this direct-shell profile).",
|
|
159
162
|
"Flag validation happens BEFORE auth: live probe F, `agy --print=x --input-format bogus --output-format stream-json`, returned \"Error: unknown --input-format \\\"bogus\\\" (want text or stream-json)\" without reaching the auth stop, confirming --input-format is validated against exactly {text, stream-json} independent of login state.",
|
|
160
163
|
"The brief reaches agy through adapter-frame: the installed buildWorkerStdinFrame hook supplies exactly one NDJSON user message and EOF. The stdin control stays unqualified pending one authenticated smoke run."
|
|
@@ -510,7 +513,7 @@
|
|
|
510
513
|
"approval_policy=\"${approval}\"",
|
|
511
514
|
"--skip-git-repo-check",
|
|
512
515
|
"-o",
|
|
513
|
-
"${final}",
|
|
516
|
+
"${final}.last-message",
|
|
514
517
|
"--json",
|
|
515
518
|
"-"
|
|
516
519
|
],
|
|
@@ -575,7 +578,7 @@
|
|
|
575
578
|
},
|
|
576
579
|
"finalOutput": {
|
|
577
580
|
"support": "unqualified",
|
|
578
|
-
"mapping": "[-o/--output-last-message F] last-message
|
|
581
|
+
"mapping": "[-o/--output-last-message F.last-message] launcher-owned last-message capture, separate from worker-written workerClaims JSON at F (brief output.resultPath / --final-output); --json carries the JSONL thread/turn/item/error event stream on stdout",
|
|
579
582
|
"evidence": "H: codex-cli 0.161.0 exec --help documents -o/--output-last-message and --json; unqualified until live evidence"
|
|
580
583
|
},
|
|
581
584
|
"stdin": {
|
|
@@ -865,6 +868,9 @@
|
|
|
865
868
|
}
|
|
866
869
|
},
|
|
867
870
|
"cursor": {
|
|
871
|
+
"sessionEnvAllowlist": [
|
|
872
|
+
"CURSOR_API_KEY"
|
|
873
|
+
],
|
|
868
874
|
"agent": "native",
|
|
869
875
|
"skill": "unsupported",
|
|
870
876
|
"globalChild": "inherited",
|
|
@@ -873,7 +879,7 @@
|
|
|
873
879
|
"invalidPinFallback": "Plan/admin fallback may apply; record observed result",
|
|
874
880
|
"configTarget": ".cursor/agents/*.md",
|
|
875
881
|
"artifactFormat": "YAML frontmatter plus Markdown",
|
|
876
|
-
"verification": "Schema fixture and entitled Cursor invocation",
|
|
882
|
+
"verification": "Schema fixture and entitled Cursor invocation. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
877
883
|
"sourceUrl": "https://cursor.com/docs/subagents",
|
|
878
884
|
"verifiedAt": "2026-07-20",
|
|
879
885
|
"workerHealthAdapter": {
|
|
@@ -1465,6 +1471,9 @@
|
|
|
1465
1471
|
}
|
|
1466
1472
|
},
|
|
1467
1473
|
"warp": {
|
|
1474
|
+
"sessionEnvAllowlist": [
|
|
1475
|
+
"WARP_API_KEY"
|
|
1476
|
+
],
|
|
1468
1477
|
"agent": "global-only",
|
|
1469
1478
|
"skill": "unsupported",
|
|
1470
1479
|
"globalChild": "native",
|
|
@@ -1473,7 +1482,7 @@
|
|
|
1473
1482
|
"invalidPinFallback": "Profile availability dependent",
|
|
1474
1483
|
"configTarget": "Warp agent profile or run configuration",
|
|
1475
1484
|
"artifactFormat": "Saved profile / run control plane",
|
|
1476
|
-
"verification": "Inspect active profile and run metadata",
|
|
1485
|
+
"verification": "Inspect active profile and run metadata. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
1477
1486
|
"sourceUrl": "https://docs.warp.dev/agent-platform/capabilities/agent-profiles-permissions",
|
|
1478
1487
|
"verifiedAt": "2026-07-20",
|
|
1479
1488
|
"workerHealthAdapter": {
|
|
@@ -1606,7 +1615,7 @@
|
|
|
1606
1615
|
"Unknown model, effort, permission or required step mappings block dispatch.",
|
|
1607
1616
|
"Native MCP/client, MSP/ACP, gateway and conversation capabilities do not establish worker authority.",
|
|
1608
1617
|
"There is NO `oz` symlink on the evidenced host: the real executable is `warp-terminal`, with `agent run` etc. as its subcommands; `runtimeDriver`/`executable` are pinned to that, not to a bare `oz`.",
|
|
1609
|
-
"
|
|
1618
|
+
"Brief delivery is wired through buildWorkerArtifacts and the shared session launcher: one bounded workspace-relative .agents/skills/aiwg-brief-<invocationId>/SKILL.md file, exclusive creation, no symlink components, collision preservation and cleanup on failure, completion or stop. The same invocation ID binds --skill and the artifact path; brief text never rides argv. Real skill search relative to --cwd and missing-skill behavior remain UNVERIFIED behind authentication; synthetic file-delivery tests do not qualify the profile.",
|
|
1610
1619
|
"`--environment`/`-e` (cloud environment/runner) and `--harness claude|codex` (third-party harness mode) are documented but NEVER emitted by this profile; the cloud subcommand is also never emitted. Execution location is unverified until an authenticated run.",
|
|
1611
1620
|
"`--no-snapshot` is always emitted: `agent run --help` documents it as disabling the end-of-run workspace snapshot upload. This flag does not establish execution location or absence of other uploads.",
|
|
1612
1621
|
"No live success/error output was observed (no login on the evidenced host): `finalOutput`/`structuredOutput` support is grade H/R only, never upgraded past `unqualified`."
|
|
@@ -2284,6 +2293,7 @@
|
|
|
2284
2293
|
}
|
|
2285
2294
|
},
|
|
2286
2295
|
"windsurf": {
|
|
2296
|
+
"sessionEnvAllowlist": [],
|
|
2287
2297
|
"agent": "unsupported",
|
|
2288
2298
|
"skill": "unsupported",
|
|
2289
2299
|
"globalChild": "inherited",
|
|
@@ -2292,7 +2302,7 @@
|
|
|
2292
2302
|
"invalidPinFallback": "No portable custom-child selector",
|
|
2293
2303
|
"configTarget": "No supported portable artifact field",
|
|
2294
2304
|
"artifactFormat": "Informational policy only",
|
|
2295
|
-
"verification": "Assert unsupported fields are omitted",
|
|
2305
|
+
"verification": "Assert unsupported fields are omitted. Session environment is explicitly empty: desktop/cloud login owns authentication; no CLI credential variable is evidenced. Coverage-only: no worker execution or qualified worker adapter. See $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2296
2306
|
"sourceUrl": "https://docs.devin.ai/desktop/cascade/skills",
|
|
2297
2307
|
"verifiedAt": "2026-07-20",
|
|
2298
2308
|
"workerHealthCoverage": {
|
|
@@ -2312,6 +2322,22 @@
|
|
|
2312
2322
|
}
|
|
2313
2323
|
},
|
|
2314
2324
|
"openclaw": {
|
|
2325
|
+
"sessionEnvAllowlist": [
|
|
2326
|
+
"OPENAI_API_KEY",
|
|
2327
|
+
"ANTHROPIC_API_KEY",
|
|
2328
|
+
"ANTHROPIC_OAUTH_TOKEN",
|
|
2329
|
+
"GEMINI_API_KEY",
|
|
2330
|
+
"GOOGLE_API_KEY",
|
|
2331
|
+
"OPENROUTER_API_KEY",
|
|
2332
|
+
"MISTRAL_API_KEY",
|
|
2333
|
+
"XAI_API_KEY",
|
|
2334
|
+
"OPENCLAW_HOME",
|
|
2335
|
+
"OPENCLAW_STATE_DIR",
|
|
2336
|
+
"OPENCLAW_CONFIG_PATH",
|
|
2337
|
+
"OPENCLAW_GATEWAY_URL",
|
|
2338
|
+
"OPENCLAW_GATEWAY_TOKEN",
|
|
2339
|
+
"OPENCLAW_GATEWAY_PASSWORD"
|
|
2340
|
+
],
|
|
2315
2341
|
"agent": "native",
|
|
2316
2342
|
"skill": "unsupported",
|
|
2317
2343
|
"globalChild": "native",
|
|
@@ -2320,7 +2346,7 @@
|
|
|
2320
2346
|
"invalidPinFallback": "Provider/account fallback must be observed",
|
|
2321
2347
|
"configTarget": "OpenClaw subagent configuration",
|
|
2322
2348
|
"artifactFormat": "JSON/JSONC runtime configuration",
|
|
2323
|
-
"verification": "Inspect resolved subagent metadata",
|
|
2349
|
+
"verification": "Inspect resolved subagent metadata. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2324
2350
|
"sourceUrl": "https://docs.openclaw.ai/tools/subagents",
|
|
2325
2351
|
"verifiedAt": "2026-07-20",
|
|
2326
2352
|
"workerHealthAdapter": {
|
|
@@ -2508,6 +2534,7 @@
|
|
|
2508
2534
|
}
|
|
2509
2535
|
},
|
|
2510
2536
|
"grokbot": {
|
|
2537
|
+
"sessionEnvAllowlist": [],
|
|
2511
2538
|
"agent": "unsupported",
|
|
2512
2539
|
"skill": "unsupported",
|
|
2513
2540
|
"globalChild": "informational",
|
|
@@ -2516,7 +2543,7 @@
|
|
|
2516
2543
|
"invalidPinFallback": "Report unsupported; do not fabricate xAI/Grok model pins as native",
|
|
2517
2544
|
"configTarget": "Grok Bot has no verified AIWG-owned model config path",
|
|
2518
2545
|
"artifactFormat": "Informational only",
|
|
2519
|
-
"verification": "Confirm steward models --route --provider grokbot emits unsupported/informational",
|
|
2546
|
+
"verification": "Confirm steward models --route --provider grokbot emits unsupported/informational. Session environment is explicitly empty: desktop/cloud login owns authentication; no CLI credential variable is evidenced. Coverage-only: no worker execution or qualified worker adapter. See $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2520
2547
|
"sourceUrl": "https://github.com/jmagly/aiwg/blob/main/docs/architecture/adr-grokbot-provider-target.md",
|
|
2521
2548
|
"verifiedAt": "2026-09-15",
|
|
2522
2549
|
"workerHealthCoverage": {
|
|
@@ -2536,6 +2563,10 @@
|
|
|
2536
2563
|
}
|
|
2537
2564
|
},
|
|
2538
2565
|
"grok-build": {
|
|
2566
|
+
"sessionEnvAllowlist": [
|
|
2567
|
+
"XAI_API_KEY",
|
|
2568
|
+
"GROK_HOME"
|
|
2569
|
+
],
|
|
2539
2570
|
"agent": "inherited",
|
|
2540
2571
|
"skill": "inherited",
|
|
2541
2572
|
"globalChild": "native",
|
|
@@ -2544,7 +2575,7 @@
|
|
|
2544
2575
|
"invalidPinFallback": "Report the unavailable alias; use the sole discovered model only when exactly one is available",
|
|
2545
2576
|
"configTarget": "$GROK_HOME/config.toml [models] and [model.<alias>] (read-only discovery)",
|
|
2546
2577
|
"artifactFormat": "Grok Build model alias",
|
|
2547
|
-
"verification": "grok inspect --json plus bounded parsing of model fields from reported config layers",
|
|
2578
|
+
"verification": "grok inspect --json plus bounded parsing of model fields from reported config layers. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2548
2579
|
"sourceUrl": "https://docs.x.ai/build/settings",
|
|
2549
2580
|
"verifiedAt": "2026-09-21",
|
|
2550
2581
|
"workerHealthAdapter": {
|
|
@@ -2736,6 +2767,25 @@
|
|
|
2736
2767
|
}
|
|
2737
2768
|
},
|
|
2738
2769
|
"hermes": {
|
|
2770
|
+
"sessionEnvAllowlist": [
|
|
2771
|
+
"OPENAI_API_KEY",
|
|
2772
|
+
"ANTHROPIC_API_KEY",
|
|
2773
|
+
"ANTHROPIC_TOKEN",
|
|
2774
|
+
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
2775
|
+
"GEMINI_API_KEY",
|
|
2776
|
+
"GOOGLE_API_KEY",
|
|
2777
|
+
"OPENROUTER_API_KEY",
|
|
2778
|
+
"GROQ_API_KEY",
|
|
2779
|
+
"MISTRAL_API_KEY",
|
|
2780
|
+
"XAI_API_KEY",
|
|
2781
|
+
"DEEPSEEK_API_KEY",
|
|
2782
|
+
"OPENAI_BASE_URL",
|
|
2783
|
+
"ANTHROPIC_BASE_URL",
|
|
2784
|
+
"OPENROUTER_BASE_URL",
|
|
2785
|
+
"CUSTOM_BASE_URL",
|
|
2786
|
+
"HERMES_HOME",
|
|
2787
|
+
"HERMES_INFERENCE_PROVIDER"
|
|
2788
|
+
],
|
|
2739
2789
|
"agent": "global-only",
|
|
2740
2790
|
"skill": "unsupported",
|
|
2741
2791
|
"globalChild": "native",
|
|
@@ -2744,7 +2794,7 @@
|
|
|
2744
2794
|
"invalidPinFallback": "Provider resolution is global; report actual model",
|
|
2745
2795
|
"configTarget": "Hermes delegation configuration",
|
|
2746
2796
|
"artifactFormat": "Global CLI/config setting",
|
|
2747
|
-
"verification": "Inspect Hermes delegation configuration",
|
|
2797
|
+
"verification": "Inspect Hermes delegation configuration. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2748
2798
|
"sourceUrl": "https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation",
|
|
2749
2799
|
"verifiedAt": "2026-07-20",
|
|
2750
2800
|
"workerHealthAdapter": {
|
|
@@ -2927,6 +2977,19 @@
|
|
|
2927
2977
|
}
|
|
2928
2978
|
},
|
|
2929
2979
|
"openhuman": {
|
|
2980
|
+
"sessionEnvAllowlist": [
|
|
2981
|
+
"OPENHUMAN_CORE_TOKEN",
|
|
2982
|
+
"OPENHUMAN_CORE_RPC_URL",
|
|
2983
|
+
"OPENHUMAN_CORE_HOST",
|
|
2984
|
+
"OPENHUMAN_CORE_PORT",
|
|
2985
|
+
"OPENHUMAN_WORKSPACE",
|
|
2986
|
+
"OPENHUMAN_DOTENV_PATH",
|
|
2987
|
+
"OPENHUMAN_KEYRING_MASTER_KEY",
|
|
2988
|
+
"OPENHUMAN_KEYRING_MASTER_KEY_FILE",
|
|
2989
|
+
"OPENHUMAN_APP_ENV",
|
|
2990
|
+
"BACKEND_URL",
|
|
2991
|
+
"OPENHUMAN_MODEL"
|
|
2992
|
+
],
|
|
2930
2993
|
"agent": "compiled",
|
|
2931
2994
|
"skill": "unsupported",
|
|
2932
2995
|
"globalChild": "inherited",
|
|
@@ -2935,7 +2998,7 @@
|
|
|
2935
2998
|
"invalidPinFallback": "Exact pins validate; semantic hints route dynamically",
|
|
2936
2999
|
"configTarget": "OpenHuman agent TOML",
|
|
2937
3000
|
"artifactFormat": "Standalone TOML agent definition",
|
|
2938
|
-
"verification": "Parse against OpenHuman definition schema",
|
|
3001
|
+
"verification": "Parse against OpenHuman definition schema. Session credential evidence: $AIWG_ROOT/docs/cli/sensitive-values.md#provider-recipient-exceptions (#3624).",
|
|
2939
3002
|
"sourceUrl": "https://github.com/tinyhumansai/openhuman/blob/main/src/openhuman/agent/harness/definition.rs",
|
|
2940
3003
|
"verifiedAt": "2026-07-20",
|
|
2941
3004
|
"workerHealthAdapter": {
|
|
@@ -3154,6 +3217,7 @@
|
|
|
3154
3217
|
"${effort}",
|
|
3155
3218
|
"--workspace",
|
|
3156
3219
|
"${workspace}",
|
|
3220
|
+
"--trust-workspace",
|
|
3157
3221
|
"--approval-mode",
|
|
3158
3222
|
"never",
|
|
3159
3223
|
"--approval-judge",
|
|
@@ -3246,8 +3310,8 @@
|
|
|
3246
3310
|
},
|
|
3247
3311
|
"trust": {
|
|
3248
3312
|
"support": "unqualified",
|
|
3249
|
-
"mapping": "[]",
|
|
3250
|
-
"evidence": "Installed muse exec --help (Muse Code 1.4.12, 2026-10-23); bounded renderer checked on operator qualification; no backend attestation."
|
|
3313
|
+
"mapping": "[\"--trust-workspace\"]",
|
|
3314
|
+
"evidence": "Installed muse exec --help (Muse Code 1.4.12, 2026-10-23); bounded renderer checked on operator qualification; no backend attestation. Tier 0 workspaces are conductor-prepared worker trees the conductor owns, so the profile binds --trust-workspace by default (#3685: untrusted Muse loads project_sources=0 with user skills only and empty hook admission; trusted loads project_sources=1, project skills and hooks)."
|
|
3251
3315
|
},
|
|
3252
3316
|
"children": {
|
|
3253
3317
|
"support": "unqualified",
|
|
@@ -3268,13 +3332,13 @@
|
|
|
3268
3332
|
"Live qualification is an open S1 blocker; installed help and synthetic/echo mechanics are not paid inference qualification.",
|
|
3269
3333
|
"Configured-model events provide runtime-configured identity only, never backend attestation.",
|
|
3270
3334
|
"Contributor data policy is explicit; shared policy denies contributor models and never silently selects the CLI default.",
|
|
3271
|
-
"Workspace trust
|
|
3335
|
+
"Workspace trust is bound on for conductor-prepared worker trees (the conductor owns the worktree), so project rules/skills/hooks load; only a host-qualified trust mapping may change it. Approval-mode never and approval-judge off retain the sandbox. Muse requires a qualified external boundary.",
|
|
3272
3336
|
"Host qualification must bind an absolute output-schema mapping and include that schema in runtimeFiles.",
|
|
3273
3337
|
"Muse JSONL strict normalization needs the shared strict-parser hook; the MCP bridge must consume the selected provider parser. MSP is not MCP.",
|
|
3274
3338
|
"Semantic step/tool completion grammar and native session-log layout remain unavailable; unrelated logs, deltas and CPU cannot establish progress.",
|
|
3275
3339
|
"Shared version gate: installation requires the raw trimmed banner Muse Code 1.4.4 (1.4.4-R5419.1), but semver selection requires 1.4.4-R5419.1. No normalization exists; keep unqualified until the shared owner binds raw and normalized versions.",
|
|
3276
3340
|
"Operator qualification approves the installed direct renderer, not authenticated inference or backend model identity.",
|
|
3277
|
-
"Workspace trust
|
|
3341
|
+
"Workspace trust is on for conductor-prepared worker trees. Only never approval is supported. Explicit unsupported controls block dispatch.",
|
|
3278
3342
|
"Self-delegation must be explicitly allowed by policy; no native child-denial flag is assumed."
|
|
3279
3343
|
],
|
|
3280
3344
|
"health": {
|
|
@@ -3326,6 +3390,200 @@
|
|
|
3326
3390
|
}
|
|
3327
3391
|
}
|
|
3328
3392
|
},
|
|
3393
|
+
"workerAdapters": {
|
|
3394
|
+
"local-http": {
|
|
3395
|
+
"version": 1,
|
|
3396
|
+
"id": "local-http",
|
|
3397
|
+
"provider": "ollama",
|
|
3398
|
+
"adapterVersion": "1",
|
|
3399
|
+
"supportedVersions": "8.18.0",
|
|
3400
|
+
"runtimeDriver": "installed:local-http",
|
|
3401
|
+
"catalogAdapter": {
|
|
3402
|
+
"kind": "http",
|
|
3403
|
+
"locator": "/api/tags",
|
|
3404
|
+
"parser": "ollama-model-list-v1",
|
|
3405
|
+
"timeoutSeconds": 10,
|
|
3406
|
+
"maxBytes": 65536
|
|
3407
|
+
},
|
|
3408
|
+
"invocation": {
|
|
3409
|
+
"kind": "process",
|
|
3410
|
+
"executable": "curl",
|
|
3411
|
+
"argv": [
|
|
3412
|
+
"-q",
|
|
3413
|
+
"-sS",
|
|
3414
|
+
"--max-redirs",
|
|
3415
|
+
"0",
|
|
3416
|
+
"--proto",
|
|
3417
|
+
"=http",
|
|
3418
|
+
"--noproxy",
|
|
3419
|
+
"*",
|
|
3420
|
+
"--connect-timeout",
|
|
3421
|
+
"10",
|
|
3422
|
+
"--max-time",
|
|
3423
|
+
"300",
|
|
3424
|
+
"--max-filesize",
|
|
3425
|
+
"10485760",
|
|
3426
|
+
"--fail-with-body",
|
|
3427
|
+
"-H",
|
|
3428
|
+
"Content-Type: application/json",
|
|
3429
|
+
"-X",
|
|
3430
|
+
"POST",
|
|
3431
|
+
"http://${endpoint}/api/generate",
|
|
3432
|
+
"--data-binary",
|
|
3433
|
+
"@-"
|
|
3434
|
+
],
|
|
3435
|
+
"stdin": "adapter-frame",
|
|
3436
|
+
"cwd": "${workspace}",
|
|
3437
|
+
"envAllowlist": [
|
|
3438
|
+
"OLLAMA_HOST"
|
|
3439
|
+
],
|
|
3440
|
+
"versionArgv": [
|
|
3441
|
+
"--version"
|
|
3442
|
+
],
|
|
3443
|
+
"versionPattern": "^curl ([0-9A-Za-z.+-]{1,128}) [\\s\\S]{1,4096}$",
|
|
3444
|
+
"maxOutputBytes": 10485760
|
|
3445
|
+
},
|
|
3446
|
+
"capabilities": {
|
|
3447
|
+
"output": "validated-file",
|
|
3448
|
+
"modelPin": "requested",
|
|
3449
|
+
"effort": "not-applicable",
|
|
3450
|
+
"cancel": "process-group",
|
|
3451
|
+
"resume": false,
|
|
3452
|
+
"sandboxModes": [
|
|
3453
|
+
"external"
|
|
3454
|
+
],
|
|
3455
|
+
"nestedAgentsControllable": true,
|
|
3456
|
+
"nativeFallbackControllable": true,
|
|
3457
|
+
"hardBudget": []
|
|
3458
|
+
},
|
|
3459
|
+
"qualification": {
|
|
3460
|
+
"status": "unqualified"
|
|
3461
|
+
},
|
|
3462
|
+
"invocationProfiles": {
|
|
3463
|
+
"direct-http": {
|
|
3464
|
+
"transport": "shell",
|
|
3465
|
+
"supportedVersions": "8.18.0",
|
|
3466
|
+
"controls": {
|
|
3467
|
+
"model": {
|
|
3468
|
+
"support": "native",
|
|
3469
|
+
"mapping": "[\"--data-binary\",\"@-\"]",
|
|
3470
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3471
|
+
},
|
|
3472
|
+
"effort": {
|
|
3473
|
+
"support": "not-applicable",
|
|
3474
|
+
"mapping": "unavailable: explicit effort is refused; null effort and empty effort lists only",
|
|
3475
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3476
|
+
},
|
|
3477
|
+
"sandbox": {
|
|
3478
|
+
"support": "external",
|
|
3479
|
+
"mapping": "unavailable natively: requires a host OS/executor boundary; local endpoint does not prove local inference",
|
|
3480
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3481
|
+
},
|
|
3482
|
+
"approval": {
|
|
3483
|
+
"support": "external",
|
|
3484
|
+
"mapping": "unavailable natively: curl has no approval or permission system; the host authorizes the single text-only POST",
|
|
3485
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3486
|
+
},
|
|
3487
|
+
"workdir": {
|
|
3488
|
+
"support": "external",
|
|
3489
|
+
"mapping": "host spawns curl in the resolved absolute workspace; no server-side workspace control",
|
|
3490
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3491
|
+
},
|
|
3492
|
+
"finalOutput": {
|
|
3493
|
+
"support": "external",
|
|
3494
|
+
"mapping": "host captures stdout and validates the original envelope and extracted worker claims; no server output-file control",
|
|
3495
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3496
|
+
},
|
|
3497
|
+
"stdin": {
|
|
3498
|
+
"support": "native",
|
|
3499
|
+
"mapping": "[\"--data-binary\",\"@-\"]",
|
|
3500
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3501
|
+
},
|
|
3502
|
+
"structuredOutput": {
|
|
3503
|
+
"support": "external",
|
|
3504
|
+
"mapping": "unavailable server schema control; host strict claims parser validates the extracted response",
|
|
3505
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3506
|
+
},
|
|
3507
|
+
"stepCap": {
|
|
3508
|
+
"support": "unqualified",
|
|
3509
|
+
"mapping": "unavailable: no model step cap; curl time and size bounds are not a step cap",
|
|
3510
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3511
|
+
},
|
|
3512
|
+
"trust": {
|
|
3513
|
+
"support": "native",
|
|
3514
|
+
"mapping": "-q",
|
|
3515
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3516
|
+
},
|
|
3517
|
+
"children": {
|
|
3518
|
+
"support": "native",
|
|
3519
|
+
"mapping": "[\"--data-binary\",\"@-\"]",
|
|
3520
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3521
|
+
},
|
|
3522
|
+
"fallback": {
|
|
3523
|
+
"support": "native",
|
|
3524
|
+
"mapping": "[\"--max-redirs\",\"0\"]",
|
|
3525
|
+
"evidence": "curl 8.18.0 installed help; tools/ralph-external/lib/ollama-adapter.mjs and offline Ollama fixtures; server 0.33.3 API assumptions provisional"
|
|
3526
|
+
}
|
|
3527
|
+
},
|
|
3528
|
+
"envAllowlist": [
|
|
3529
|
+
"OLLAMA_HOST"
|
|
3530
|
+
],
|
|
3531
|
+
"pitfalls": [
|
|
3532
|
+
"One text-only POST /api/generate, stream:false, explicit model and no tools, child-agent API or fallback request. Coding and explicit effort are refused.",
|
|
3533
|
+
"The model control binds the resolved model in the adapter-frame JSON body; argv contains no model or brief.",
|
|
3534
|
+
"No Ollama CLI, server start or weight-download command is invoked, including for disabled members. Server-side downloads, inference locality and backend identity remain unqualified.",
|
|
3535
|
+
"curl 8.18.0 is the executable version; Ollama 0.33.3 response fields and done_reason=stop remain provisional pending the conductor smoke.",
|
|
3536
|
+
"No native sandbox or approval system exists; external workspace/capture/validation controls require an enforcing host boundary.",
|
|
3537
|
+
"No streaming health grammar, progress, session log, server cancellation, resume or model step cap is available. Owned curl exit is not proof of remote server stop."
|
|
3538
|
+
],
|
|
3539
|
+
"health": {
|
|
3540
|
+
"version": 1,
|
|
3541
|
+
"handshake": "process-only",
|
|
3542
|
+
"outputFraming": "final-json",
|
|
3543
|
+
"signalParser": "unavailable",
|
|
3544
|
+
"sessionLogLocator": null,
|
|
3545
|
+
"progressEvidence": [],
|
|
3546
|
+
"stopEvidence": "owned curl process identity and observed exit only; remote server cancellation unavailable",
|
|
3547
|
+
"fixtureRef": "test/fixtures/providers/local-http/health/manifest.json",
|
|
3548
|
+
"qualifiedAt": null,
|
|
3549
|
+
"statusOperation": null,
|
|
3550
|
+
"cancelOperation": null,
|
|
3551
|
+
"coverage": "degraded",
|
|
3552
|
+
"qualificationTarget": "unobserved",
|
|
3553
|
+
"evidenceGrades": [
|
|
3554
|
+
"H",
|
|
3555
|
+
"R"
|
|
3556
|
+
],
|
|
3557
|
+
"provenance": [
|
|
3558
|
+
{
|
|
3559
|
+
"kind": "help",
|
|
3560
|
+
"ref": "docs/providers/ollama-direct.md",
|
|
3561
|
+
"observedAt": "2026-10-09T00:00:00Z",
|
|
3562
|
+
"cliVersion": "8.18.0"
|
|
3563
|
+
},
|
|
3564
|
+
{
|
|
3565
|
+
"kind": "repository",
|
|
3566
|
+
"ref": "tools/ralph-external/lib/ollama-adapter.mjs",
|
|
3567
|
+
"observedAt": "2026-10-26T00:00:00Z",
|
|
3568
|
+
"cliVersion": null
|
|
3569
|
+
}
|
|
3570
|
+
],
|
|
3571
|
+
"qualificationOwner": "B-OG-09",
|
|
3572
|
+
"qualification": {
|
|
3573
|
+
"status": "unqualified",
|
|
3574
|
+
"scopeDigest": null,
|
|
3575
|
+
"cliVersion": null,
|
|
3576
|
+
"accountScope": null,
|
|
3577
|
+
"profileRef": null,
|
|
3578
|
+
"modelKey": null,
|
|
3579
|
+
"effort": null,
|
|
3580
|
+
"authorizedLive": false
|
|
3581
|
+
}
|
|
3582
|
+
}
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
}
|
|
3586
|
+
},
|
|
3329
3587
|
"workerHealthAdapters": {
|
|
3330
3588
|
"local-http": {
|
|
3331
3589
|
"version": 1,
|
package/bin/aiwg.mjs
CHANGED
|
@@ -27,6 +27,14 @@ import { existsSync, readFileSync } from 'fs';
|
|
|
27
27
|
import os from 'os';
|
|
28
28
|
import { randomUUID } from 'crypto';
|
|
29
29
|
|
|
30
|
+
// Every exit path calls process.exit() right after writing. On a pipe, Node
|
|
31
|
+
// queues writes the reader has not consumed yet and process.exit() drops them,
|
|
32
|
+
// so a slow reader saw JSON reports cut off at the 64 KiB pipe buffer. Blocking
|
|
33
|
+
// pipe writes finish before the next statement runs, so nothing is lost.
|
|
34
|
+
for (const stream of [process.stdout, process.stderr]) {
|
|
35
|
+
if (!stream.isTTY) stream._handle?.setBlocking?.(true);
|
|
36
|
+
}
|
|
37
|
+
|
|
30
38
|
const __filename = fileURLToPath(import.meta.url);
|
|
31
39
|
const __dirname = path.dirname(__filename);
|
|
32
40
|
const packageRoot = path.resolve(__dirname, '..');
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Builds the existing MC admission owner with a live worker-activation gate.
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { assertWorkerActivationCurrent } from '../../config/worker-activation-gate.js';
|
|
4
|
+
import * as ui from '../ui.js';
|
|
5
|
+
const MC_ROOT = '.aiwg/ralph-external/mc';
|
|
6
|
+
/** Shared binding used by MC and the managed Mission/Flow/Ralph caller paths. */
|
|
7
|
+
export async function createMcAdmissionScheduler(projectRoot, cfg, hostRegistry) {
|
|
8
|
+
const { resolveParallelism, workerActivationDigests, workerConfigDigest } = await import('../../config/aiwg-config.js');
|
|
9
|
+
const { FileAdmissionStore, SharedHostScheduler } = await import('../../serve/shared-host-scheduler.js');
|
|
10
|
+
const provider = cfg?.providers[0] ?? 'unknown';
|
|
11
|
+
const parallelism = resolveParallelism(cfg?.parallelism, provider);
|
|
12
|
+
if (parallelism.worker_mode === 'managed') {
|
|
13
|
+
const { managedProjectAdmissionPolicy, projectAdmissionAuthority } = await import('../../serve/shared-host-scheduler.js');
|
|
14
|
+
const activation = parallelism.activation;
|
|
15
|
+
if (!cfg || !activation || activation.configDigest !== workerActivationDigests(cfg).configDigest) {
|
|
16
|
+
throw new Error('managed admission requires a current activated policy');
|
|
17
|
+
}
|
|
18
|
+
const authority = projectAdmissionAuthority(projectRoot);
|
|
19
|
+
const authorityRef = parallelism.admission?.authorityRef ?? 'project';
|
|
20
|
+
if (authorityRef.startsWith('host:') && process.env['AIWG_EXECUTOR_IDENTITY_STORE']) {
|
|
21
|
+
ui.warn('AIWG_EXECUTOR_IDENTITY_STORE is ignored for host admission authority lookup.');
|
|
22
|
+
}
|
|
23
|
+
const policy = managedProjectAdmissionPolicy(projectRoot, { ...parallelism,
|
|
24
|
+
admission: { ...parallelism.admission, authorityRef: 'project' },
|
|
25
|
+
}, workerConfigDigest(activation), parallelism.max_parallel_subagents);
|
|
26
|
+
const binding = authorityRef === 'project' ? { store: new FileAdmissionStore(authority.path), policy }
|
|
27
|
+
: (hostRegistry ?? (await import('../../serve/executor-registry.js')).executorRegistry).resolveHostAdmissionAuthority(authorityRef, policy);
|
|
28
|
+
const check = () => assertWorkerActivationCurrent(projectRoot, activation);
|
|
29
|
+
check();
|
|
30
|
+
const scheduler = new SharedHostScheduler(binding.store, binding.policy, Date.now, check);
|
|
31
|
+
scheduler.reconcileNow();
|
|
32
|
+
return scheduler;
|
|
33
|
+
}
|
|
34
|
+
const maxConcurrent = parallelism.max_parallel_mc_missions;
|
|
35
|
+
return new SharedHostScheduler(new FileAdmissionStore(join(projectRoot, MC_ROOT, 'admission.json')), {
|
|
36
|
+
maxConcurrent, leaseTtlMs: 5 * 60_000, agingIntervalMs: 30_000, allowPreemption: false, defaultHostQuota: maxConcurrent,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=mc-admission.js.map
|
|
@@ -36,37 +36,8 @@ async function readAdmissionConfig(projectRoot) {
|
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
export
|
|
41
|
-
const { resolveParallelism, workerActivationDigests, workerConfigDigest } = await import('../../config/aiwg-config.js');
|
|
42
|
-
const { FileAdmissionStore, SharedHostScheduler } = await import('../../serve/shared-host-scheduler.js');
|
|
43
|
-
const provider = cfg?.providers[0] ?? 'unknown';
|
|
44
|
-
const parallelism = resolveParallelism(cfg?.parallelism, provider);
|
|
45
|
-
if (parallelism.worker_mode === 'managed') {
|
|
46
|
-
const { managedProjectAdmissionPolicy, projectAdmissionAuthority } = await import('../../serve/shared-host-scheduler.js');
|
|
47
|
-
const activation = parallelism.activation;
|
|
48
|
-
if (!cfg || !activation || activation.configDigest !== workerActivationDigests(cfg).configDigest) {
|
|
49
|
-
throw new Error('managed admission requires a current activated policy');
|
|
50
|
-
}
|
|
51
|
-
const authority = projectAdmissionAuthority(projectRoot);
|
|
52
|
-
const authorityRef = parallelism.admission?.authorityRef ?? 'project';
|
|
53
|
-
if (authorityRef.startsWith('host:') && process.env['AIWG_EXECUTOR_IDENTITY_STORE']) {
|
|
54
|
-
ui.warn('AIWG_EXECUTOR_IDENTITY_STORE is ignored for host admission authority lookup.');
|
|
55
|
-
}
|
|
56
|
-
const policy = managedProjectAdmissionPolicy(projectRoot, { ...parallelism,
|
|
57
|
-
admission: { ...parallelism.admission, authorityRef: 'project' },
|
|
58
|
-
}, workerConfigDigest(activation), parallelism.max_parallel_subagents);
|
|
59
|
-
const binding = authorityRef === 'project' ? { store: new FileAdmissionStore(authority.path), policy }
|
|
60
|
-
: (hostRegistry ?? (await import('../../serve/executor-registry.js')).executorRegistry).resolveHostAdmissionAuthority(authorityRef, policy);
|
|
61
|
-
const scheduler = new SharedHostScheduler(binding.store, binding.policy);
|
|
62
|
-
scheduler.reconcileNow();
|
|
63
|
-
return scheduler;
|
|
64
|
-
}
|
|
65
|
-
const maxConcurrent = parallelism.max_parallel_mc_missions;
|
|
66
|
-
return new SharedHostScheduler(new FileAdmissionStore(join(projectRoot, MC_ROOT, 'admission.json')), {
|
|
67
|
-
maxConcurrent, leaseTtlMs: 5 * 60_000, agingIntervalMs: 30_000, allowPreemption: false, defaultHostQuota: maxConcurrent,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
39
|
+
import { createMcAdmissionScheduler } from './mc-admission.js';
|
|
40
|
+
export { createMcAdmissionScheduler } from './mc-admission.js';
|
|
70
41
|
const mcWorkerSupport = () => workerConsumerSupport([...WORKER_BASELINE_FEATURES, 'worker-health.v1']);
|
|
71
42
|
function workerDispatch(mission) {
|
|
72
43
|
const bindings = new Set();
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Documents the existing model maintenance and resolution commands.
|
|
2
|
+
export const MODELS_HELP = `Usage: aiwg models <subcommand> [options]
|
|
3
|
+
|
|
4
|
+
Subcommands:
|
|
5
|
+
list List discovered agent and skill model policies
|
|
6
|
+
audit Compile selected policies and report diagnostics
|
|
7
|
+
resolve Resolve artifact policies, or a direct worker invocation
|
|
8
|
+
validate Validate selected artifact policies (not worker configuration)
|
|
9
|
+
sources Show the effective model catalog without network refresh
|
|
10
|
+
refresh Refresh model discovery (may access the network)
|
|
11
|
+
set-default <TIER> Write defaults.tier to models.json
|
|
12
|
+
set --tier <TIER> Update selected agent/skill frontmatter; requires a selector or --all
|
|
13
|
+
migrate Add canonical role/tier hints to legacy skills
|
|
14
|
+
|
|
15
|
+
Artifact selectors and options:
|
|
16
|
+
--agent <name> --skill <name> --glob <pattern> --role <role>
|
|
17
|
+
--tier <tier> --framework <name> --all
|
|
18
|
+
--provider <provider> Provider for artifact compilation (default: claude)
|
|
19
|
+
--model <id> Explicit Grok Build model for artifact resolve
|
|
20
|
+
--target <directory> Artifact/project root (default: current directory)
|
|
21
|
+
--propose <file> Review pair edits (--parallelism/--worker-selection JSON files)
|
|
22
|
+
--apply <file> Apply with --authorize DIGEST or --standing-authorization FILE
|
|
23
|
+
--recover Restore retained pair with the original authorization
|
|
24
|
+
--scope project|user set-default destination (default: project)
|
|
25
|
+
--dry-run Preview mutations without writing
|
|
26
|
+
--json Emit JSON
|
|
27
|
+
--drift Include catalog drift for sources/refresh
|
|
28
|
+
--url <url> Remote catalog URL for refresh
|
|
29
|
+
--help, -h Show this reference
|
|
30
|
+
TIER: economy | standard | premium | max-quality
|
|
31
|
+
|
|
32
|
+
Direct worker resolution (plans an invocation; does not launch it):
|
|
33
|
+
aiwg models resolve --role <role> --task <class> --group <group>
|
|
34
|
+
--brief <file> --workdir <tree> --final-output <file>
|
|
35
|
+
[--transport shell|mcp] [--format json|shell] [--authorize-premium]
|
|
36
|
+
--role efficiency | coding | reasoning | configured project alias
|
|
37
|
+
--task Task class from defaults.workerSelection.taskClasses
|
|
38
|
+
Built-ins: inventory, implementation, architecture, review
|
|
39
|
+
--group Group from parallelism.groups and the role's guidance
|
|
40
|
+
--brief Absolute path to the task brief
|
|
41
|
+
--workdir Absolute path to the worker tree
|
|
42
|
+
--final-output Absolute path for the final result
|
|
43
|
+
--transport Must match group execution transport (default: shell)
|
|
44
|
+
--format JSON plan or POSIX shell command (default: json)
|
|
45
|
+
--json Alias for --format json
|
|
46
|
+
--authorize-premium Authorize premium for this resolution only
|
|
47
|
+
Agents require explicit human confirmation of escalation
|
|
48
|
+
|
|
49
|
+
Worker groups live in .aiwg/aiwg.config; role guidance lives in project-root models.json.
|
|
50
|
+
Configure both, then run aiwg doctor --probe-workers --qualify.
|
|
51
|
+
See docs/getting-started/worker-dispatch.md for a complete example.`;
|
|
52
|
+
//# sourceMappingURL=models-help.js.map
|