@aiwg/cli 2026.9.20 → 2026.9.24
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/capability-matrix.yaml +58 -6
- package/agentic/code/providers/model-capabilities.v1.json +34 -0
- package/agentic/code/providers/model-catalog.v1.json +55 -13
- package/bin/aiwg.mjs +2 -0
- package/dist/src/api/index.d.ts +1 -0
- package/dist/src/api/index.js +1 -0
- package/dist/src/artifacts/cli.js +23 -18
- package/dist/src/artifacts/enrichment/cli.js +1 -1
- package/dist/src/artifacts/fortemi-core-query-adapter.js +6 -2
- package/dist/src/artifacts/query-engine.js +14 -4
- package/dist/src/artifacts/views/cli.js +1 -1
- package/dist/src/audit/operator-decision.js +10 -0
- package/dist/src/auth/credential-store.js +127 -27
- package/dist/src/catalog/builtin-models.json +272 -40
- package/dist/src/catalog/cli.js +1 -1
- package/dist/src/catalog/cli.mjs +1 -1
- package/dist/src/cli/handlers/effect.js +872 -0
- package/dist/src/cli/handlers/help.js +2 -0
- package/dist/src/cli/handlers/index.js +4 -2
- package/dist/src/cli/handlers/models.js +41 -10
- package/dist/src/cli/handlers/ralph.js +1 -1
- package/dist/src/cli/handlers/sessions.js +113 -37
- package/dist/src/cli/handlers/subcommands.js +31 -0
- package/dist/src/cli/handlers/use.js +46 -9
- package/dist/src/cli/handlers/utilities.js +10 -0
- package/dist/src/cli/handlers/workspace.js +3 -1
- package/dist/src/cli/scope-resolver.js +112 -9
- package/dist/src/cli/services/deployment-verification.js +5 -0
- package/dist/src/config/aiwg-config.js +3 -0
- package/dist/src/decision/acceptance-rollout.js +93 -0
- package/dist/src/decision/acceptance.js +175 -0
- package/dist/src/decision/adapters/jev.js +234 -13
- package/dist/src/decision/adapters/llm-subagent.js +60 -12
- package/dist/src/decision/admission.js +550 -0
- package/dist/src/decision/batch-benchmark.js +47 -0
- package/dist/src/decision/batch-receipts/accounting.js +75 -0
- package/dist/src/decision/batch-receipts/export.js +40 -0
- package/dist/src/decision/batch-receipts/index.js +9 -0
- package/dist/src/decision/batch-receipts/protection.js +40 -0
- package/dist/src/decision/batch-receipts/receipt.js +44 -0
- package/dist/src/decision/batch-receipts/result-store.js +341 -0
- package/dist/src/decision/batch-receipts/store.js +362 -0
- package/dist/src/decision/batch-receipts/types.js +2 -0
- package/dist/src/decision/batch-receipts/validate.js +127 -0
- package/dist/src/decision/batch.js +68 -0
- package/dist/src/decision/calibration/index.js +4 -0
- package/dist/src/decision/calibration/receipts.js +130 -0
- package/dist/src/decision/calibration/registry.js +258 -0
- package/dist/src/decision/calibration/types.js +2 -0
- package/dist/src/decision/compile-cache/benchmark.js +62 -0
- package/dist/src/decision/compile-cache/compatibility.js +65 -0
- package/dist/src/decision/compile-cache/file-store.js +280 -0
- package/dist/src/decision/compile-cache/identity.js +26 -0
- package/dist/src/decision/compile-cache/index.js +9 -0
- package/dist/src/decision/compile-cache/prefix.js +21 -0
- package/dist/src/decision/compile-cache/records.js +86 -0
- package/dist/src/decision/compile-cache/runtime.js +68 -0
- package/dist/src/decision/compile-cache/store.js +108 -0
- package/dist/src/decision/compile-cache/types.js +2 -0
- package/dist/src/decision/context-plan.js +234 -0
- package/dist/src/decision/context-qualification.js +60 -0
- package/dist/src/decision/ensemble/aggregate.js +215 -0
- package/dist/src/decision/ensemble/contract.js +316 -0
- package/dist/src/decision/ensemble/drift.js +51 -0
- package/dist/src/decision/ensemble/index.js +6 -0
- package/dist/src/decision/ensemble/report.js +71 -0
- package/dist/src/decision/ensemble/types.js +2 -0
- package/dist/src/decision/evaluate.js +1024 -78
- package/dist/src/decision/file-lifecycle-store.js +168 -0
- package/dist/src/decision/graph-beam.js +40 -0
- package/dist/src/decision/graph-budget.js +110 -0
- package/dist/src/decision/graph-decision-bridge.js +93 -0
- package/dist/src/decision/graph-evidence.js +123 -0
- package/dist/src/decision/graph-flow-adapter.js +56 -0
- package/dist/src/decision/graph-flow.js +105 -0
- package/dist/src/decision/graph-parallel.js +79 -0
- package/dist/src/decision/graph-patterns.js +20 -0
- package/dist/src/decision/graph-run-store.js +66 -0
- package/dist/src/decision/graph-run.js +166 -0
- package/dist/src/decision/graph-skill-bridge.js +91 -0
- package/dist/src/decision/graph-templates.js +56 -0
- package/dist/src/decision/graph.js +115 -0
- package/dist/src/decision/index.js +35 -0
- package/dist/src/decision/job-accounting.js +93 -0
- package/dist/src/decision/job-contract.js +186 -0
- package/dist/src/decision/job-effects.js +95 -0
- package/dist/src/decision/job-evaluate.js +80 -0
- package/dist/src/decision/job-gateway.js +121 -0
- package/dist/src/decision/job-http.js +194 -0
- package/dist/src/decision/job-payload-store.js +258 -0
- package/dist/src/decision/job-poll-limiter.js +92 -0
- package/dist/src/decision/job-quota.js +158 -0
- package/dist/src/decision/job-runtime.js +240 -0
- package/dist/src/decision/job-scheduler.js +26 -0
- package/dist/src/decision/job-service.js +117 -0
- package/dist/src/decision/job-store.js +264 -0
- package/dist/src/decision/job-worker.js +141 -0
- package/dist/src/decision/lifecycle.js +148 -0
- package/dist/src/decision/patterns/artifacts.js +173 -0
- package/dist/src/decision/patterns/catalog.js +108 -0
- package/dist/src/decision/patterns/durable-review.js +237 -0
- package/dist/src/decision/patterns/index.js +8 -0
- package/dist/src/decision/patterns/playground.js +401 -0
- package/dist/src/decision/patterns/recorded.js +43 -0
- package/dist/src/decision/patterns/specs.js +174 -0
- package/dist/src/decision/patterns/types.js +2 -0
- package/dist/src/decision/portable-secrets.js +53 -0
- package/dist/src/decision/projection.js +210 -0
- package/dist/src/decision/qualification/capture.js +67 -0
- package/dist/src/decision/qualification/drift.js +68 -0
- package/dist/src/decision/qualification/gate-evidence.js +172 -0
- package/dist/src/decision/qualification/gates.js +83 -0
- package/dist/src/decision/qualification/index.js +12 -0
- package/dist/src/decision/qualification/load.js +282 -0
- package/dist/src/decision/qualification/manifest.js +37 -0
- package/dist/src/decision/qualification/privacy.js +41 -0
- package/dist/src/decision/qualification/quality.js +213 -0
- package/dist/src/decision/qualification/release.js +116 -0
- package/dist/src/decision/qualification/runner.js +408 -0
- package/dist/src/decision/qualification/types.js +2 -0
- package/dist/src/decision/receipts.js +30 -7
- package/dist/src/decision/result-cache/index.js +6 -0
- package/dist/src/decision/result-cache/integrity.js +28 -0
- package/dist/src/decision/result-cache/key.js +28 -0
- package/dist/src/decision/result-cache/service.js +92 -0
- package/dist/src/decision/result-cache/store.js +327 -0
- package/dist/src/decision/result-cache/types.js +3 -0
- package/dist/src/decision/review/authorization.js +110 -0
- package/dist/src/decision/review/effect-ledger-adapter.js +321 -0
- package/dist/src/decision/review/index.js +12 -0
- package/dist/src/decision/review/migrate.js +34 -0
- package/dist/src/decision/review/operator-audit.js +59 -0
- package/dist/src/decision/review/recovery-adapters.js +252 -0
- package/dist/src/decision/review/recovery.js +33 -0
- package/dist/src/decision/review/service.js +498 -0
- package/dist/src/decision/review/store.js +219 -0
- package/dist/src/decision/review/types.js +2 -0
- package/dist/src/decision/review/validate.js +205 -0
- package/dist/src/decision/scheduler.js +115 -0
- package/dist/src/decision/telemetry/context.js +42 -0
- package/dist/src/decision/telemetry/debug-sidecar.js +152 -0
- package/dist/src/decision/telemetry/exporter.js +77 -0
- package/dist/src/decision/telemetry/file-debug-backend.js +112 -0
- package/dist/src/decision/telemetry/index.js +13 -0
- package/dist/src/decision/telemetry/mapping.js +146 -0
- package/dist/src/decision/telemetry/metrics.js +164 -0
- package/dist/src/decision/telemetry/otlp-http.js +183 -0
- package/dist/src/decision/telemetry/redaction.js +93 -0
- package/dist/src/decision/telemetry/retention.js +109 -0
- package/dist/src/decision/telemetry/runtime.js +310 -0
- package/dist/src/decision/telemetry/trace.js +158 -0
- package/dist/src/decision/telemetry/types.js +3 -0
- package/dist/src/decision/validate.js +135 -5
- package/dist/src/effects/checkpoint-sinks.js +94 -0
- package/dist/src/effects/checkpoint.js +76 -0
- package/dist/src/effects/decision-links.js +54 -0
- package/dist/src/effects/errors.js +48 -0
- package/dist/src/effects/identity.js +178 -0
- package/dist/src/effects/index.js +25 -0
- package/dist/src/effects/keyring.js +160 -0
- package/dist/src/effects/keys.js +130 -0
- package/dist/src/effects/ledger.js +435 -0
- package/dist/src/effects/lifecycle.js +110 -0
- package/dist/src/effects/lock-recovery.js +269 -0
- package/dist/src/effects/reader.js +103 -0
- package/dist/src/effects/records.js +114 -0
- package/dist/src/effects/redaction.js +51 -0
- package/dist/src/effects/schema.js +73 -0
- package/dist/src/effects/store.js +239 -0
- package/dist/src/effects/types.js +49 -0
- package/dist/src/effects/verifiers/decision.js +168 -0
- package/dist/src/effects/verifiers/file.js +106 -0
- package/dist/src/effects/verifiers/git.js +206 -0
- package/dist/src/effects/verifiers/index.js +90 -0
- package/dist/src/effects/verifiers/registry.js +148 -0
- package/dist/src/effects/verifiers/review.js +123 -0
- package/dist/src/effects/verifiers/tracker.js +299 -0
- package/dist/src/effects/verifiers/types.js +21 -0
- package/dist/src/effects/verify.js +295 -0
- package/dist/src/evidence/bundle.js +2 -0
- package/dist/src/extensions/commands/definitions.js +28 -0
- package/dist/src/extensions/manifest.js +1 -0
- package/dist/src/marketplace/provenance.js +25 -27
- package/dist/src/mcp/cli.mjs +11 -1
- package/dist/src/mcp/grok-build-config.mjs +189 -0
- package/dist/src/mcp/registry.js +21 -1
- package/dist/src/mcp/registry.mjs +20 -1
- package/dist/src/models/grok-build-models.js +356 -0
- package/dist/src/models/index.js +1 -0
- package/dist/src/models/model-capabilities.v1.json +34 -0
- package/dist/src/models/model-catalog.v1.json +55 -13
- package/dist/src/models/model-discovery.js +41 -5
- package/dist/src/models/provider-policy.js +3 -2
- package/dist/src/plugin/skill-command-translator.js +1 -0
- package/dist/src/providers/capability-matrix.yaml +58 -6
- package/dist/src/providers/grok-build-acp.js +192 -0
- package/dist/src/providers/grok-build-dispatch.js +251 -0
- package/dist/src/providers/grok-build-headless.js +170 -0
- package/dist/src/providers/muse-paths.js +105 -0
- package/dist/src/providers/provider-definitions.js +93 -7
- package/dist/src/providers/provider-definitions.mjs +21 -1
- package/dist/src/providers/provider-inventory.js +3 -0
- package/dist/src/security/artifact-attestation.js +4 -8
- package/dist/src/security/signing.js +119 -0
- package/dist/src/sessions/adapters/grok-build.js +187 -0
- package/dist/src/sessions/adapters/muse.js +412 -0
- package/dist/src/sessions/contracts.js +1 -1
- package/dist/src/sessions/grok-build-cli.js +196 -0
- package/dist/src/sessions/index.js +3 -0
- package/dist/src/sessions/workspace-discovery.js +9 -5
- package/dist/src/skills/deployer.js +33 -5
- package/dist/src/smiths/context-pipeline/claude-hook.js +2 -0
- package/dist/src/smiths/context-pipeline/context-file-safety.js +18 -0
- package/dist/src/smiths/context-pipeline/finalization.js +1 -32
- package/dist/src/smiths/context-pipeline/generator.js +12 -0
- package/dist/src/smiths/context-pipeline/index.js +1 -1
- package/dist/src/smiths/context-pipeline/managed-hook.js +2 -0
- package/dist/src/smiths/context-pipeline/muse-bridge.js +50 -0
- package/dist/src/smiths/context-pipeline/provider-policy.js +5 -0
- package/dist/src/smiths/context-pipeline/workspace-context.js +22 -16
- package/dist/src/smiths/hook-bridge/grok-build-translator.js +64 -0
- package/dist/src/smiths/hook-bridge/index.js +3 -0
- package/dist/src/smiths/hook-bridge/shim.js +2 -0
- package/dist/src/smiths/hook-bridge/types.js +5 -0
- package/dist/src/smiths/skillsmith/collision-detector.js +1 -0
- package/dist/src/storage/protected-files.js +102 -0
- package/dist/src/tracker/forge-http.js +371 -0
- package/dist/src/tracker/project-inputs.js +41 -0
- package/package.json +2 -1
- package/schemas/decision/BatchReceipt.v1.schema.json +50 -0
- package/schemas/decision/CalibrationArtifact.v1.schema.json +76 -0
- package/schemas/decision/CalibrationCompatibility.v1.schema.json +18 -0
- package/schemas/decision/CalibrationGovernanceReceipt.v1.schema.json +44 -0
- package/schemas/decision/DecisionAdmissionEvidence.v1.schema.json +43 -0
- package/schemas/decision/DecisionBinding.schema.json +309 -0
- package/schemas/decision/DecisionBinding.v1alpha2.schema.json +369 -0
- package/schemas/decision/DecisionCacheTelemetry.v1.schema.json +20 -0
- package/schemas/decision/DecisionChampionChallenger.v1.schema.json +100 -0
- package/schemas/decision/DecisionCompileCacheEntry.v1.schema.json +35 -0
- package/schemas/decision/DecisionCompileCacheIdentity.v1.schema.json +26 -0
- package/schemas/decision/DecisionCompileCacheTombstone.v1.schema.json +31 -0
- package/schemas/decision/DecisionContextEvidence.v1.schema.json +136 -0
- package/schemas/decision/DecisionDefinition.schema.json +159 -0
- package/schemas/decision/DecisionDefinition.v1alpha2.schema.json +203 -0
- package/schemas/decision/DecisionDriftResponse.v1.schema.json +55 -0
- package/schemas/decision/DecisionEnsembleAggregate.v1.schema.json +86 -0
- package/schemas/decision/DecisionEnsembleIntegrityReport.v1.schema.json +64 -0
- package/schemas/decision/DecisionEnsemblePolicy.v1.schema.json +130 -0
- package/schemas/decision/DecisionGraph.v1.schema.json +77 -0
- package/schemas/decision/DecisionJob.v1.schema.json +71 -0
- package/schemas/decision/DecisionLifecyclePolicy.v1.schema.json +52 -0
- package/schemas/decision/DecisionProjectionPolicy.v1.schema.json +65 -0
- package/schemas/decision/DecisionProviderPrefixCompatibility.v1.schema.json +45 -0
- package/schemas/decision/DecisionProviderPrefixEvidence.v1.schema.json +17 -0
- package/schemas/decision/DecisionProviderPrefixIdentity.v1.schema.json +36 -0
- package/schemas/decision/DecisionResult.schema.json +524 -0
- package/schemas/decision/DecisionResult.v1alpha2.schema.json +619 -0
- package/schemas/decision/DecisionResultCacheEntry.v1.schema.json +53 -0
- package/schemas/decision/DecisionReview.schema.json +29 -0
- package/schemas/decision/DecisionRuleset.schema.json +313 -0
- package/schemas/decision/DecisionRuleset.v1alpha2.schema.json +313 -0
- package/schemas/decision/DecisionTelemetryTrace.v1.schema.json +95 -0
- package/schemas/decision/RulesetResult.schema.json +721 -0
- package/schemas/decision/RulesetResult.v1alpha2.schema.json +891 -0
- package/schemas/security/pr-evidence-receipt.v1.schema.json +77 -0
- package/schemas/security/threat-assessment-report.v1.schema.json +71 -1
- package/tools/agents/deploy-agents.mjs +21 -6
- package/tools/agents/providers/base.mjs +7 -4
- package/tools/agents/providers/codex.mjs +1 -1
- package/tools/agents/providers/grok-build.d.mts +7 -0
- package/tools/agents/providers/grok-build.mjs +249 -9
- package/tools/agents/providers/model-role.mjs +6 -3
- package/tools/agents/providers/muse-hooks.mjs +785 -0
- package/tools/agents/providers/muse-paths.mjs +112 -0
- package/tools/agents/providers/muse.mjs +336 -0
|
@@ -38,51 +38,84 @@ function parseCredentials(raw) {
|
|
|
38
38
|
}
|
|
39
39
|
return value;
|
|
40
40
|
}
|
|
41
|
-
const
|
|
42
|
-
const
|
|
41
|
+
export const DEFAULT_CREDENTIAL_SERVICE = "releases.aiwg.io";
|
|
42
|
+
export const DEFAULT_CREDENTIAL_ACCOUNT = "aiwg-cli";
|
|
43
|
+
function resolveIdentity(identity = {}) {
|
|
44
|
+
const service = identity.service ?? DEFAULT_CREDENTIAL_SERVICE;
|
|
45
|
+
const account = identity.account ?? DEFAULT_CREDENTIAL_ACCOUNT;
|
|
46
|
+
for (const [label, value] of [["service", service], ["account", account]]) {
|
|
47
|
+
// Values reach native helpers as argv entries or PowerShell string literals; refuse
|
|
48
|
+
// empty values and control characters rather than depend on each helper's parsing.
|
|
49
|
+
if (typeof value !== "string" || !value || value.length > 256 || /[\u0000-\u001f\u007f]/.test(value)) {
|
|
50
|
+
throw new Error(`credential store ${label} must be a non-empty string without control characters`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return { service, account };
|
|
54
|
+
}
|
|
55
|
+
/** Quote a value as a PowerShell single-quoted string literal. */
|
|
56
|
+
function powershellLiteral(value) {
|
|
57
|
+
return `'${value.replace(/['\u2018\u2019\u201a\u201b]/g, "$&$&")}'`;
|
|
58
|
+
}
|
|
43
59
|
class NativeCredentialStore {
|
|
44
60
|
run;
|
|
45
|
-
|
|
61
|
+
service;
|
|
62
|
+
account;
|
|
63
|
+
constructor(run = defaultCommandRunner, identity = {}) {
|
|
46
64
|
this.run = run;
|
|
65
|
+
({ service: this.service, account: this.account } = resolveIdentity(identity));
|
|
47
66
|
}
|
|
67
|
+
async load() { const raw = await this.loadRaw(); return raw === null ? null : this.parse(raw); }
|
|
68
|
+
async save(credentials) { await this.saveRaw(JSON.stringify(credentials)); }
|
|
69
|
+
async loadSecret() { const raw = await this.loadRaw(); return raw === null ? null : raw.trim(); }
|
|
70
|
+
async saveSecret(value) { await this.saveRaw(requireSecretValue(value)); }
|
|
71
|
+
async deleteSecret() { await this.delete(); }
|
|
48
72
|
parse(raw) { return parseCredentials(raw.trim()); }
|
|
49
73
|
}
|
|
74
|
+
function requireSecretValue(value) {
|
|
75
|
+
if (typeof value !== "string" || !value || value.length > 16384 || /[\u0000-\u001f\u007f]/.test(value)) {
|
|
76
|
+
throw new Error("secret value must be a non-empty single-line string");
|
|
77
|
+
}
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
50
80
|
export class MacOsKeychainStore extends NativeCredentialStore {
|
|
51
|
-
metadata = { provider: "macos-keychain", location: `Keychain:${
|
|
52
|
-
async
|
|
53
|
-
const result = await this.run("security", ["find-generic-password", "-a",
|
|
54
|
-
return result.exitCode === 44 ? null : result.exitCode === 0 ?
|
|
81
|
+
metadata = { provider: "macos-keychain", location: `Keychain:${this.service}/${this.account}` };
|
|
82
|
+
async loadRaw() {
|
|
83
|
+
const result = await this.run("security", ["find-generic-password", "-a", this.account, "-s", this.service, "-w"]);
|
|
84
|
+
return result.exitCode === 44 ? null : result.exitCode === 0 ? result.stdout : Promise.reject(new Error("macOS Keychain read failed"));
|
|
55
85
|
}
|
|
56
|
-
async
|
|
57
|
-
const result = await this.run("security", ["add-generic-password", "-U", "-a",
|
|
86
|
+
async saveRaw(value) {
|
|
87
|
+
const result = await this.run("security", ["add-generic-password", "-U", "-a", this.account, "-s", this.service, "-w"], value);
|
|
58
88
|
if (result.exitCode !== 0)
|
|
59
89
|
throw new Error("macOS Keychain write failed");
|
|
60
90
|
}
|
|
61
|
-
async delete() { await this.run("security", ["delete-generic-password", "-a",
|
|
91
|
+
async delete() { await this.run("security", ["delete-generic-password", "-a", this.account, "-s", this.service]); }
|
|
62
92
|
}
|
|
63
93
|
export class LinuxSecretServiceStore extends NativeCredentialStore {
|
|
64
|
-
metadata = { provider: "linux-secret-service", location: `SecretService:${
|
|
65
|
-
async
|
|
66
|
-
const result = await this.run("secret-tool", ["lookup", "service",
|
|
67
|
-
return result.exitCode === 1 ? null : result.exitCode === 0 ?
|
|
94
|
+
metadata = { provider: "linux-secret-service", location: `SecretService:${this.service}/${this.account}` };
|
|
95
|
+
async loadRaw() {
|
|
96
|
+
const result = await this.run("secret-tool", ["lookup", "service", this.service, "account", this.account]);
|
|
97
|
+
return result.exitCode === 1 ? null : result.exitCode === 0 ? result.stdout : Promise.reject(new Error("Linux Secret Service read failed"));
|
|
68
98
|
}
|
|
69
|
-
async
|
|
70
|
-
const result = await this.run("secret-tool", ["store", `--label=AIWG ${
|
|
99
|
+
async saveRaw(value) {
|
|
100
|
+
const result = await this.run("secret-tool", ["store", `--label=AIWG ${this.service}`, "service", this.service, "account", this.account], value);
|
|
71
101
|
if (result.exitCode !== 0)
|
|
72
102
|
throw new Error("Linux Secret Service write failed");
|
|
73
103
|
}
|
|
74
|
-
async delete() { await this.run("secret-tool", ["clear", "service",
|
|
104
|
+
async delete() { await this.run("secret-tool", ["clear", "service", this.service, "account", this.account]); }
|
|
75
105
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
106
|
+
// Scripts are built from the store identity; the default identity yields the exact
|
|
107
|
+
// scripts used before the identity became configurable.
|
|
108
|
+
const windowsRead = (target) => `$v=New-Object Windows.Security.Credentials.PasswordVault;try{$c=$v.Retrieve(${target});$c.RetrievePassword();[Console]::Out.Write($c.Password)}catch{exit 1}`;
|
|
109
|
+
const windowsWrite = (target) => `$s=[Console]::In.ReadToEnd();$v=New-Object Windows.Security.Credentials.PasswordVault;$v.Add((New-Object Windows.Security.Credentials.PasswordCredential(${target},$s)))`;
|
|
110
|
+
const windowsDelete = (target) => `$v=New-Object Windows.Security.Credentials.PasswordVault;try{$c=$v.Retrieve(${target});$v.Remove($c)}catch{}`;
|
|
79
111
|
export class WindowsCredentialManagerStore extends NativeCredentialStore {
|
|
80
|
-
metadata = { provider: "windows-credential-manager", location: `CredentialManager:${
|
|
112
|
+
metadata = { provider: "windows-credential-manager", location: `CredentialManager:${this.service}/${this.account}` };
|
|
113
|
+
get target() { return `${powershellLiteral(this.service)},${powershellLiteral(this.account)}`; }
|
|
81
114
|
execute(script, stdin = "") { return this.run("powershell.exe", ["-NoLogo", "-NoProfile", "-NonInteractive", "-Command", script], stdin); }
|
|
82
|
-
async
|
|
83
|
-
async
|
|
115
|
+
async loadRaw() { const result = await this.execute(windowsRead(this.target)); return result.exitCode === 1 ? null : result.exitCode === 0 ? result.stdout : Promise.reject(new Error("Windows Credential Manager read failed")); }
|
|
116
|
+
async saveRaw(value) { if ((await this.execute(windowsWrite(this.target), value)).exitCode !== 0)
|
|
84
117
|
throw new Error("Windows Credential Manager write failed"); }
|
|
85
|
-
async delete() { await this.execute(
|
|
118
|
+
async delete() { await this.execute(windowsDelete(this.target)); }
|
|
86
119
|
}
|
|
87
120
|
export class FileCredentialStore {
|
|
88
121
|
pathname;
|
|
@@ -136,12 +169,79 @@ export function createCredentialStore(options = {}) {
|
|
|
136
169
|
if (options.useFile)
|
|
137
170
|
return new FileCredentialStore(options.pathname || defaultCredentialFile(), options.allowFile === true);
|
|
138
171
|
const platform = options.platform || process.platform;
|
|
172
|
+
const identity = { service: options.service, account: options.account };
|
|
139
173
|
if (platform === "darwin")
|
|
140
|
-
return new MacOsKeychainStore(options.runner);
|
|
174
|
+
return new MacOsKeychainStore(options.runner, identity);
|
|
141
175
|
if (platform === "win32")
|
|
142
|
-
return new WindowsCredentialManagerStore(options.runner);
|
|
176
|
+
return new WindowsCredentialManagerStore(options.runner, identity);
|
|
143
177
|
if (platform === "linux")
|
|
144
|
-
return new LinuxSecretServiceStore(options.runner);
|
|
178
|
+
return new LinuxSecretServiceStore(options.runner, identity);
|
|
145
179
|
throw new Error("no native credential store is available; explicitly opt in to the mode-0600 file fallback");
|
|
146
180
|
}
|
|
181
|
+
/** Mode-0600 file secret, used only on explicit opt-in (tests, or hosts without a native store). */
|
|
182
|
+
export class FileSecretStore {
|
|
183
|
+
pathname;
|
|
184
|
+
explicitlyAllowed;
|
|
185
|
+
metadata;
|
|
186
|
+
constructor(pathname, explicitlyAllowed) {
|
|
187
|
+
this.pathname = pathname;
|
|
188
|
+
this.explicitlyAllowed = explicitlyAllowed;
|
|
189
|
+
this.pathname = path.resolve(pathname);
|
|
190
|
+
this.metadata = { provider: "file", location: this.pathname };
|
|
191
|
+
}
|
|
192
|
+
assertAllowed() { if (!this.explicitlyAllowed)
|
|
193
|
+
throw new Error("secret file fallback requires an explicit opt-in"); }
|
|
194
|
+
async loadSecret() {
|
|
195
|
+
this.assertAllowed();
|
|
196
|
+
try {
|
|
197
|
+
const stat = await fs.lstat(this.pathname);
|
|
198
|
+
if (!stat.isFile() || stat.isSymbolicLink() || (stat.mode & 0o077) !== 0)
|
|
199
|
+
throw new Error("secret file must be a non-symlink mode-0600 regular file");
|
|
200
|
+
return (await fs.readFile(this.pathname, "utf8")).trim() || null;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
if (error.code === "ENOENT")
|
|
204
|
+
return null;
|
|
205
|
+
throw error;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
async saveSecret(value) {
|
|
209
|
+
this.assertAllowed();
|
|
210
|
+
requireSecretValue(value);
|
|
211
|
+
await fs.mkdir(path.dirname(this.pathname), { recursive: true, mode: 0o700 });
|
|
212
|
+
const temporary = `${this.pathname}.${process.pid}.tmp`;
|
|
213
|
+
await fs.writeFile(temporary, `${value}\n`, { mode: 0o600, flag: "wx" });
|
|
214
|
+
await fs.rename(temporary, this.pathname);
|
|
215
|
+
await fs.chmod(this.pathname, 0o600);
|
|
216
|
+
}
|
|
217
|
+
async deleteSecret() { this.assertAllowed(); await fs.unlink(this.pathname).catch((error) => { if (error.code !== "ENOENT")
|
|
218
|
+
throw error; }); }
|
|
219
|
+
}
|
|
220
|
+
export class MemorySecretStore {
|
|
221
|
+
metadata = { provider: "memory", location: "injected-memory-store" };
|
|
222
|
+
#value = null;
|
|
223
|
+
async loadSecret() { return this.#value; }
|
|
224
|
+
async saveSecret(value) { this.#value = requireSecretValue(value); }
|
|
225
|
+
async deleteSecret() { this.#value = null; }
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Raw-secret store on the host secret service. `service` and `account` name the
|
|
229
|
+
* entry; callers pick an identity distinct from the release credential.
|
|
230
|
+
*/
|
|
231
|
+
export function createSecretStore(options) {
|
|
232
|
+
if (options.useFile) {
|
|
233
|
+
if (!options.pathname)
|
|
234
|
+
throw new Error("secret file fallback requires an explicit pathname");
|
|
235
|
+
return new FileSecretStore(options.pathname, options.allowFile === true);
|
|
236
|
+
}
|
|
237
|
+
const platform = options.platform || process.platform;
|
|
238
|
+
const identity = { service: options.service, account: options.account };
|
|
239
|
+
if (platform === "darwin")
|
|
240
|
+
return new MacOsKeychainStore(options.runner, identity);
|
|
241
|
+
if (platform === "win32")
|
|
242
|
+
return new WindowsCredentialManagerStore(options.runner, identity);
|
|
243
|
+
if (platform === "linux")
|
|
244
|
+
return new LinuxSecretServiceStore(options.runner, identity);
|
|
245
|
+
throw new Error("no native secret store is available; explicitly opt in to the mode-0600 file fallback");
|
|
246
|
+
}
|
|
147
247
|
//# sourceMappingURL=credential-store.js.map
|
|
@@ -4,14 +4,246 @@
|
|
|
4
4
|
"title": "AIWG Built-in Model Catalog",
|
|
5
5
|
"description": "Core models shipped with AIWG, manually curated and verified",
|
|
6
6
|
"models": {
|
|
7
|
-
"claude-
|
|
7
|
+
"claude-fable-5-1": {
|
|
8
8
|
"provider": "anthropic",
|
|
9
|
-
"displayName": "Claude
|
|
10
|
-
"releaseDate": "
|
|
9
|
+
"displayName": "Claude Fable 5.1",
|
|
10
|
+
"releaseDate": "2026-09-01",
|
|
11
|
+
"status": "active",
|
|
12
|
+
"deprecated": false,
|
|
13
|
+
"deprecationDate": null,
|
|
14
|
+
"successorModel": null,
|
|
15
|
+
"capabilities": {
|
|
16
|
+
"contextWindow": 1000000,
|
|
17
|
+
"maxOutputTokens": 128000,
|
|
18
|
+
"vision": true,
|
|
19
|
+
"toolUse": true,
|
|
20
|
+
"streaming": true,
|
|
21
|
+
"reasoning": "excellent",
|
|
22
|
+
"coding": "excellent",
|
|
23
|
+
"speed": "fair"
|
|
24
|
+
},
|
|
25
|
+
"pricing": {
|
|
26
|
+
"inputPer1kTokens": 0.01,
|
|
27
|
+
"outputPer1kTokens": 0.05,
|
|
28
|
+
"currency": "USD",
|
|
29
|
+
"lastUpdated": "2026-09-21"
|
|
30
|
+
},
|
|
31
|
+
"aliases": ["fable", "claude-fable"],
|
|
32
|
+
"tags": ["flagship", "user-elected", "reasoning", "long-context"],
|
|
33
|
+
"source": "builtin",
|
|
34
|
+
"lastVerified": "2026-09-21"
|
|
35
|
+
},
|
|
36
|
+
"claude-opus-5": {
|
|
37
|
+
"provider": "anthropic",
|
|
38
|
+
"displayName": "Claude Opus 5",
|
|
39
|
+
"releaseDate": "2026-07-24",
|
|
40
|
+
"status": "active",
|
|
41
|
+
"deprecated": false,
|
|
42
|
+
"deprecationDate": null,
|
|
43
|
+
"successorModel": null,
|
|
44
|
+
"capabilities": {
|
|
45
|
+
"contextWindow": 1000000,
|
|
46
|
+
"maxOutputTokens": 128000,
|
|
47
|
+
"vision": true,
|
|
48
|
+
"toolUse": true,
|
|
49
|
+
"streaming": true,
|
|
50
|
+
"reasoning": "excellent",
|
|
51
|
+
"coding": "excellent",
|
|
52
|
+
"speed": "fair"
|
|
53
|
+
},
|
|
54
|
+
"pricing": {
|
|
55
|
+
"inputPer1kTokens": 0.005,
|
|
56
|
+
"outputPer1kTokens": 0.025,
|
|
57
|
+
"currency": "USD",
|
|
58
|
+
"lastUpdated": "2026-09-21"
|
|
59
|
+
},
|
|
60
|
+
"aliases": ["opus", "opus-5", "claude-opus"],
|
|
61
|
+
"tags": ["premium", "reasoning", "long-context"],
|
|
62
|
+
"source": "builtin",
|
|
63
|
+
"lastVerified": "2026-09-21"
|
|
64
|
+
},
|
|
65
|
+
"claude-sonnet-5": {
|
|
66
|
+
"provider": "anthropic",
|
|
67
|
+
"displayName": "Claude Sonnet 5",
|
|
68
|
+
"releaseDate": "2026-06-29",
|
|
69
|
+
"status": "active",
|
|
70
|
+
"deprecated": false,
|
|
71
|
+
"deprecationDate": null,
|
|
72
|
+
"successorModel": null,
|
|
73
|
+
"capabilities": {
|
|
74
|
+
"contextWindow": 1000000,
|
|
75
|
+
"maxOutputTokens": 128000,
|
|
76
|
+
"vision": true,
|
|
77
|
+
"toolUse": true,
|
|
78
|
+
"streaming": true,
|
|
79
|
+
"reasoning": "excellent",
|
|
80
|
+
"coding": "excellent",
|
|
81
|
+
"speed": "good"
|
|
82
|
+
},
|
|
83
|
+
"pricing": {
|
|
84
|
+
"inputPer1kTokens": 0.002,
|
|
85
|
+
"outputPer1kTokens": 0.01,
|
|
86
|
+
"currency": "USD",
|
|
87
|
+
"lastUpdated": "2026-09-21"
|
|
88
|
+
},
|
|
89
|
+
"aliases": ["sonnet", "sonnet-5", "claude-sonnet"],
|
|
90
|
+
"tags": ["standard", "coding", "balanced"],
|
|
91
|
+
"source": "builtin",
|
|
92
|
+
"lastVerified": "2026-09-21"
|
|
93
|
+
},
|
|
94
|
+
"claude-haiku-4-5": {
|
|
95
|
+
"provider": "anthropic",
|
|
96
|
+
"displayName": "Claude Haiku 4.5",
|
|
97
|
+
"releaseDate": "2025-10-15",
|
|
98
|
+
"status": "active",
|
|
99
|
+
"deprecated": false,
|
|
100
|
+
"deprecationDate": null,
|
|
101
|
+
"successorModel": null,
|
|
102
|
+
"capabilities": {
|
|
103
|
+
"contextWindow": 200000,
|
|
104
|
+
"maxOutputTokens": 64000,
|
|
105
|
+
"vision": true,
|
|
106
|
+
"toolUse": true,
|
|
107
|
+
"streaming": true,
|
|
108
|
+
"reasoning": "good",
|
|
109
|
+
"coding": "good",
|
|
110
|
+
"speed": "excellent"
|
|
111
|
+
},
|
|
112
|
+
"pricing": {
|
|
113
|
+
"inputPer1kTokens": 0.001,
|
|
114
|
+
"outputPer1kTokens": 0.005,
|
|
115
|
+
"currency": "USD",
|
|
116
|
+
"lastUpdated": "2026-09-21"
|
|
117
|
+
},
|
|
118
|
+
"aliases": ["haiku", "haiku-4.5", "claude-haiku", "claude-haiku-4-5-20251001"],
|
|
119
|
+
"tags": ["economy", "fast"],
|
|
120
|
+
"source": "builtin",
|
|
121
|
+
"lastVerified": "2026-09-21"
|
|
122
|
+
},
|
|
123
|
+
"gpt-6-astra": {
|
|
124
|
+
"provider": "openai",
|
|
125
|
+
"displayName": "GPT-6 Astra",
|
|
126
|
+
"releaseDate": "2026-09-04",
|
|
127
|
+
"status": "active",
|
|
128
|
+
"deprecated": false,
|
|
129
|
+
"deprecationDate": null,
|
|
130
|
+
"successorModel": null,
|
|
131
|
+
"capabilities": {
|
|
132
|
+
"contextWindow": 1050000,
|
|
133
|
+
"maxOutputTokens": 128000,
|
|
134
|
+
"vision": true,
|
|
135
|
+
"toolUse": true,
|
|
136
|
+
"streaming": true,
|
|
137
|
+
"reasoning": "excellent",
|
|
138
|
+
"coding": "excellent",
|
|
139
|
+
"speed": "fair"
|
|
140
|
+
},
|
|
141
|
+
"pricing": {
|
|
142
|
+
"inputPer1kTokens": 0.01,
|
|
143
|
+
"outputPer1kTokens": 0.05,
|
|
144
|
+
"currency": "USD",
|
|
145
|
+
"lastUpdated": "2026-09-21"
|
|
146
|
+
},
|
|
147
|
+
"aliases": ["astra", "gpt6-astra"],
|
|
148
|
+
"tags": ["flagship", "user-elected", "reasoning", "codex"],
|
|
149
|
+
"source": "builtin",
|
|
150
|
+
"lastVerified": "2026-09-21"
|
|
151
|
+
},
|
|
152
|
+
"gpt-5.6-sol": {
|
|
153
|
+
"provider": "openai",
|
|
154
|
+
"displayName": "GPT-5.6 Sol",
|
|
155
|
+
"releaseDate": "2026-07-09",
|
|
11
156
|
"status": "active",
|
|
12
157
|
"deprecated": false,
|
|
13
158
|
"deprecationDate": null,
|
|
14
159
|
"successorModel": null,
|
|
160
|
+
"capabilities": {
|
|
161
|
+
"contextWindow": 1050000,
|
|
162
|
+
"maxOutputTokens": 128000,
|
|
163
|
+
"vision": true,
|
|
164
|
+
"toolUse": true,
|
|
165
|
+
"streaming": true,
|
|
166
|
+
"reasoning": "excellent",
|
|
167
|
+
"coding": "excellent",
|
|
168
|
+
"speed": "good"
|
|
169
|
+
},
|
|
170
|
+
"pricing": {
|
|
171
|
+
"inputPer1kTokens": 0.004,
|
|
172
|
+
"outputPer1kTokens": 0.02,
|
|
173
|
+
"currency": "USD",
|
|
174
|
+
"lastUpdated": "2026-09-21"
|
|
175
|
+
},
|
|
176
|
+
"aliases": ["sol", "gpt5.6-sol"],
|
|
177
|
+
"tags": ["premium", "reasoning", "coding", "codex"],
|
|
178
|
+
"source": "builtin",
|
|
179
|
+
"lastVerified": "2026-09-21"
|
|
180
|
+
},
|
|
181
|
+
"gpt-5.6-terra": {
|
|
182
|
+
"provider": "openai",
|
|
183
|
+
"displayName": "GPT-5.6 Terra",
|
|
184
|
+
"releaseDate": "2026-07-09",
|
|
185
|
+
"status": "active",
|
|
186
|
+
"deprecated": false,
|
|
187
|
+
"deprecationDate": null,
|
|
188
|
+
"successorModel": null,
|
|
189
|
+
"capabilities": {
|
|
190
|
+
"contextWindow": 1050000,
|
|
191
|
+
"maxOutputTokens": 128000,
|
|
192
|
+
"vision": true,
|
|
193
|
+
"toolUse": true,
|
|
194
|
+
"streaming": true,
|
|
195
|
+
"reasoning": "excellent",
|
|
196
|
+
"coding": "excellent",
|
|
197
|
+
"speed": "good"
|
|
198
|
+
},
|
|
199
|
+
"pricing": {
|
|
200
|
+
"inputPer1kTokens": 0.002,
|
|
201
|
+
"outputPer1kTokens": 0.012,
|
|
202
|
+
"currency": "USD",
|
|
203
|
+
"lastUpdated": "2026-09-21"
|
|
204
|
+
},
|
|
205
|
+
"aliases": ["terra", "gpt5.6-terra"],
|
|
206
|
+
"tags": ["standard", "coding", "codex"],
|
|
207
|
+
"source": "builtin",
|
|
208
|
+
"lastVerified": "2026-09-21"
|
|
209
|
+
},
|
|
210
|
+
"gpt-5.6-luna": {
|
|
211
|
+
"provider": "openai",
|
|
212
|
+
"displayName": "GPT-5.6 Luna",
|
|
213
|
+
"releaseDate": "2026-07-09",
|
|
214
|
+
"status": "active",
|
|
215
|
+
"deprecated": false,
|
|
216
|
+
"deprecationDate": null,
|
|
217
|
+
"successorModel": null,
|
|
218
|
+
"capabilities": {
|
|
219
|
+
"contextWindow": 1050000,
|
|
220
|
+
"maxOutputTokens": 128000,
|
|
221
|
+
"vision": true,
|
|
222
|
+
"toolUse": true,
|
|
223
|
+
"streaming": true,
|
|
224
|
+
"reasoning": "good",
|
|
225
|
+
"coding": "good",
|
|
226
|
+
"speed": "excellent"
|
|
227
|
+
},
|
|
228
|
+
"pricing": {
|
|
229
|
+
"inputPer1kTokens": 0.0002,
|
|
230
|
+
"outputPer1kTokens": 0.0012,
|
|
231
|
+
"currency": "USD",
|
|
232
|
+
"lastUpdated": "2026-09-21"
|
|
233
|
+
},
|
|
234
|
+
"aliases": ["luna", "gpt5.6-luna"],
|
|
235
|
+
"tags": ["economy", "fast", "codex"],
|
|
236
|
+
"source": "builtin",
|
|
237
|
+
"lastVerified": "2026-09-21"
|
|
238
|
+
},
|
|
239
|
+
"claude-opus-4-6": {
|
|
240
|
+
"provider": "anthropic",
|
|
241
|
+
"displayName": "Claude Opus 4.6",
|
|
242
|
+
"releaseDate": "2025-11-01",
|
|
243
|
+
"status": "deprecated",
|
|
244
|
+
"deprecated": true,
|
|
245
|
+
"deprecationDate": null,
|
|
246
|
+
"successorModel": "claude-opus-5",
|
|
15
247
|
"capabilities": {
|
|
16
248
|
"contextWindow": 200000,
|
|
17
249
|
"maxOutputTokens": 8192,
|
|
@@ -28,19 +260,19 @@
|
|
|
28
260
|
"currency": "USD",
|
|
29
261
|
"lastUpdated": "2025-12-01"
|
|
30
262
|
},
|
|
31
|
-
"aliases": ["opus
|
|
32
|
-
"tags": ["
|
|
263
|
+
"aliases": ["opus-4.6"],
|
|
264
|
+
"tags": ["reasoning", "long-context"],
|
|
33
265
|
"source": "builtin",
|
|
34
|
-
"lastVerified": "
|
|
266
|
+
"lastVerified": "2026-09-21"
|
|
35
267
|
},
|
|
36
268
|
"claude-sonnet-4-6": {
|
|
37
269
|
"provider": "anthropic",
|
|
38
270
|
"displayName": "Claude Sonnet 4.6",
|
|
39
271
|
"releaseDate": "2025-09-29",
|
|
40
|
-
"status": "
|
|
41
|
-
"deprecated":
|
|
272
|
+
"status": "deprecated",
|
|
273
|
+
"deprecated": true,
|
|
42
274
|
"deprecationDate": null,
|
|
43
|
-
"successorModel":
|
|
275
|
+
"successorModel": "claude-sonnet-5",
|
|
44
276
|
"capabilities": {
|
|
45
277
|
"contextWindow": 200000,
|
|
46
278
|
"maxOutputTokens": 8192,
|
|
@@ -57,19 +289,19 @@
|
|
|
57
289
|
"currency": "USD",
|
|
58
290
|
"lastUpdated": "2025-12-01"
|
|
59
291
|
},
|
|
60
|
-
"aliases": ["sonnet
|
|
292
|
+
"aliases": ["sonnet-4.6"],
|
|
61
293
|
"tags": ["balanced", "coding", "long-context"],
|
|
62
294
|
"source": "builtin",
|
|
63
|
-
"lastVerified": "
|
|
295
|
+
"lastVerified": "2026-09-21"
|
|
64
296
|
},
|
|
65
297
|
"claude-sonnet-4-20250514": {
|
|
66
298
|
"provider": "anthropic",
|
|
67
299
|
"displayName": "Claude Sonnet 4",
|
|
68
300
|
"releaseDate": "2025-05-14",
|
|
69
|
-
"status": "
|
|
70
|
-
"deprecated":
|
|
301
|
+
"status": "deprecated",
|
|
302
|
+
"deprecated": true,
|
|
71
303
|
"deprecationDate": null,
|
|
72
|
-
"successorModel":
|
|
304
|
+
"successorModel": "claude-sonnet-5",
|
|
73
305
|
"capabilities": {
|
|
74
306
|
"contextWindow": 200000,
|
|
75
307
|
"maxOutputTokens": 8192,
|
|
@@ -89,16 +321,16 @@
|
|
|
89
321
|
"aliases": ["sonnet-4"],
|
|
90
322
|
"tags": ["coding", "long-context"],
|
|
91
323
|
"source": "builtin",
|
|
92
|
-
"lastVerified": "
|
|
324
|
+
"lastVerified": "2026-09-21"
|
|
93
325
|
},
|
|
94
326
|
"claude-haiku-3-5": {
|
|
95
327
|
"provider": "anthropic",
|
|
96
328
|
"displayName": "Claude Haiku 3.5",
|
|
97
329
|
"releaseDate": "2024-11-01",
|
|
98
|
-
"status": "
|
|
99
|
-
"deprecated":
|
|
330
|
+
"status": "deprecated",
|
|
331
|
+
"deprecated": true,
|
|
100
332
|
"deprecationDate": null,
|
|
101
|
-
"successorModel":
|
|
333
|
+
"successorModel": "claude-haiku-4-5",
|
|
102
334
|
"capabilities": {
|
|
103
335
|
"contextWindow": 200000,
|
|
104
336
|
"maxOutputTokens": 8192,
|
|
@@ -115,10 +347,10 @@
|
|
|
115
347
|
"currency": "USD",
|
|
116
348
|
"lastUpdated": "2025-12-01"
|
|
117
349
|
},
|
|
118
|
-
"aliases": ["haiku
|
|
350
|
+
"aliases": ["haiku-3.5"],
|
|
119
351
|
"tags": ["fast", "efficient", "long-context"],
|
|
120
352
|
"source": "builtin",
|
|
121
|
-
"lastVerified": "
|
|
353
|
+
"lastVerified": "2026-09-21"
|
|
122
354
|
},
|
|
123
355
|
"claude-3-opus-20240229": {
|
|
124
356
|
"provider": "anthropic",
|
|
@@ -211,10 +443,10 @@
|
|
|
211
443
|
"provider": "openai",
|
|
212
444
|
"displayName": "GPT-5.3-Codex",
|
|
213
445
|
"releaseDate": "2026-02-05",
|
|
214
|
-
"status": "
|
|
215
|
-
"deprecated":
|
|
446
|
+
"status": "deprecated",
|
|
447
|
+
"deprecated": true,
|
|
216
448
|
"deprecationDate": null,
|
|
217
|
-
"successorModel":
|
|
449
|
+
"successorModel": "gpt-5.6-terra",
|
|
218
450
|
"capabilities": {
|
|
219
451
|
"contextWindow": 192000,
|
|
220
452
|
"maxOutputTokens": 16384,
|
|
@@ -232,18 +464,18 @@
|
|
|
232
464
|
"lastUpdated": "2026-02-06"
|
|
233
465
|
},
|
|
234
466
|
"aliases": ["gpt-5.3-codex", "gpt5.3-codex"],
|
|
235
|
-
"tags": ["
|
|
467
|
+
"tags": ["coding", "reasoning", "codex"],
|
|
236
468
|
"source": "builtin",
|
|
237
|
-
"lastVerified": "2026-
|
|
469
|
+
"lastVerified": "2026-09-21"
|
|
238
470
|
},
|
|
239
471
|
"gpt-5.4": {
|
|
240
472
|
"provider": "openai",
|
|
241
473
|
"displayName": "GPT-5.4",
|
|
242
474
|
"releaseDate": "2026-03-01",
|
|
243
|
-
"status": "
|
|
244
|
-
"deprecated":
|
|
475
|
+
"status": "deprecated",
|
|
476
|
+
"deprecated": true,
|
|
245
477
|
"deprecationDate": null,
|
|
246
|
-
"successorModel":
|
|
478
|
+
"successorModel": "gpt-5.6-terra",
|
|
247
479
|
"capabilities": {
|
|
248
480
|
"contextWindow": 256000,
|
|
249
481
|
"maxOutputTokens": 16384,
|
|
@@ -261,18 +493,18 @@
|
|
|
261
493
|
"lastUpdated": "2026-03-27"
|
|
262
494
|
},
|
|
263
495
|
"aliases": ["gpt5.4"],
|
|
264
|
-
"tags": ["
|
|
496
|
+
"tags": ["coding", "reasoning", "codex"],
|
|
265
497
|
"source": "builtin",
|
|
266
|
-
"lastVerified": "2026-
|
|
498
|
+
"lastVerified": "2026-09-21"
|
|
267
499
|
},
|
|
268
500
|
"gpt-5.1-codex-mini": {
|
|
269
501
|
"provider": "openai",
|
|
270
502
|
"displayName": "GPT-5.1-Codex-Mini",
|
|
271
503
|
"releaseDate": "2026-02-01",
|
|
272
|
-
"status": "
|
|
273
|
-
"deprecated":
|
|
504
|
+
"status": "deprecated",
|
|
505
|
+
"deprecated": true,
|
|
274
506
|
"deprecationDate": null,
|
|
275
|
-
"successorModel":
|
|
507
|
+
"successorModel": "gpt-5.6-luna",
|
|
276
508
|
"capabilities": {
|
|
277
509
|
"contextWindow": 192000,
|
|
278
510
|
"maxOutputTokens": 16384,
|
|
@@ -292,7 +524,7 @@
|
|
|
292
524
|
"aliases": ["gpt5.1-codex-mini"],
|
|
293
525
|
"tags": ["budget", "coding", "efficient", "codex", "free-tier"],
|
|
294
526
|
"source": "builtin",
|
|
295
|
-
"lastVerified": "2026-
|
|
527
|
+
"lastVerified": "2026-09-21"
|
|
296
528
|
},
|
|
297
529
|
"codex-mini-latest": {
|
|
298
530
|
"provider": "openai",
|
|
@@ -301,7 +533,7 @@
|
|
|
301
533
|
"status": "deprecated",
|
|
302
534
|
"deprecated": true,
|
|
303
535
|
"deprecationDate": "2026-03-27",
|
|
304
|
-
"successorModel": "gpt-5.
|
|
536
|
+
"successorModel": "gpt-5.6-luna",
|
|
305
537
|
"capabilities": {
|
|
306
538
|
"contextWindow": 192000,
|
|
307
539
|
"maxOutputTokens": 16384,
|
|
@@ -321,7 +553,7 @@
|
|
|
321
553
|
"aliases": ["codex-mini"],
|
|
322
554
|
"tags": ["coding", "efficient", "codex", "deprecated"],
|
|
323
555
|
"source": "builtin",
|
|
324
|
-
"lastVerified": "2026-
|
|
556
|
+
"lastVerified": "2026-09-21"
|
|
325
557
|
},
|
|
326
558
|
"gpt-5-codex-mini": {
|
|
327
559
|
"provider": "openai",
|
|
@@ -330,7 +562,7 @@
|
|
|
330
562
|
"status": "deprecated",
|
|
331
563
|
"deprecated": true,
|
|
332
564
|
"deprecationDate": "2026-03-27",
|
|
333
|
-
"successorModel": "gpt-5.
|
|
565
|
+
"successorModel": "gpt-5.6-luna",
|
|
334
566
|
"capabilities": {
|
|
335
567
|
"contextWindow": 192000,
|
|
336
568
|
"maxOutputTokens": 16384,
|
|
@@ -350,7 +582,7 @@
|
|
|
350
582
|
"aliases": ["gpt5-codex-mini"],
|
|
351
583
|
"tags": ["budget", "coding", "efficient", "codex", "deprecated"],
|
|
352
584
|
"source": "builtin",
|
|
353
|
-
"lastVerified": "2026-
|
|
585
|
+
"lastVerified": "2026-09-21"
|
|
354
586
|
},
|
|
355
587
|
"gpt-4-turbo": {
|
|
356
588
|
"provider": "openai",
|
|
@@ -629,8 +861,8 @@
|
|
|
629
861
|
},
|
|
630
862
|
"metadata": {
|
|
631
863
|
"version": "1.2.0",
|
|
632
|
-
"lastRefresh": "2026-
|
|
633
|
-
"modelCount":
|
|
864
|
+
"lastRefresh": "2026-09-21T00:00:00Z",
|
|
865
|
+
"modelCount": 28,
|
|
634
866
|
"providerCount": 5
|
|
635
867
|
}
|
|
636
868
|
}
|
package/dist/src/catalog/cli.js
CHANGED