@open-agent-toolkit/cli 0.2.65 → 0.2.67
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/configuration.md +33 -2
- package/assets/docs/cli-utilities/index.md +3 -0
- package/assets/docs/cli-utilities/project-log.md +63 -4
- package/assets/docs/cli-utilities/remote-project-management.md +191 -0
- package/assets/docs/contributing/code.md +8 -4
- package/assets/docs/contributing/skills.md +29 -17
- package/assets/docs/docs-tooling/commands.md +3 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +2 -18
- package/assets/docs/reference/cli-reference.md +12 -1
- package/assets/docs/reference/file-locations.md +22 -0
- package/assets/docs/reference/oat-directory-structure.md +30 -17
- package/assets/docs/reference/troubleshooting.md +44 -0
- package/assets/docs/workflows/projects/lifecycle.md +17 -0
- package/assets/docs/workflows/projects/picking-up-projects.md +18 -0
- package/assets/docs/workflows/skills/index.md +33 -0
- package/assets/docs/workflows/skills/repo-improve.md +7 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/create-agnostic-skill/SKILL.md +19 -37
- package/assets/skills/create-agnostic-skill/references/docs/skills-guide.md +58 -15
- package/assets/skills/create-agnostic-skill/references/skill-template.md +17 -15
- package/assets/skills/oat-agent-instructions-apply/SKILL.md +1 -1
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/glob-scoped-rule.md +1 -4
- package/assets/skills/oat-doctor/SKILL.md +3 -6
- package/assets/skills/oat-pjm-remote/SKILL.md +101 -0
- package/assets/skills/oat-pjm-remote/references/external-action-protocol.md +43 -0
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
- package/assets/skills/oat-project-complete/SKILL.md +158 -30
- package/assets/skills/oat-project-complete/scripts/finalize-synced-archive.mjs +26 -7
- package/assets/skills/oat-project-complete/scripts/validate-durable-archive-receipt.mjs +183 -0
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-retro/SKILL.md +1 -1
- package/assets/skills/oat-project-retro/references/apply-procedure.md +11 -0
- package/assets/skills/oat-project-review-provide/SKILL.md +4 -4
- package/assets/skills/oat-project-summary/SKILL.md +24 -2
- package/assets/skills/oat-repo-improve/SKILL.md +9 -2
- package/assets/skills/oat-repo-improve/references/plan-template.md +4 -6
- package/assets/skills/oat-repo-knowledge-index/SKILL.md +11 -9
- package/assets/skills/oat-wave-execute/SKILL.md +20 -6
- package/assets/skills/oat-wave-program/SKILL.md +9 -4
- package/dist/commands/backlog/new.d.ts +1 -0
- package/dist/commands/backlog/new.d.ts.map +1 -1
- package/dist/commands/backlog/new.js +3 -1
- package/dist/commands/config/index.d.ts +3 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +362 -36
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/index.js +68 -12
- package/dist/commands/docs/init/index.d.ts +11 -0
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +19 -1
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +10 -2
- package/dist/commands/instructions/instructions.utils.d.ts.map +1 -1
- package/dist/commands/instructions/instructions.utils.js +42 -9
- package/dist/commands/internal/validate-skill-version-bumps.d.ts.map +1 -1
- package/dist/commands/internal/validate-skill-version-bumps.js +5 -5
- package/dist/commands/pjm/doctor.d.ts +2 -0
- package/dist/commands/pjm/doctor.d.ts.map +1 -1
- package/dist/commands/pjm/doctor.js +71 -1
- package/dist/commands/pjm/index.d.ts +2 -0
- package/dist/commands/pjm/index.d.ts.map +1 -1
- package/dist/commands/pjm/index.js +3 -0
- package/dist/commands/pjm/remote/__integration__/lifecycle-harness.d.ts +60 -0
- package/dist/commands/pjm/remote/__integration__/lifecycle-harness.d.ts.map +1 -0
- package/dist/commands/pjm/remote/__integration__/lifecycle-harness.js +151 -0
- package/dist/commands/pjm/remote/association.d.ts +27 -0
- package/dist/commands/pjm/remote/association.d.ts.map +1 -0
- package/dist/commands/pjm/remote/association.js +68 -0
- package/dist/commands/pjm/remote/authority.d.ts +210 -0
- package/dist/commands/pjm/remote/authority.d.ts.map +1 -0
- package/dist/commands/pjm/remote/authority.js +341 -0
- package/dist/commands/pjm/remote/batch.d.ts +15 -0
- package/dist/commands/pjm/remote/batch.d.ts.map +1 -0
- package/dist/commands/pjm/remote/batch.js +126 -0
- package/dist/commands/pjm/remote/closeout.d.ts +69 -0
- package/dist/commands/pjm/remote/closeout.d.ts.map +1 -0
- package/dist/commands/pjm/remote/closeout.js +208 -0
- package/dist/commands/pjm/remote/create-binding.d.ts +62 -0
- package/dist/commands/pjm/remote/create-binding.d.ts.map +1 -0
- package/dist/commands/pjm/remote/create-binding.js +126 -0
- package/dist/commands/pjm/remote/credential-safety.d.ts +7 -0
- package/dist/commands/pjm/remote/credential-safety.d.ts.map +1 -0
- package/dist/commands/pjm/remote/credential-safety.js +21 -0
- package/dist/commands/pjm/remote/discussion.d.ts +49 -0
- package/dist/commands/pjm/remote/discussion.d.ts.map +1 -0
- package/dist/commands/pjm/remote/discussion.js +124 -0
- package/dist/commands/pjm/remote/doctor.d.ts +22 -0
- package/dist/commands/pjm/remote/doctor.d.ts.map +1 -0
- package/dist/commands/pjm/remote/doctor.js +380 -0
- package/dist/commands/pjm/remote/external-action.d.ts +208 -0
- package/dist/commands/pjm/remote/external-action.d.ts.map +1 -0
- package/dist/commands/pjm/remote/external-action.js +367 -0
- package/dist/commands/pjm/remote/host-execution.d.ts +28 -0
- package/dist/commands/pjm/remote/host-execution.d.ts.map +1 -0
- package/dist/commands/pjm/remote/host-execution.js +63 -0
- package/dist/commands/pjm/remote/index.d.ts +41 -0
- package/dist/commands/pjm/remote/index.d.ts.map +1 -0
- package/dist/commands/pjm/remote/index.js +280 -0
- package/dist/commands/pjm/remote/jira-adf.d.ts +35 -0
- package/dist/commands/pjm/remote/jira-adf.d.ts.map +1 -0
- package/dist/commands/pjm/remote/jira-adf.js +169 -0
- package/dist/commands/pjm/remote/lifecycle.d.ts +163 -0
- package/dist/commands/pjm/remote/lifecycle.d.ts.map +1 -0
- package/dist/commands/pjm/remote/lifecycle.js +224 -0
- package/dist/commands/pjm/remote/local-projection.d.ts +30 -0
- package/dist/commands/pjm/remote/local-projection.d.ts.map +1 -0
- package/dist/commands/pjm/remote/local-projection.js +95 -0
- package/dist/commands/pjm/remote/managed-markdown.d.ts +30 -0
- package/dist/commands/pjm/remote/managed-markdown.d.ts.map +1 -0
- package/dist/commands/pjm/remote/managed-markdown.js +128 -0
- package/dist/commands/pjm/remote/migrate.d.ts +14 -0
- package/dist/commands/pjm/remote/migrate.d.ts.map +1 -0
- package/dist/commands/pjm/remote/migrate.js +32 -0
- package/dist/commands/pjm/remote/operation-state.d.ts +15 -0
- package/dist/commands/pjm/remote/operation-state.d.ts.map +1 -0
- package/dist/commands/pjm/remote/operation-state.js +143 -0
- package/dist/commands/pjm/remote/outbound-projection-safety.d.ts +25 -0
- package/dist/commands/pjm/remote/outbound-projection-safety.d.ts.map +1 -0
- package/dist/commands/pjm/remote/outbound-projection-safety.js +99 -0
- package/dist/commands/pjm/remote/output.d.ts +60 -0
- package/dist/commands/pjm/remote/output.d.ts.map +1 -0
- package/dist/commands/pjm/remote/output.js +48 -0
- package/dist/commands/pjm/remote/preview.d.ts +88 -0
- package/dist/commands/pjm/remote/preview.d.ts.map +1 -0
- package/dist/commands/pjm/remote/preview.js +154 -0
- package/dist/commands/pjm/remote/provider-conformance.d.ts +13 -0
- package/dist/commands/pjm/remote/provider-conformance.d.ts.map +1 -0
- package/dist/commands/pjm/remote/provider-conformance.js +37 -0
- package/dist/commands/pjm/remote/provider.d.ts +57 -0
- package/dist/commands/pjm/remote/provider.d.ts.map +1 -0
- package/dist/commands/pjm/remote/provider.js +28 -0
- package/dist/commands/pjm/remote/providers/github-publication-safety.d.ts +46 -0
- package/dist/commands/pjm/remote/providers/github-publication-safety.d.ts.map +1 -0
- package/dist/commands/pjm/remote/providers/github-publication-safety.js +126 -0
- package/dist/commands/pjm/remote/providers/github.d.ts +207 -0
- package/dist/commands/pjm/remote/providers/github.d.ts.map +1 -0
- package/dist/commands/pjm/remote/providers/github.js +1456 -0
- package/dist/commands/pjm/remote/providers/jira.d.ts +245 -0
- package/dist/commands/pjm/remote/providers/jira.d.ts.map +1 -0
- package/dist/commands/pjm/remote/providers/jira.js +1650 -0
- package/dist/commands/pjm/remote/providers/linear.d.ts +182 -0
- package/dist/commands/pjm/remote/providers/linear.d.ts.map +1 -0
- package/dist/commands/pjm/remote/providers/linear.js +1289 -0
- package/dist/commands/pjm/remote/purpose-policy.d.ts +29 -0
- package/dist/commands/pjm/remote/purpose-policy.d.ts.map +1 -0
- package/dist/commands/pjm/remote/purpose-policy.js +118 -0
- package/dist/commands/pjm/remote/reconcile.d.ts +42 -0
- package/dist/commands/pjm/remote/reconcile.d.ts.map +1 -0
- package/dist/commands/pjm/remote/reconcile.js +101 -0
- package/dist/commands/pjm/remote/resolution.d.ts +122 -0
- package/dist/commands/pjm/remote/resolution.d.ts.map +1 -0
- package/dist/commands/pjm/remote/resolution.js +243 -0
- package/dist/commands/pjm/remote/schema.d.ts +9309 -0
- package/dist/commands/pjm/remote/schema.d.ts.map +1 -0
- package/dist/commands/pjm/remote/schema.js +1503 -0
- package/dist/commands/pjm/remote/service.d.ts +20 -0
- package/dist/commands/pjm/remote/service.d.ts.map +1 -0
- package/dist/commands/pjm/remote/service.js +5121 -0
- package/dist/commands/pjm/remote/shared-storage.d.ts +36 -0
- package/dist/commands/pjm/remote/shared-storage.d.ts.map +1 -0
- package/dist/commands/pjm/remote/shared-storage.js +110 -0
- package/dist/commands/pjm/remote/snapshot.d.ts +32 -0
- package/dist/commands/pjm/remote/snapshot.d.ts.map +1 -0
- package/dist/commands/pjm/remote/snapshot.js +140 -0
- package/dist/commands/pjm/remote/storage-locator.d.ts +29 -0
- package/dist/commands/pjm/remote/storage-locator.d.ts.map +1 -0
- package/dist/commands/pjm/remote/storage-locator.js +62 -0
- package/dist/commands/pjm/remote/store.d.ts +85 -0
- package/dist/commands/pjm/remote/store.d.ts.map +1 -0
- package/dist/commands/pjm/remote/store.js +553 -0
- package/dist/commands/pjm/remote/verification.d.ts +40 -0
- package/dist/commands/pjm/remote/verification.d.ts.map +1 -0
- package/dist/commands/pjm/remote/verification.js +100 -0
- package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch-ceiling/index.js +32 -18
- package/dist/commands/project/log/append.d.ts +48 -0
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +207 -30
- package/dist/commands/project/log/check.d.ts +87 -1
- package/dist/commands/project/log/check.d.ts.map +1 -1
- package/dist/commands/project/log/check.js +139 -5
- package/dist/commands/project/log/grammar.d.ts +165 -0
- package/dist/commands/project/log/grammar.d.ts.map +1 -1
- package/dist/commands/project/log/grammar.js +219 -1
- package/dist/commands/project/log/rollup.d.ts +16 -1
- package/dist/commands/project/log/rollup.d.ts.map +1 -1
- package/dist/commands/project/log/rollup.js +22 -2
- package/dist/commands/project/log/synthesize.d.ts +16 -0
- package/dist/commands/project/log/synthesize.d.ts.map +1 -1
- package/dist/commands/project/log/synthesize.js +85 -9
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +24 -2
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +6 -4
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +1 -0
- package/dist/config/dispatch-matrix.d.ts.map +1 -1
- package/dist/config/dispatch-matrix.js +13 -5
- package/dist/config/oat-config.d.ts +41 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +247 -9
- package/dist/config/own-keys.d.ts +22 -0
- package/dist/config/own-keys.d.ts.map +1 -0
- package/dist/config/own-keys.js +32 -0
- package/dist/config/resolve.d.ts +11 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +35 -11
- package/dist/config/sync-config.d.ts.map +1 -1
- package/dist/config/sync-config.js +16 -0
- package/dist/drift/detector.d.ts.map +1 -1
- package/dist/drift/detector.js +52 -1
- package/dist/drift/skill-view-diagnostic.d.ts.map +1 -1
- package/dist/drift/skill-view-diagnostic.js +2 -23
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +22 -72
- package/dist/engine/managed-copy-hash.d.ts +69 -0
- package/dist/engine/managed-copy-hash.d.ts.map +1 -0
- package/dist/engine/managed-copy-hash.js +175 -0
- package/dist/fs/assets.d.ts +11 -0
- package/dist/fs/assets.d.ts.map +1 -1
- package/dist/fs/assets.js +1 -1
- package/dist/manifest/hash.d.ts +110 -0
- package/dist/manifest/hash.d.ts.map +1 -1
- package/dist/manifest/hash.js +111 -13
- package/dist/providers/ceiling/registry.d.ts.map +1 -1
- package/dist/providers/ceiling/registry.js +6 -1
- package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
- package/dist/providers/identity/dispatch-report.js +4 -1
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +21 -0
- package/dist/validation/skills.d.ts.map +1 -1
- package/dist/validation/skills.js +305 -40
- package/package.json +2 -2
|
@@ -139,11 +139,16 @@ function normalizeMatrixCell(provider, value, path, issues, compatibilityMode) {
|
|
|
139
139
|
return undefined;
|
|
140
140
|
}
|
|
141
141
|
export function normalizeDispatchMatrix(value, options) {
|
|
142
|
-
|
|
142
|
+
// Provider names come from user config, so the map is built with
|
|
143
|
+
// `Object.fromEntries` rather than `providers[provider] = ...`. Assignment
|
|
144
|
+
// reaches the legacy prototype setter for a key named `__proto__`: the
|
|
145
|
+
// record branch would install its tier map as this map's prototype, and the
|
|
146
|
+
// scalar branch would silently discard the entry. Both are data loss.
|
|
147
|
+
const providerEntries = [];
|
|
143
148
|
const issues = [];
|
|
144
149
|
if (!isRecord(value)) {
|
|
145
150
|
return {
|
|
146
|
-
providers,
|
|
151
|
+
providers: Object.fromEntries(providerEntries),
|
|
147
152
|
issues: [
|
|
148
153
|
{
|
|
149
154
|
path: options.pathPrefix,
|
|
@@ -157,7 +162,7 @@ export function normalizeDispatchMatrix(value, options) {
|
|
|
157
162
|
const providerPath = `${options.pathPrefix}.${provider}`;
|
|
158
163
|
const scalar = normalizeProviderScalar(provider, rawProviderValue);
|
|
159
164
|
if (scalar !== undefined) {
|
|
160
|
-
|
|
165
|
+
providerEntries.push([provider, scalar]);
|
|
161
166
|
continue;
|
|
162
167
|
}
|
|
163
168
|
if (!isRecord(rawProviderValue)) {
|
|
@@ -177,11 +182,14 @@ export function normalizeDispatchMatrix(value, options) {
|
|
|
177
182
|
}
|
|
178
183
|
const normalized = normalizeMatrixCell(provider, rawCell, tierPath, issues, options.compatibilityMode);
|
|
179
184
|
if (normalized !== undefined) {
|
|
185
|
+
// Plain assignment is safe here: `tier` was just validated against
|
|
186
|
+
// VALID_DISPATCH_MATRIX_TIERS above, so it can never be `__proto__`.
|
|
187
|
+
// Do not "fix" this line to match the provider map below.
|
|
180
188
|
tiers[tier] = normalized;
|
|
181
189
|
}
|
|
182
190
|
}
|
|
183
191
|
if (Object.keys(tiers).length > 0) {
|
|
184
|
-
|
|
192
|
+
providerEntries.push([provider, tiers]);
|
|
185
193
|
}
|
|
186
194
|
else if (Object.keys(rawProviderValue).length === 0) {
|
|
187
195
|
issues.push({
|
|
@@ -191,7 +199,7 @@ export function normalizeDispatchMatrix(value, options) {
|
|
|
191
199
|
});
|
|
192
200
|
}
|
|
193
201
|
}
|
|
194
|
-
return { providers, issues };
|
|
202
|
+
return { providers: Object.fromEntries(providerEntries), issues };
|
|
195
203
|
}
|
|
196
204
|
export function isCodexMaterializedRouteTarget(provider, target) {
|
|
197
205
|
return (target.harness ?? provider) === 'codex';
|
|
@@ -171,9 +171,35 @@ export type OatToolsRequiredByConfig = Partial<Record<OatToolPackName, OatToolPa
|
|
|
171
171
|
export type OatToolsConfig = Partial<Record<OatToolPackName, boolean>> & {
|
|
172
172
|
requiredBy?: OatToolsRequiredByConfig;
|
|
173
173
|
};
|
|
174
|
+
export type OatPjmRemoteProvider = 'github' | 'linear' | 'jira';
|
|
175
|
+
export type OatPjmRemoteDescriptionMode = 'replace' | 'managed-section' | 'none';
|
|
176
|
+
export type OatPjmRemoteMutationAuthority = 'read-only' | 'user-approved' | 'user-authorized' | 'autonomous';
|
|
177
|
+
export type OatPjmRemoteOperationClass = 'create' | 'update-fields' | 'transition' | 'annotate' | 'delete' | 'relink' | 'detach' | 'recreate';
|
|
178
|
+
export interface OatPjmRemoteAuthorityPolicy {
|
|
179
|
+
default?: OatPjmRemoteMutationAuthority;
|
|
180
|
+
operations?: Partial<Record<OatPjmRemoteOperationClass, OatPjmRemoteMutationAuthority>>;
|
|
181
|
+
}
|
|
182
|
+
export interface OatPjmRemoteProviderPolicy {
|
|
183
|
+
description?: OatPjmRemoteDescriptionMode;
|
|
184
|
+
authority?: OatPjmRemoteAuthorityPolicy;
|
|
185
|
+
}
|
|
186
|
+
export interface OatPjmRemoteSharedConfig {
|
|
187
|
+
schemaVersion: 1;
|
|
188
|
+
storage?: {
|
|
189
|
+
state: 'local' | 'shared';
|
|
190
|
+
};
|
|
191
|
+
policy: {
|
|
192
|
+
description: OatPjmRemoteDescriptionMode;
|
|
193
|
+
authority: OatPjmRemoteAuthorityPolicy & {
|
|
194
|
+
default: OatPjmRemoteMutationAuthority;
|
|
195
|
+
};
|
|
196
|
+
providers?: Partial<Record<OatPjmRemoteProvider, OatPjmRemoteProviderPolicy>>;
|
|
197
|
+
};
|
|
198
|
+
}
|
|
174
199
|
export interface OatPjmConfig {
|
|
175
200
|
initialized?: boolean;
|
|
176
201
|
schemaVersion?: number;
|
|
202
|
+
remote?: OatPjmRemoteSharedConfig;
|
|
177
203
|
}
|
|
178
204
|
export interface OatConfig {
|
|
179
205
|
version: number;
|
|
@@ -214,6 +240,21 @@ export interface ActiveProjectResolution {
|
|
|
214
240
|
}
|
|
215
241
|
export declare function normalizeProjectPath(repoRoot: string, pathValue: string | null | undefined): string | null;
|
|
216
242
|
export declare function resolveLocalPaths(config: OatConfig): string[];
|
|
243
|
+
export interface OatConfigRead {
|
|
244
|
+
config: OatConfig;
|
|
245
|
+
warnings: string[];
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Read the shared config and collect the diagnostics the normalizer would
|
|
249
|
+
* otherwise drop on the floor.
|
|
250
|
+
*
|
|
251
|
+
* Behavior is identical to `readOatConfig` in every respect that a caller can
|
|
252
|
+
* observe apart from the extra `warnings`: same path, same parse, same
|
|
253
|
+
* missing-file default, same rethrow for anything else. `readOatConfig` is a
|
|
254
|
+
* wrapper over this function rather than a second copy of the same eight lines,
|
|
255
|
+
* so the two cannot drift.
|
|
256
|
+
*/
|
|
257
|
+
export declare function readOatConfigWithWarnings(repoRoot: string): Promise<OatConfigRead>;
|
|
217
258
|
export declare function readOatConfig(repoRoot: string): Promise<OatConfig>;
|
|
218
259
|
export declare function readOatConfigForDefaultScopeRepair(repoRoot: string): Promise<OatConfig>;
|
|
219
260
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -242,17 +242,23 @@ function normalizeRecordMap(value, normalizeValue) {
|
|
|
242
242
|
if (!isRecord(value)) {
|
|
243
243
|
return undefined;
|
|
244
244
|
}
|
|
245
|
-
|
|
245
|
+
// Built with `Object.fromEntries` rather than `next[key] = ...`: since
|
|
246
|
+
// `config/json.ts` materializes a key named `__proto__` as an own data
|
|
247
|
+
// property, assignment would reach the legacy prototype setter, drop the
|
|
248
|
+
// entry as data and install its value as this map's prototype. Same hazard
|
|
249
|
+
// and same remedy as the `projects` subtree at the `preserved` build below.
|
|
250
|
+
const entries = [];
|
|
246
251
|
for (const [key, rawEntry] of Object.entries(value)) {
|
|
247
252
|
if (!key.trim()) {
|
|
248
253
|
continue;
|
|
249
254
|
}
|
|
250
255
|
const normalized = normalizeValue(rawEntry);
|
|
256
|
+
// `null` is a real entry (a tombstone); only `undefined` drops.
|
|
251
257
|
if (normalized !== undefined) {
|
|
252
|
-
|
|
258
|
+
entries.push([key, normalized]);
|
|
253
259
|
}
|
|
254
260
|
}
|
|
255
|
-
return
|
|
261
|
+
return entries.length > 0 ? Object.fromEntries(entries) : undefined;
|
|
256
262
|
}
|
|
257
263
|
function normalizeExplainersConfig(parsed, scope) {
|
|
258
264
|
if (!isRecord(parsed)) {
|
|
@@ -498,6 +504,28 @@ function normalizeWorkflowConfig(parsed) {
|
|
|
498
504
|
}
|
|
499
505
|
return Object.keys(next).length > 0 ? next : undefined;
|
|
500
506
|
}
|
|
507
|
+
const PJM_REMOTE_PROVIDERS = ['github', 'linear', 'jira'];
|
|
508
|
+
const PJM_REMOTE_DESCRIPTION_MODES = [
|
|
509
|
+
'replace',
|
|
510
|
+
'managed-section',
|
|
511
|
+
'none',
|
|
512
|
+
];
|
|
513
|
+
const PJM_REMOTE_AUTHORITIES = [
|
|
514
|
+
'read-only',
|
|
515
|
+
'user-approved',
|
|
516
|
+
'user-authorized',
|
|
517
|
+
'autonomous',
|
|
518
|
+
];
|
|
519
|
+
const PJM_REMOTE_OPERATION_CLASSES = [
|
|
520
|
+
'create',
|
|
521
|
+
'update-fields',
|
|
522
|
+
'transition',
|
|
523
|
+
'annotate',
|
|
524
|
+
'delete',
|
|
525
|
+
'relink',
|
|
526
|
+
'detach',
|
|
527
|
+
'recreate',
|
|
528
|
+
];
|
|
501
529
|
const VALID_TOOL_PACKS = [
|
|
502
530
|
'core',
|
|
503
531
|
'ideas',
|
|
@@ -539,7 +567,7 @@ function normalizeToolsConfig(value) {
|
|
|
539
567
|
}
|
|
540
568
|
return Object.keys(tools).length > 0 ? tools : undefined;
|
|
541
569
|
}
|
|
542
|
-
function normalizePjmConfig(value) {
|
|
570
|
+
function normalizePjmConfig(value, configPath) {
|
|
543
571
|
if (!isRecord(value)) {
|
|
544
572
|
return undefined;
|
|
545
573
|
}
|
|
@@ -552,8 +580,167 @@ function normalizePjmConfig(value) {
|
|
|
552
580
|
value.schemaVersion > 0) {
|
|
553
581
|
pjm.schemaVersion = value.schemaVersion;
|
|
554
582
|
}
|
|
583
|
+
if (isRecord(value.remote)) {
|
|
584
|
+
if ('transports' in value.remote) {
|
|
585
|
+
throw new CliError('pjm.remote.transports is retired; host agents discover live execution capabilities at operation time.', 2);
|
|
586
|
+
}
|
|
587
|
+
const remote = normalizePjmRemoteSharedConfig(value.remote, configPath);
|
|
588
|
+
if (remote) {
|
|
589
|
+
pjm.remote = remote;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
555
592
|
return Object.keys(pjm).length > 0 ? pjm : undefined;
|
|
556
593
|
}
|
|
594
|
+
function normalizePjmRemoteAuthorityPolicy(value) {
|
|
595
|
+
if (!isRecord(value))
|
|
596
|
+
return undefined;
|
|
597
|
+
const policy = {};
|
|
598
|
+
if ('default' in value) {
|
|
599
|
+
policy.default = isPjmRemoteAuthority(value.default)
|
|
600
|
+
? value.default
|
|
601
|
+
: 'read-only';
|
|
602
|
+
}
|
|
603
|
+
if (isRecord(value.operations)) {
|
|
604
|
+
const operations = {};
|
|
605
|
+
for (const operation of PJM_REMOTE_OPERATION_CLASSES) {
|
|
606
|
+
if (!(operation in value.operations))
|
|
607
|
+
continue;
|
|
608
|
+
const authority = value.operations[operation];
|
|
609
|
+
operations[operation] = isPjmRemoteAuthority(authority)
|
|
610
|
+
? authority
|
|
611
|
+
: 'read-only';
|
|
612
|
+
}
|
|
613
|
+
if (Object.keys(operations).length > 0)
|
|
614
|
+
policy.operations = operations;
|
|
615
|
+
}
|
|
616
|
+
return Object.keys(policy).length > 0 ? policy : undefined;
|
|
617
|
+
}
|
|
618
|
+
function isPjmRemoteAuthority(value) {
|
|
619
|
+
return (typeof value === 'string' &&
|
|
620
|
+
PJM_REMOTE_AUTHORITIES.includes(value));
|
|
621
|
+
}
|
|
622
|
+
function normalizePjmRemoteSharedConfig(value, configPath) {
|
|
623
|
+
assertClosedPjmRemoteSharedConfig(value, configPath);
|
|
624
|
+
if (value.schemaVersion !== 1 || !isRecord(value.policy))
|
|
625
|
+
return undefined;
|
|
626
|
+
const description = typeof value.policy.description === 'string' &&
|
|
627
|
+
PJM_REMOTE_DESCRIPTION_MODES.includes(value.policy.description)
|
|
628
|
+
? value.policy.description
|
|
629
|
+
: 'none';
|
|
630
|
+
const authority = normalizePjmRemoteAuthorityPolicy(value.policy.authority) ?? { default: 'read-only' };
|
|
631
|
+
const policy = {
|
|
632
|
+
description,
|
|
633
|
+
authority: {
|
|
634
|
+
...authority,
|
|
635
|
+
default: authority.default ?? 'read-only',
|
|
636
|
+
},
|
|
637
|
+
};
|
|
638
|
+
if (isRecord(value.policy.providers)) {
|
|
639
|
+
const providers = {};
|
|
640
|
+
for (const provider of PJM_REMOTE_PROVIDERS) {
|
|
641
|
+
const candidate = value.policy.providers[provider];
|
|
642
|
+
if (!isRecord(candidate))
|
|
643
|
+
continue;
|
|
644
|
+
const providerPolicy = {};
|
|
645
|
+
if ('description' in candidate) {
|
|
646
|
+
providerPolicy.description =
|
|
647
|
+
typeof candidate.description === 'string' &&
|
|
648
|
+
PJM_REMOTE_DESCRIPTION_MODES.includes(candidate.description)
|
|
649
|
+
? candidate.description
|
|
650
|
+
: 'none';
|
|
651
|
+
}
|
|
652
|
+
if ('authority' in candidate) {
|
|
653
|
+
providerPolicy.authority = normalizePjmRemoteAuthorityPolicy(candidate.authority) ?? { default: 'read-only' };
|
|
654
|
+
}
|
|
655
|
+
if (Object.keys(providerPolicy).length > 0) {
|
|
656
|
+
providers[provider] = providerPolicy;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
if (Object.keys(providers).length > 0)
|
|
660
|
+
policy.providers = providers;
|
|
661
|
+
}
|
|
662
|
+
const remote = { schemaVersion: 1, policy };
|
|
663
|
+
if (isRecord(value.storage) &&
|
|
664
|
+
(value.storage.state === 'local' || value.storage.state === 'shared')) {
|
|
665
|
+
remote.storage = { state: value.storage.state };
|
|
666
|
+
}
|
|
667
|
+
return remote;
|
|
668
|
+
}
|
|
669
|
+
function assertClosedPjmRemoteSharedConfig(value, configPath) {
|
|
670
|
+
const findings = [];
|
|
671
|
+
collectUnknownPjmRemoteKeys(value, ['schemaVersion', 'storage', 'policy'], 'pjm.remote', findings);
|
|
672
|
+
if ('storage' in value &&
|
|
673
|
+
collectPjmRemoteExpectedObject(value.storage, 'pjm.remote.storage', findings)) {
|
|
674
|
+
collectUnknownPjmRemoteKeys(value.storage, ['state'], 'pjm.remote.storage', findings);
|
|
675
|
+
}
|
|
676
|
+
if ('policy' in value &&
|
|
677
|
+
collectPjmRemoteExpectedObject(value.policy, 'pjm.remote.policy', findings)) {
|
|
678
|
+
collectUnknownPjmRemoteKeys(value.policy, ['description', 'authority', 'providers'], 'pjm.remote.policy', findings);
|
|
679
|
+
if ('authority' in value.policy) {
|
|
680
|
+
collectPjmRemoteAuthorityFindings(value.policy.authority, 'pjm.remote.policy.authority', findings);
|
|
681
|
+
}
|
|
682
|
+
if ('providers' in value.policy &&
|
|
683
|
+
collectPjmRemoteExpectedObject(value.policy.providers, 'pjm.remote.policy.providers', findings)) {
|
|
684
|
+
collectUnknownPjmRemoteKeys(value.policy.providers, PJM_REMOTE_PROVIDERS, 'pjm.remote.policy.providers', findings);
|
|
685
|
+
for (const provider of PJM_REMOTE_PROVIDERS) {
|
|
686
|
+
if (!(provider in value.policy.providers))
|
|
687
|
+
continue;
|
|
688
|
+
const providerPolicy = value.policy.providers[provider];
|
|
689
|
+
if (!collectPjmRemoteExpectedObject(providerPolicy, `pjm.remote.policy.providers.${provider}`, findings)) {
|
|
690
|
+
continue;
|
|
691
|
+
}
|
|
692
|
+
collectUnknownPjmRemoteKeys(providerPolicy, ['description', 'authority'], `pjm.remote.policy.providers.${provider}`, findings);
|
|
693
|
+
if ('authority' in providerPolicy) {
|
|
694
|
+
collectPjmRemoteAuthorityFindings(providerPolicy.authority, `pjm.remote.policy.providers.${provider}.authority`, findings);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
if (findings.length === 0)
|
|
700
|
+
return;
|
|
701
|
+
throw new CliError(`Invalid PJM remote policy structure in ${configPath}: ${findings.join(', ')}. Repair the named field paths before running any remote mutation.`, 2);
|
|
702
|
+
}
|
|
703
|
+
function collectPjmRemoteAuthorityFindings(value, path, findings) {
|
|
704
|
+
if (!collectPjmRemoteExpectedObject(value, path, findings))
|
|
705
|
+
return;
|
|
706
|
+
collectUnknownPjmRemoteKeys(value, ['default', 'operations'], path, findings);
|
|
707
|
+
if ('operations' in value &&
|
|
708
|
+
collectPjmRemoteExpectedObject(value.operations, `${path}.operations`, findings)) {
|
|
709
|
+
collectUnknownPjmRemoteKeys(value.operations, PJM_REMOTE_OPERATION_CLASSES, `${path}.operations`, findings);
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
function collectPjmRemoteExpectedObject(value, path, findings) {
|
|
713
|
+
if (isRecord(value) && !Array.isArray(value))
|
|
714
|
+
return true;
|
|
715
|
+
findings.push(`${path} (expected object, received ${describePjmRemoteStructure(value)})`);
|
|
716
|
+
return false;
|
|
717
|
+
}
|
|
718
|
+
function describePjmRemoteStructure(value) {
|
|
719
|
+
if (value === null)
|
|
720
|
+
return 'null';
|
|
721
|
+
if (Array.isArray(value))
|
|
722
|
+
return 'array';
|
|
723
|
+
return typeof value;
|
|
724
|
+
}
|
|
725
|
+
function collectUnknownPjmRemoteKeys(value, allowed, path, findings) {
|
|
726
|
+
const allowedKeys = new Set(allowed);
|
|
727
|
+
for (const key of Object.keys(value)) {
|
|
728
|
+
if (!allowedKeys.has(key))
|
|
729
|
+
findings.push(`${path}.${key}`);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
function assertNoLocalPjmRemoteConfig(value) {
|
|
733
|
+
if (!isRecord(value) || !isRecord(value.remote))
|
|
734
|
+
return;
|
|
735
|
+
if ('transports' in value.remote) {
|
|
736
|
+
throw new CliError('pjm.remote.transports is retired; host agents discover live execution capabilities at operation time.', 2);
|
|
737
|
+
}
|
|
738
|
+
for (const sharedKey of ['policy', 'storage', 'schemaVersion']) {
|
|
739
|
+
if (sharedKey in value.remote) {
|
|
740
|
+
throw new CliError(`pjm.remote.${sharedKey} is owned by shared config; local and user config cannot define remote policy or storage.`, 2);
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
}
|
|
557
744
|
const DEFAULT_OAT_CONFIG = { version: 1 };
|
|
558
745
|
const DEFAULT_OAT_LOCAL_CONFIG = { version: 1 };
|
|
559
746
|
const DEFAULT_USER_CONFIG = { version: 1 };
|
|
@@ -696,7 +883,32 @@ function normalizeInstructionPointerExcludes(value, configPath) {
|
|
|
696
883
|
}
|
|
697
884
|
return normalized;
|
|
698
885
|
}
|
|
699
|
-
|
|
886
|
+
/**
|
|
887
|
+
* Report a stored value whose type the normalizer cannot use.
|
|
888
|
+
*
|
|
889
|
+
* The scalar `documentation.*` branches accept only a non-empty string and have
|
|
890
|
+
* no else branch, so a wrong-typed value is dropped with no signal anywhere.
|
|
891
|
+
* That is defensible for a value nobody reads, but `documentation.root` decides
|
|
892
|
+
* which tree OAT treats as documentation, and its silent absence looks exactly
|
|
893
|
+
* like "never configured".
|
|
894
|
+
*
|
|
895
|
+
* The sink is optional on purpose: the lenient repair readers pass none and
|
|
896
|
+
* stay silent, so a caller reading the file only to rewrite a broken key does
|
|
897
|
+
* not get diagnosed about it.
|
|
898
|
+
*/
|
|
899
|
+
function warnWrongType(key, value, configPath, onWarning) {
|
|
900
|
+
if (!onWarning || value === undefined)
|
|
901
|
+
return;
|
|
902
|
+
const observed = Array.isArray(value)
|
|
903
|
+
? 'array'
|
|
904
|
+
: value === null
|
|
905
|
+
? 'null'
|
|
906
|
+
: typeof value;
|
|
907
|
+
onWarning(`Invalid ${key} in ${configPath}: expected a string, got ${observed}; ` +
|
|
908
|
+
`the value is ignored and ${key} reads as unset. ` +
|
|
909
|
+
`Repair it with oat config set ${key} <path>.`);
|
|
910
|
+
}
|
|
911
|
+
function normalizeOatConfig(parsed, configPath = '.oat/config.json', onWarning) {
|
|
700
912
|
const next = { ...DEFAULT_OAT_CONFIG };
|
|
701
913
|
if (!isRecord(parsed)) {
|
|
702
914
|
return next;
|
|
@@ -785,7 +997,7 @@ function normalizeOatConfig(parsed, configPath = '.oat/config.json') {
|
|
|
785
997
|
if (tools) {
|
|
786
998
|
next.tools = tools;
|
|
787
999
|
}
|
|
788
|
-
const pjm = normalizePjmConfig(parsed.pjm);
|
|
1000
|
+
const pjm = normalizePjmConfig(parsed.pjm, configPath);
|
|
789
1001
|
if (pjm) {
|
|
790
1002
|
next.pjm = pjm;
|
|
791
1003
|
}
|
|
@@ -795,6 +1007,12 @@ function normalizeOatConfig(parsed, configPath = '.oat/config.json') {
|
|
|
795
1007
|
parsed.documentation.root.trim()) {
|
|
796
1008
|
doc.root = parsed.documentation.root.trim();
|
|
797
1009
|
}
|
|
1010
|
+
else if (typeof parsed.documentation.root !== 'string') {
|
|
1011
|
+
// Only a type error is reported. A whitespace-only string is still a
|
|
1012
|
+
// string, so it is dropped exactly as before and just as silently; an
|
|
1013
|
+
// absent key never reaches the sink at all.
|
|
1014
|
+
warnWrongType('documentation.root', parsed.documentation.root, configPath, onWarning);
|
|
1015
|
+
}
|
|
798
1016
|
if (typeof parsed.documentation.tooling === 'string' &&
|
|
799
1017
|
parsed.documentation.tooling.trim()) {
|
|
800
1018
|
doc.tooling = parsed.documentation.tooling.trim();
|
|
@@ -870,24 +1088,42 @@ function normalizeOatLocalConfig(repoRoot, parsed) {
|
|
|
870
1088
|
if (workflow) {
|
|
871
1089
|
next.workflow = workflow;
|
|
872
1090
|
}
|
|
1091
|
+
assertNoLocalPjmRemoteConfig(parsed.pjm);
|
|
873
1092
|
return next;
|
|
874
1093
|
}
|
|
875
1094
|
export function resolveLocalPaths(config) {
|
|
876
1095
|
return config.localPaths ?? [];
|
|
877
1096
|
}
|
|
878
|
-
|
|
1097
|
+
/**
|
|
1098
|
+
* Read the shared config and collect the diagnostics the normalizer would
|
|
1099
|
+
* otherwise drop on the floor.
|
|
1100
|
+
*
|
|
1101
|
+
* Behavior is identical to `readOatConfig` in every respect that a caller can
|
|
1102
|
+
* observe apart from the extra `warnings`: same path, same parse, same
|
|
1103
|
+
* missing-file default, same rethrow for anything else. `readOatConfig` is a
|
|
1104
|
+
* wrapper over this function rather than a second copy of the same eight lines,
|
|
1105
|
+
* so the two cannot drift.
|
|
1106
|
+
*/
|
|
1107
|
+
export async function readOatConfigWithWarnings(repoRoot) {
|
|
879
1108
|
const configPath = getConfigPath(repoRoot);
|
|
1109
|
+
const warnings = [];
|
|
880
1110
|
try {
|
|
881
1111
|
const raw = await readFile(configPath, 'utf8');
|
|
882
|
-
|
|
1112
|
+
const config = normalizeOatConfig(parseJsonConfig(raw, configPath), configPath, (message) => {
|
|
1113
|
+
warnings.push(message);
|
|
1114
|
+
});
|
|
1115
|
+
return { config, warnings };
|
|
883
1116
|
}
|
|
884
1117
|
catch (error) {
|
|
885
1118
|
if (isMissingFileError(error)) {
|
|
886
|
-
return { ...DEFAULT_OAT_CONFIG };
|
|
1119
|
+
return { config: { ...DEFAULT_OAT_CONFIG }, warnings: [] };
|
|
887
1120
|
}
|
|
888
1121
|
throw error;
|
|
889
1122
|
}
|
|
890
1123
|
}
|
|
1124
|
+
export async function readOatConfig(repoRoot) {
|
|
1125
|
+
return (await readOatConfigWithWarnings(repoRoot)).config;
|
|
1126
|
+
}
|
|
891
1127
|
export async function readOatConfigForDefaultScopeRepair(repoRoot) {
|
|
892
1128
|
const configPath = getConfigPath(repoRoot);
|
|
893
1129
|
try {
|
|
@@ -1102,6 +1338,7 @@ const USER_CONFIG_OWNED_KEYS = new Set([
|
|
|
1102
1338
|
'updateNotifications',
|
|
1103
1339
|
'tools',
|
|
1104
1340
|
'workflow',
|
|
1341
|
+
'pjm',
|
|
1105
1342
|
'knownStrays',
|
|
1106
1343
|
]);
|
|
1107
1344
|
function normalizeUserConfig(parsed) {
|
|
@@ -1130,6 +1367,7 @@ function normalizeUserConfig(parsed) {
|
|
|
1130
1367
|
if (workflow) {
|
|
1131
1368
|
next.workflow = workflow;
|
|
1132
1369
|
}
|
|
1370
|
+
assertNoLocalPjmRemoteConfig(parsed.pjm);
|
|
1133
1371
|
return next;
|
|
1134
1372
|
}
|
|
1135
1373
|
async function readUnknownUserConfigFields(configPath) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `key` from `map` only when it is an own key.
|
|
3
|
+
*
|
|
4
|
+
* Since `config/json.ts` materializes a key literally named `__proto__` as an
|
|
5
|
+
* own data property, config-derived maps can carry names that also exist on
|
|
6
|
+
* `Object.prototype`. A bare `map[name]` for a user-supplied name would
|
|
7
|
+
* otherwise return an inherited member -- `Object.prototype` itself for
|
|
8
|
+
* `__proto__`, a function for `constructor` or `toString` -- and read as
|
|
9
|
+
* configuration that nobody wrote.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getOwnKey<T>(map: Readonly<Record<string, T>>, key: string): T | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Define `key` on `map` as an own data property.
|
|
14
|
+
*
|
|
15
|
+
* `map[key] = value` reaches the legacy prototype setter for a key named
|
|
16
|
+
* `__proto__`, which loses the entry as data and installs its value as the
|
|
17
|
+
* map's prototype. `Object.defineProperty` never invokes that setter. The
|
|
18
|
+
* descriptor matches an ordinary assignment so the result is an unremarkable
|
|
19
|
+
* object, exactly as `config/json.ts` does.
|
|
20
|
+
*/
|
|
21
|
+
export declare function setOwnKey<T>(map: Record<string, T>, key: string, value: T): void;
|
|
22
|
+
//# sourceMappingURL=own-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"own-keys.d.ts","sourceRoot":"","sources":["../../src/config/own-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAChC,GAAG,EAAE,MAAM,GACV,CAAC,GAAG,SAAS,CAIf;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,GACP,IAAI,CAON"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `key` from `map` only when it is an own key.
|
|
3
|
+
*
|
|
4
|
+
* Since `config/json.ts` materializes a key literally named `__proto__` as an
|
|
5
|
+
* own data property, config-derived maps can carry names that also exist on
|
|
6
|
+
* `Object.prototype`. A bare `map[name]` for a user-supplied name would
|
|
7
|
+
* otherwise return an inherited member -- `Object.prototype` itself for
|
|
8
|
+
* `__proto__`, a function for `constructor` or `toString` -- and read as
|
|
9
|
+
* configuration that nobody wrote.
|
|
10
|
+
*/
|
|
11
|
+
export function getOwnKey(map, key) {
|
|
12
|
+
return Object.prototype.hasOwnProperty.call(map, key)
|
|
13
|
+
? map[key]
|
|
14
|
+
: undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Define `key` on `map` as an own data property.
|
|
18
|
+
*
|
|
19
|
+
* `map[key] = value` reaches the legacy prototype setter for a key named
|
|
20
|
+
* `__proto__`, which loses the entry as data and installs its value as the
|
|
21
|
+
* map's prototype. `Object.defineProperty` never invokes that setter. The
|
|
22
|
+
* descriptor matches an ordinary assignment so the result is an unremarkable
|
|
23
|
+
* object, exactly as `config/json.ts` does.
|
|
24
|
+
*/
|
|
25
|
+
export function setOwnKey(map, key, value) {
|
|
26
|
+
Object.defineProperty(map, key, {
|
|
27
|
+
value,
|
|
28
|
+
enumerable: true,
|
|
29
|
+
writable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
});
|
|
32
|
+
}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -42,4 +42,15 @@ export interface ResolvedExecTargetView {
|
|
|
42
42
|
enabled: boolean;
|
|
43
43
|
}
|
|
44
44
|
export declare function resolveExecTargetViews(effective: ResolvedConfig): Record<string, ResolvedExecTargetView>;
|
|
45
|
+
/**
|
|
46
|
+
* Report the environment override for `key`, if one is live.
|
|
47
|
+
*
|
|
48
|
+
* Exported because `oat config unset` needs the answer to "is this key
|
|
49
|
+
* environment-overridden?" without performing a whole-config read, which a
|
|
50
|
+
* malformed stored value aborts -- and a malformed stored value is exactly what
|
|
51
|
+
* `unset` exists to remove. `ENV_OVERRIDE_MAP` plus the env-first branch of
|
|
52
|
+
* `resolveEffectiveConfig` is the single source of that answer, so callers that
|
|
53
|
+
* only need the boolean must not resolve the whole config to derive it.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveEnvOverride(key: string, env: NodeJS.ProcessEnv): string | undefined;
|
|
45
56
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,OAAO,GACP,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kCAAkC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAChE;AAwHD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,GAAE,OAAO,CAAC,kCAAkC,CAAM,GAC1D,OAAO,CAAC,cAAc,CAAC,CAgFzB;AAED,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAkBxB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,IAAI,CAEnB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,cAAc,GACxB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAY5B;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,cAAc,GACxB,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CA0DxC;AAiMD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,GAAG,SAAS,CAQpB"}
|