@open-agent-toolkit/cli 0.2.4 → 0.2.6
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/docs/cli-utilities/configuration.md +40 -0
- package/assets/docs/cli-utilities/tool-packs.md +31 -0
- package/assets/docs/workflows/projects/artifacts.md +27 -0
- package/assets/docs/workflows/projects/implementation-execution.md +30 -5
- package/assets/docs/workflows/skills/explainer-kit.md +125 -0
- package/assets/docs/workflows/skills/index.md +4 -0
- package/assets/migration/pjm-restructure.md +12 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/explainer-kit/SKILL.md +95 -0
- package/assets/skills/explainer-kit/examples/project-explainer/content.md +31 -0
- package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/project-recap/content.md +34 -0
- package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/theme-bundle.json +87 -0
- package/assets/skills/explainer-kit/palettes/ember.json +37 -0
- package/assets/skills/explainer-kit/palettes/forest.json +37 -0
- package/assets/skills/explainer-kit/palettes/neutral.json +37 -0
- package/assets/skills/explainer-kit/palettes/ocean.json +37 -0
- package/assets/skills/explainer-kit/palettes/violet.json +37 -0
- package/assets/skills/explainer-kit/profiles/clean.json +42 -0
- package/assets/skills/explainer-kit/profiles/editorial.json +42 -0
- package/assets/skills/explainer-kit/profiles/technical.json +39 -0
- package/assets/skills/explainer-kit/recipes/engineer-tour.json +33 -0
- package/assets/skills/explainer-kit/recipes/program-recap.json +34 -0
- package/assets/skills/explainer-kit/recipes/project-explainer.json +33 -0
- package/assets/skills/explainer-kit/recipes/project-recap.json +34 -0
- package/assets/skills/explainer-kit/references/contracts.md +101 -0
- package/assets/skills/explainer-kit/references/destination-contract.md +94 -0
- package/assets/skills/explainer-kit/references/extension-contract.md +71 -0
- package/assets/skills/explainer-kit/references/fact-base-contract.md +119 -0
- package/assets/skills/explainer-kit/schemas/build-record.schema.json +92 -0
- package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +53 -0
- package/assets/skills/explainer-kit/schemas/fact-base.schema.json +129 -0
- package/assets/skills/explainer-kit/schemas/manifest.schema.json +193 -0
- package/assets/skills/explainer-kit/schemas/publish-receipt.schema.json +97 -0
- package/assets/skills/explainer-kit/schemas/publish-request.schema.json +32 -0
- package/assets/skills/explainer-kit/schemas/run-request.schema.json +132 -0
- package/assets/skills/explainer-kit/schemas/theme.schema.json +217 -0
- package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +180 -0
- package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +680 -0
- package/assets/skills/explainer-kit/scripts/lib/durability.mjs +538 -0
- package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +494 -0
- package/assets/skills/explainer-kit/scripts/lib/fs-safe.mjs +218 -0
- package/assets/skills/explainer-kit/scripts/lib/qa.mjs +512 -0
- package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +289 -0
- package/assets/skills/explainer-kit/scripts/lib/records.mjs +231 -0
- package/assets/skills/explainer-kit/scripts/lib/render.mjs +485 -0
- package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +587 -0
- package/assets/skills/explainer-kit/scripts/lib/safe-paths.mjs +96 -0
- package/assets/skills/explainer-kit/scripts/lib/theme.mjs +332 -0
- package/assets/skills/explainer-kit/scripts/publish.mjs +76 -0
- package/assets/skills/explainer-kit/scripts/record-durability.mjs +64 -0
- package/assets/skills/explainer-kit/scripts/render-qa.mjs +273 -0
- package/assets/skills/explainer-kit/scripts/run.mjs +778 -0
- package/assets/skills/explainer-kit/scripts/validate.mjs +59 -0
- package/assets/skills/explainer-kit/templates/deck-shell.html +233 -0
- package/assets/skills/explainer-kit/templates/diagram-shell.html +219 -0
- package/assets/skills/explainer-kit/templates/engineer-tour.html +273 -0
- package/assets/skills/explainer-kit/templates/house-style.html +218 -0
- package/assets/skills/oat-explainer-kit/SKILL.md +92 -0
- package/assets/skills/oat-explainer-kit/references/config-contract.md +67 -0
- package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +143 -0
- package/assets/skills/oat-explainer-kit/references/migration.md +143 -0
- package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +103 -0
- package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +127 -0
- package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +392 -0
- package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +130 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +293 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +209 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-paths.mjs +166 -0
- package/assets/skills/oat-explainer-kit/scripts/run.mjs +284 -0
- package/assets/skills/oat-project-autonomous/SKILL.md +22 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +5 -1
- package/assets/skills/oat-project-complete/SKILL.md +166 -28
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +84 -9
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +31 -11
- package/assets/skills/oat-project-plan/SKILL.md +30 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-summary/SKILL.md +20 -1
- package/assets/templates/state.md +4 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +232 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
- package/dist/commands/project/archive/archive-utils.d.ts +12 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +320 -8
- package/dist/commands/project/archive/index.d.ts.map +1 -1
- package/dist/commands/project/archive/index.js +1 -0
- package/dist/commands/project/archive/push-runner.d.ts +1 -0
- package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
- package/dist/commands/project/archive/push-runner.js +9 -2
- package/dist/config/oat-config.d.ts +26 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +88 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +18 -0
- package/dist/validation/project-state.d.ts +3 -0
- package/dist/validation/project-state.d.ts.map +1 -1
- package/dist/validation/project-state.js +91 -0
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readFile as readFileDefault } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
2
|
+
import { isAbsolute, join } from 'node:path';
|
|
3
3
|
import { buildCommandContext } from '../../app/command-context.js';
|
|
4
4
|
import { resolveProjectsRoot } from '../shared/oat-paths.js';
|
|
5
5
|
import { confirmAction, } from '../shared/shared.prompts.js';
|
|
@@ -37,6 +37,14 @@ const KEY_ORDER = [
|
|
|
37
37
|
'documentation.tooling',
|
|
38
38
|
'documentation.config',
|
|
39
39
|
'documentation.requireForProjectCompletion',
|
|
40
|
+
'explainers.defaults.palette',
|
|
41
|
+
'explainers.defaults.visualProfile',
|
|
42
|
+
'explainers.defaults.themeBundlePath',
|
|
43
|
+
'explainers.publish.provider',
|
|
44
|
+
'explainers.publish.s3Uri',
|
|
45
|
+
'explainers.publish.publicBaseUrl',
|
|
46
|
+
'explainers.publish.awsRegion',
|
|
47
|
+
'explainers.publish.awsProfile',
|
|
40
48
|
'git.defaultBranch',
|
|
41
49
|
'projects.root',
|
|
42
50
|
'tools.brainstorm',
|
|
@@ -65,6 +73,8 @@ const KEY_ORDER = [
|
|
|
65
73
|
'workflow.dispatchCeiling.preset',
|
|
66
74
|
'workflow.dispatchCeiling.providers.codex',
|
|
67
75
|
'workflow.dispatchCeiling.providers.claude',
|
|
76
|
+
'workflow.explainers.projectExplainer',
|
|
77
|
+
'workflow.explainers.projectRecap',
|
|
68
78
|
'workflow.gateTimeouts.code',
|
|
69
79
|
'workflow.gateTimeouts.artifact',
|
|
70
80
|
'worktrees.root',
|
|
@@ -312,6 +322,116 @@ const CONFIG_CATALOG = [
|
|
|
312
322
|
owningCommand: 'oat tools install / oat tools update',
|
|
313
323
|
description: 'Whether the workflows tool pack is installed.',
|
|
314
324
|
},
|
|
325
|
+
{
|
|
326
|
+
key: 'explainers.defaults.palette',
|
|
327
|
+
group: 'Explainer Defaults (3-layer: local > shared > user)',
|
|
328
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
329
|
+
scope: 'local, shared, or user',
|
|
330
|
+
type: 'non-empty string',
|
|
331
|
+
defaultValue: 'neutral',
|
|
332
|
+
mutability: 'read/write',
|
|
333
|
+
owningCommand: 'oat config set explainers.defaults.palette <value> [--local|--shared|--user]',
|
|
334
|
+
description: 'Named default color palette for explainer builds.',
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
key: 'explainers.defaults.visualProfile',
|
|
338
|
+
group: 'Explainer Defaults (3-layer: local > shared > user)',
|
|
339
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
340
|
+
scope: 'local, shared, or user',
|
|
341
|
+
type: 'non-empty string',
|
|
342
|
+
defaultValue: 'clean',
|
|
343
|
+
mutability: 'read/write',
|
|
344
|
+
owningCommand: 'oat config set explainers.defaults.visualProfile <value> [--local|--shared|--user]',
|
|
345
|
+
description: 'Named default visual profile for explainer builds.',
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
key: 'explainers.defaults.themeBundlePath',
|
|
349
|
+
group: 'Explainer Defaults (local > shared)',
|
|
350
|
+
file: '.oat/config.local.json | .oat/config.json',
|
|
351
|
+
scope: 'local or shared',
|
|
352
|
+
type: 'path',
|
|
353
|
+
defaultValue: 'unset',
|
|
354
|
+
mutability: 'read/write',
|
|
355
|
+
owningCommand: 'oat config set explainers.defaults.themeBundlePath <path> [--local|--shared]',
|
|
356
|
+
description: 'Theme bundle path; shared values must be repository-relative and local values may be absolute.',
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
key: 'explainers.publish.provider',
|
|
360
|
+
group: 'Explainer Publish (shared)',
|
|
361
|
+
file: '.oat/config.json',
|
|
362
|
+
scope: 'shared repo',
|
|
363
|
+
type: 's3-static',
|
|
364
|
+
defaultValue: 'unset',
|
|
365
|
+
mutability: 'read/write',
|
|
366
|
+
owningCommand: 'oat config set explainers.publish.provider s3-static --shared',
|
|
367
|
+
description: 'Static publishing provider for explainer artifacts.',
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
key: 'explainers.publish.s3Uri',
|
|
371
|
+
group: 'Explainer Publish (shared)',
|
|
372
|
+
file: '.oat/config.json',
|
|
373
|
+
scope: 'shared repo',
|
|
374
|
+
type: 's3:// URI',
|
|
375
|
+
defaultValue: 'unset',
|
|
376
|
+
mutability: 'read/write',
|
|
377
|
+
owningCommand: 'oat config set explainers.publish.s3Uri <s3://bucket/prefix> --shared',
|
|
378
|
+
description: 'Shared S3 destination root for explainer publishing.',
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
key: 'explainers.publish.publicBaseUrl',
|
|
382
|
+
group: 'Explainer Publish (shared)',
|
|
383
|
+
file: '.oat/config.json',
|
|
384
|
+
scope: 'shared repo',
|
|
385
|
+
type: 'https:// URL',
|
|
386
|
+
defaultValue: 'unset',
|
|
387
|
+
mutability: 'read/write',
|
|
388
|
+
owningCommand: 'oat config set explainers.publish.publicBaseUrl <https://url> --shared',
|
|
389
|
+
description: 'Shared public URL root for published explainer artifacts.',
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
key: 'explainers.publish.awsRegion',
|
|
393
|
+
group: 'Explainer Publish (shared)',
|
|
394
|
+
file: '.oat/config.json',
|
|
395
|
+
scope: 'shared repo',
|
|
396
|
+
type: 'non-empty string',
|
|
397
|
+
defaultValue: 'unset',
|
|
398
|
+
mutability: 'read/write',
|
|
399
|
+
owningCommand: 'oat config set explainers.publish.awsRegion <region> --shared',
|
|
400
|
+
description: 'AWS region used for explainer publishing.',
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
key: 'explainers.publish.awsProfile',
|
|
404
|
+
group: 'Explainer Publish Credentials (local > user)',
|
|
405
|
+
file: '.oat/config.local.json | ~/.oat/config.json',
|
|
406
|
+
scope: 'local or user',
|
|
407
|
+
type: 'non-empty string',
|
|
408
|
+
defaultValue: 'unset',
|
|
409
|
+
mutability: 'read/write',
|
|
410
|
+
owningCommand: 'oat config set explainers.publish.awsProfile <profile> [--local|--user]',
|
|
411
|
+
description: 'Checkout- or user-specific AWS profile used for explainer publishing.',
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
key: 'workflow.explainers.projectExplainer',
|
|
415
|
+
group: 'Workflow Preferences (3-layer: local > shared > user)',
|
|
416
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
417
|
+
scope: 'workflow',
|
|
418
|
+
type: 'always | ask | never',
|
|
419
|
+
defaultValue: 'ask',
|
|
420
|
+
mutability: 'read/write',
|
|
421
|
+
owningCommand: 'oat config set workflow.explainers.projectExplainer <always|ask|never>',
|
|
422
|
+
description: 'Controls project-explainer lifecycle invocation.',
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
key: 'workflow.explainers.projectRecap',
|
|
426
|
+
group: 'Workflow Preferences (3-layer: local > shared > user)',
|
|
427
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
428
|
+
scope: 'workflow',
|
|
429
|
+
type: 'always | ask | never',
|
|
430
|
+
defaultValue: 'ask',
|
|
431
|
+
mutability: 'read/write',
|
|
432
|
+
owningCommand: 'oat config set workflow.explainers.projectRecap <always|ask|never>',
|
|
433
|
+
description: 'Controls project-recap lifecycle invocation.',
|
|
434
|
+
},
|
|
315
435
|
{
|
|
316
436
|
key: 'activeProject',
|
|
317
437
|
group: 'Repo Local (.oat/config.local.json)',
|
|
@@ -709,6 +829,38 @@ function normalizeSharedRoot(value) {
|
|
|
709
829
|
}
|
|
710
830
|
return trimmed.replace(/\/+$/, '');
|
|
711
831
|
}
|
|
832
|
+
function parseExplainerValue(key, rawValue, surface) {
|
|
833
|
+
const value = rawValue.trim();
|
|
834
|
+
if (!value) {
|
|
835
|
+
throw new Error(`Invalid value for ${key}: value cannot be empty.`);
|
|
836
|
+
}
|
|
837
|
+
if (key === 'explainers.defaults.themeBundlePath') {
|
|
838
|
+
if (surface === 'shared' &&
|
|
839
|
+
(isAbsolute(value) || value === '..' || value.startsWith('../'))) {
|
|
840
|
+
throw new Error(`Invalid value for ${key}: shared theme bundle paths must be repository-relative.`);
|
|
841
|
+
}
|
|
842
|
+
return value;
|
|
843
|
+
}
|
|
844
|
+
if (key === 'explainers.publish.provider') {
|
|
845
|
+
if (value !== 's3-static') {
|
|
846
|
+
throw new Error(`Invalid value for ${key}: expected 's3-static', got '${rawValue}'.`);
|
|
847
|
+
}
|
|
848
|
+
return value;
|
|
849
|
+
}
|
|
850
|
+
if (key === 'explainers.publish.s3Uri') {
|
|
851
|
+
if (!/^s3:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
|
|
852
|
+
throw new Error(`Invalid value for ${key}: expected an s3:// URI, got '${rawValue}'.`);
|
|
853
|
+
}
|
|
854
|
+
return value.replace(/\/+$/, '');
|
|
855
|
+
}
|
|
856
|
+
if (key === 'explainers.publish.publicBaseUrl') {
|
|
857
|
+
if (!/^https:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
|
|
858
|
+
throw new Error(`Invalid value for ${key}: expected an https:// URL, got '${rawValue}'.`);
|
|
859
|
+
}
|
|
860
|
+
return value.replace(/\/+$/, '');
|
|
861
|
+
}
|
|
862
|
+
return value;
|
|
863
|
+
}
|
|
712
864
|
const WORKFLOW_ENUM_VALUES = {
|
|
713
865
|
'workflow.hillCheckpointDefault': ['every', 'final'],
|
|
714
866
|
'workflow.postImplementSequence': ['wait', 'summary', 'pr', 'docs-pr'],
|
|
@@ -730,6 +882,8 @@ const WORKFLOW_ENUM_VALUES = {
|
|
|
730
882
|
'opus',
|
|
731
883
|
'fable',
|
|
732
884
|
],
|
|
885
|
+
'workflow.explainers.projectExplainer': ['always', 'ask', 'never'],
|
|
886
|
+
'workflow.explainers.projectRecap': ['always', 'ask', 'never'],
|
|
733
887
|
};
|
|
734
888
|
function closedDispatchProviderValues(provider) {
|
|
735
889
|
if (provider === 'codex') {
|
|
@@ -774,6 +928,20 @@ function validateSurfaceForKey(key, surface) {
|
|
|
774
928
|
}
|
|
775
929
|
return;
|
|
776
930
|
}
|
|
931
|
+
if (key.startsWith('explainers.')) {
|
|
932
|
+
const allowed = key === 'explainers.defaults.palette' ||
|
|
933
|
+
key === 'explainers.defaults.visualProfile'
|
|
934
|
+
? ['shared', 'local', 'user']
|
|
935
|
+
: key === 'explainers.defaults.themeBundlePath'
|
|
936
|
+
? ['shared', 'local']
|
|
937
|
+
: key === 'explainers.publish.awsProfile'
|
|
938
|
+
? ['local', 'user']
|
|
939
|
+
: ['shared'];
|
|
940
|
+
if (!allowed.includes(surface)) {
|
|
941
|
+
throw new Error(`Cannot set '${key}' at '${surface}' scope. Allowed scopes: ${allowed.join(', ')}.`);
|
|
942
|
+
}
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
777
945
|
if (isStructuralKey(key)) {
|
|
778
946
|
if (surface !== 'shared') {
|
|
779
947
|
throw new Error(`Cannot set structural key '${key}' at '${surface}' scope. Structural keys (projects.root, worktrees.root, git.*, documentation.*, archive.*, tools.*) can only be set at shared scope (.oat/config.json).`);
|
|
@@ -808,6 +976,12 @@ function defaultSurfaceForKey(key) {
|
|
|
808
976
|
if (key === 'updateNotifications') {
|
|
809
977
|
return 'user';
|
|
810
978
|
}
|
|
979
|
+
if (key === 'explainers.defaults.palette' ||
|
|
980
|
+
key === 'explainers.defaults.visualProfile' ||
|
|
981
|
+
key === 'explainers.defaults.themeBundlePath' ||
|
|
982
|
+
key === 'explainers.publish.awsProfile') {
|
|
983
|
+
return 'local';
|
|
984
|
+
}
|
|
811
985
|
if (isWorkflowKey(key) || isStateKey(key)) {
|
|
812
986
|
return 'local';
|
|
813
987
|
}
|
|
@@ -1082,6 +1256,16 @@ function applyWorkflowValue(workflow, key, value) {
|
|
|
1082
1256
|
},
|
|
1083
1257
|
};
|
|
1084
1258
|
}
|
|
1259
|
+
if (subKey.startsWith('explainers.')) {
|
|
1260
|
+
const explainerKey = subKey.slice('explainers.'.length);
|
|
1261
|
+
return {
|
|
1262
|
+
...workflow,
|
|
1263
|
+
explainers: {
|
|
1264
|
+
...workflow.explainers,
|
|
1265
|
+
[explainerKey]: value,
|
|
1266
|
+
},
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1085
1269
|
return {
|
|
1086
1270
|
...workflow,
|
|
1087
1271
|
[subKey]: value,
|
|
@@ -1248,6 +1432,53 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
|
|
|
1248
1432
|
source: 'user',
|
|
1249
1433
|
};
|
|
1250
1434
|
}
|
|
1435
|
+
if (key.startsWith('explainers.')) {
|
|
1436
|
+
const nextValue = parseExplainerValue(key, rawValue, effectiveSurface);
|
|
1437
|
+
const section = key.startsWith('explainers.defaults.')
|
|
1438
|
+
? 'defaults'
|
|
1439
|
+
: 'publish';
|
|
1440
|
+
const field = key.slice(`explainers.${section}.`.length);
|
|
1441
|
+
if (effectiveSurface === 'user') {
|
|
1442
|
+
const userConfig = await dependencies.readUserConfig(userConfigDir);
|
|
1443
|
+
await dependencies.writeUserConfig(userConfigDir, {
|
|
1444
|
+
...userConfig,
|
|
1445
|
+
explainers: {
|
|
1446
|
+
...userConfig.explainers,
|
|
1447
|
+
[section]: {
|
|
1448
|
+
...userConfig.explainers?.[section],
|
|
1449
|
+
[field]: nextValue,
|
|
1450
|
+
},
|
|
1451
|
+
},
|
|
1452
|
+
});
|
|
1453
|
+
return { key, value: nextValue, source: 'user' };
|
|
1454
|
+
}
|
|
1455
|
+
if (effectiveSurface === 'local') {
|
|
1456
|
+
const localConfig = await dependencies.readOatLocalConfig(repoRoot);
|
|
1457
|
+
await dependencies.writeOatLocalConfig(repoRoot, {
|
|
1458
|
+
...localConfig,
|
|
1459
|
+
explainers: {
|
|
1460
|
+
...localConfig.explainers,
|
|
1461
|
+
[section]: {
|
|
1462
|
+
...localConfig.explainers?.[section],
|
|
1463
|
+
[field]: nextValue,
|
|
1464
|
+
},
|
|
1465
|
+
},
|
|
1466
|
+
});
|
|
1467
|
+
return { key, value: nextValue, source: 'local' };
|
|
1468
|
+
}
|
|
1469
|
+
const sharedConfig = await dependencies.readOatConfig(repoRoot);
|
|
1470
|
+
await dependencies.writeOatConfig(repoRoot, {
|
|
1471
|
+
...sharedConfig,
|
|
1472
|
+
explainers: {
|
|
1473
|
+
...sharedConfig.explainers,
|
|
1474
|
+
[section]: {
|
|
1475
|
+
...sharedConfig.explainers?.[section],
|
|
1476
|
+
[field]: nextValue,
|
|
1477
|
+
},
|
|
1478
|
+
},
|
|
1479
|
+
});
|
|
1480
|
+
return { key, value: nextValue, source: 'shared' };
|
|
1481
|
+
}
|
|
1251
1482
|
const config = await dependencies.readOatConfig(repoRoot);
|
|
1252
1483
|
if (key.startsWith('documentation.')) {
|
|
1253
1484
|
const doc = { ...config.documentation };
|
|
@@ -11,7 +11,7 @@ export interface PackMetadata {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const PACK_METADATA: Record<string, PackMetadata>;
|
|
13
13
|
export declare function resolvePackDefaultScope(packName: string): 'user' | 'project';
|
|
14
|
-
export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
|
|
14
|
+
export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-explainer-kit", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
|
|
15
15
|
export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-phase-implementer.md", "oat-reviewer.md"];
|
|
16
16
|
export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "spec.md", "design.md", "plan.md", "implementation.md", "summary.md", "project-log.md"];
|
|
17
17
|
export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
|
|
@@ -19,7 +19,7 @@ export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "
|
|
|
19
19
|
export declare const CORE_SKILLS: readonly ["oat-docs", "oat-doctor"];
|
|
20
20
|
export declare const DOCS_SKILLS: readonly ["authoring-docs", "oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply", "oat-docs-authoring", "oat-docs-bootstrap"];
|
|
21
21
|
export declare const DOCS_SCRIPTS: readonly ["resolve-tracking.sh"];
|
|
22
|
-
export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
|
|
22
|
+
export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "explainer-kit", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
|
|
23
23
|
export declare const PROJECT_MANAGEMENT_SKILLS: readonly ["oat-pjm-add-backlog-item", "oat-pjm-decision", "oat-pjm-update-repo-reference", "oat-pjm-review-backlog"];
|
|
24
24
|
export declare const PROJECT_MANAGEMENT_TEMPLATES: readonly ["backlog-item.md", "roadmap.md", "current-state.md", "decision.md", "repo-agents.md", "pjm-agents.md", "reference-agents.md"];
|
|
25
25
|
export declare const PROJECT_MANAGEMENT_SCRIPTS: readonly [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,m7BAsClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+HASrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,4OAUjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
|
|
@@ -17,6 +17,7 @@ export function resolvePackDefaultScope(packName) {
|
|
|
17
17
|
// ── Workflow pack ──────────────────────────────────────────────────
|
|
18
18
|
export const WORKFLOW_SKILLS = [
|
|
19
19
|
'oat-cursor-cloud-projects',
|
|
20
|
+
'oat-explainer-kit',
|
|
20
21
|
'oat-project-autonomous',
|
|
21
22
|
'oat-project-capture',
|
|
22
23
|
'oat-project-clear-active',
|
|
@@ -96,6 +97,7 @@ export const DOCS_SCRIPTS = ['resolve-tracking.sh'];
|
|
|
96
97
|
// ── Utility pack ───────────────────────────────────────────────────
|
|
97
98
|
export const UTILITY_SKILLS = [
|
|
98
99
|
'create-agnostic-skill',
|
|
100
|
+
'explainer-kit',
|
|
99
101
|
'oat-dispatch-subagents',
|
|
100
102
|
'oat-repo-improve',
|
|
101
103
|
'oat-repo-maintainability-review',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { rename } from 'node:fs/promises';
|
|
1
2
|
import { copyDirectory, copySingleFile, dirExists, ensureDir, fileExists } from '../../../fs/io.js';
|
|
2
3
|
export type ExecFileResult = {
|
|
3
4
|
stdout: string;
|
|
@@ -42,6 +43,7 @@ export interface ArchiveProjectOnCompletionOptions {
|
|
|
42
43
|
s3Uri?: string | null;
|
|
43
44
|
s3SyncOnComplete: boolean;
|
|
44
45
|
summaryExportPath?: string | null;
|
|
46
|
+
projectRecapRun?: string | null;
|
|
45
47
|
/**
|
|
46
48
|
* Config-only AWS profile (`archive.awsProfile`). The completion path has no
|
|
47
49
|
* flag override. When non-empty, this value clobbers any parent-env
|
|
@@ -88,12 +90,22 @@ interface ArchiveProjectOnCompletionDependencies extends EnsureS3ArchiveAccessDe
|
|
|
88
90
|
}) => Promise<void>;
|
|
89
91
|
copySingleFile?: typeof copySingleFile;
|
|
90
92
|
fileExists?: typeof fileExists;
|
|
93
|
+
renamePath?: typeof rename;
|
|
91
94
|
timestamp?: () => string;
|
|
92
95
|
}
|
|
96
|
+
export interface ArchiveProjectRecapExportV1 {
|
|
97
|
+
sourceRunRoot: string;
|
|
98
|
+
exportRoot: string;
|
|
99
|
+
manifest: {
|
|
100
|
+
relativePath: 'manifest.json';
|
|
101
|
+
verifiedArtifactCount: number;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
93
104
|
export interface ArchiveProjectOnCompletionResult {
|
|
94
105
|
archivePath: string;
|
|
95
106
|
s3Path: string | null;
|
|
96
107
|
summaryExportFile: string | null;
|
|
108
|
+
projectRecapExport: ArchiveProjectRecapExportV1 | null;
|
|
97
109
|
warnings: string[];
|
|
98
110
|
}
|
|
99
111
|
export declare const ARCHIVE_SNAPSHOT_METADATA_FILENAME = ".oat-archive-source.json";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"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"}
|