agentplane 0.3.9 → 0.3.10
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/AGENTS.md +4 -2
- package/assets/agents/CODER.json +1 -1
- package/assets/policy/dod.core.md +1 -1
- package/assets/policy/governance.md +3 -0
- package/assets/policy/incidents.md +22 -11
- package/assets/policy/workflow.branch_pr.md +2 -0
- package/assets/policy/workflow.direct.md +3 -1
- package/dist/.build-manifest.json +305 -110
- package/dist/cli/bootstrap-guide.d.ts +1 -0
- package/dist/cli/bootstrap-guide.d.ts.map +1 -1
- package/dist/cli/bootstrap-guide.js +19 -1
- package/dist/cli/command-invocations.d.ts.map +1 -1
- package/dist/cli/command-invocations.js +2 -0
- package/dist/cli/command-snippets.d.ts +2 -0
- package/dist/cli/command-snippets.d.ts.map +1 -1
- package/dist/cli/command-snippets.js +2 -0
- package/dist/cli/run-cli/command-catalog/core.d.ts +1 -1
- package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/core.js +10 -0
- package/dist/cli/run-cli/command-catalog.d.ts +1 -1
- package/dist/cli/run-cli/command-catalog.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/config.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/config.js +13 -0
- package/dist/cli/run-cli.js +2 -2
- package/dist/commands/backend.d.ts.map +1 -1
- package/dist/commands/backend.js +4 -0
- package/dist/commands/incidents/advise.command.d.ts +15 -0
- package/dist/commands/incidents/advise.command.d.ts.map +1 -0
- package/dist/commands/incidents/advise.command.js +139 -0
- package/dist/commands/incidents/collect.command.d.ts +11 -0
- package/dist/commands/incidents/collect.command.d.ts.map +1 -0
- package/dist/commands/incidents/collect.command.js +67 -0
- package/dist/commands/incidents/incidents.command.d.ts +5 -0
- package/dist/commands/incidents/incidents.command.d.ts.map +1 -0
- package/dist/commands/incidents/incidents.command.js +21 -0
- package/dist/commands/incidents/shared.d.ts +42 -0
- package/dist/commands/incidents/shared.d.ts.map +1 -0
- package/dist/commands/incidents/shared.js +107 -0
- package/dist/commands/pr/check.d.ts.map +1 -1
- package/dist/commands/pr/check.js +73 -2
- package/dist/commands/pr/integrate/cmd.d.ts.map +1 -1
- package/dist/commands/pr/integrate/cmd.js +4 -0
- package/dist/commands/pr/integrate/internal/merge.d.ts +4 -0
- package/dist/commands/pr/integrate/internal/merge.d.ts.map +1 -1
- package/dist/commands/pr/integrate/internal/merge.js +23 -2
- package/dist/commands/pr/integrate/internal/prepare.d.ts.map +1 -1
- package/dist/commands/pr/integrate/internal/prepare.js +26 -1
- package/dist/commands/pr/internal/note-store.d.ts +18 -0
- package/dist/commands/pr/internal/note-store.d.ts.map +1 -0
- package/dist/commands/pr/internal/note-store.js +66 -0
- package/dist/commands/pr/internal/pr-paths.d.ts +3 -0
- package/dist/commands/pr/internal/pr-paths.d.ts.map +1 -1
- package/dist/commands/pr/internal/pr-paths.js +3 -0
- package/dist/commands/pr/internal/review-template.d.ts +24 -4
- package/dist/commands/pr/internal/review-template.d.ts.map +1 -1
- package/dist/commands/pr/internal/review-template.js +188 -33
- package/dist/commands/pr/internal/sync.d.ts +32 -0
- package/dist/commands/pr/internal/sync.d.ts.map +1 -0
- package/dist/commands/pr/internal/sync.js +258 -0
- package/dist/commands/pr/note.d.ts.map +1 -1
- package/dist/commands/pr/note.js +37 -4
- package/dist/commands/pr/open.d.ts.map +1 -1
- package/dist/commands/pr/open.js +7 -54
- package/dist/commands/pr/pr.command.d.ts.map +1 -1
- package/dist/commands/pr/pr.command.js +6 -3
- package/dist/commands/pr/update.d.ts.map +1 -1
- package/dist/commands/pr/update.js +5 -79
- package/dist/commands/recipes/impl/commands/cache-prune.d.ts.map +1 -1
- package/dist/commands/recipes/impl/commands/cache-prune.js +14 -0
- package/dist/commands/recipes/impl/commands/install.js +1 -1
- package/dist/commands/recipes/impl/commands/list-remote.d.ts.map +1 -1
- package/dist/commands/recipes/impl/commands/list-remote.js +1 -0
- package/dist/commands/recipes/impl/commands/remove.d.ts.map +1 -1
- package/dist/commands/recipes/impl/commands/remove.js +9 -1
- package/dist/commands/release/apply.command.d.ts.map +1 -1
- package/dist/commands/release/apply.command.js +9 -0
- package/dist/commands/shared/approval-requirements.d.ts +5 -7
- package/dist/commands/shared/approval-requirements.d.ts.map +1 -1
- package/dist/commands/shared/approval-requirements.js +3 -73
- package/dist/commands/shared/network-approval.d.ts +2 -0
- package/dist/commands/shared/network-approval.d.ts.map +1 -1
- package/dist/commands/shared/network-approval.js +1 -1
- package/dist/commands/shared/pr-meta.d.ts +9 -0
- package/dist/commands/shared/pr-meta.d.ts.map +1 -1
- package/dist/commands/shared/pr-meta.js +27 -3
- package/dist/commands/shared/task-backend.d.ts +2 -0
- package/dist/commands/shared/task-backend.d.ts.map +1 -1
- package/dist/commands/shared/task-local-freshness.d.ts +13 -0
- package/dist/commands/shared/task-local-freshness.d.ts.map +1 -0
- package/dist/commands/shared/task-local-freshness.js +20 -0
- package/dist/commands/shared/task-mutation.d.ts +2 -0
- package/dist/commands/shared/task-mutation.d.ts.map +1 -1
- package/dist/commands/shared/task-mutation.js +7 -0
- package/dist/commands/task/block.d.ts.map +1 -1
- package/dist/commands/task/block.js +1 -0
- package/dist/commands/task/close-shared.d.ts.map +1 -1
- package/dist/commands/task/close-shared.js +1 -0
- package/dist/commands/task/finish-shared.d.ts.map +1 -1
- package/dist/commands/task/finish-shared.js +5 -2
- package/dist/commands/task/finish.d.ts.map +1 -1
- package/dist/commands/task/finish.js +24 -0
- package/dist/commands/task/new.d.ts.map +1 -1
- package/dist/commands/task/new.js +69 -29
- package/dist/commands/task/set-status.d.ts.map +1 -1
- package/dist/commands/task/set-status.js +1 -0
- package/dist/commands/task/shared/transition-command.d.ts +2 -0
- package/dist/commands/task/shared/transition-command.d.ts.map +1 -1
- package/dist/commands/task/shared/transition-command.js +1 -0
- package/dist/commands/task/start-ready.d.ts.map +1 -1
- package/dist/commands/task/start-ready.js +12 -1
- package/dist/commands/task/start.d.ts.map +1 -1
- package/dist/commands/task/start.js +11 -0
- package/dist/commands/task/verify-record.d.ts.map +1 -1
- package/dist/commands/task/verify-record.js +27 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +6 -1
- package/dist/policy/engine.d.ts +3 -1
- package/dist/policy/engine.d.ts.map +1 -1
- package/dist/policy/engine.js +5 -6
- package/dist/policy/taxonomy.d.ts +17 -0
- package/dist/policy/taxonomy.d.ts.map +1 -0
- package/dist/policy/taxonomy.js +302 -0
- package/dist/policy/types.d.ts +2 -1
- package/dist/policy/types.d.ts.map +1 -1
- package/dist/runner/artifacts.d.ts.map +1 -1
- package/dist/runner/artifacts.js +2 -0
- package/dist/runner/context/base-prompts.d.ts +25 -0
- package/dist/runner/context/base-prompts.d.ts.map +1 -1
- package/dist/runner/context/base-prompts.js +182 -54
- package/dist/runner/context/recipe-context.d.ts.map +1 -1
- package/dist/runner/context/recipe-context.js +5 -0
- package/dist/runner/types.d.ts +12 -0
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/runner/usecases/scenario-materialize-task.d.ts.map +1 -1
- package/dist/runner/usecases/scenario-materialize-task.js +81 -11
- package/dist/runner/usecases/task-run-inspect.d.ts.map +1 -1
- package/dist/runner/usecases/task-run-inspect.js +9 -7
- package/dist/runner/usecases/task-run-lifecycle-shared.d.ts.map +1 -1
- package/dist/runner/usecases/task-run-lifecycle-shared.js +8 -6
- package/dist/runner/usecases/task-run.d.ts.map +1 -1
- package/dist/runner/usecases/task-run.js +59 -12
- package/dist/runtime/approvals/index.d.ts +3 -0
- package/dist/runtime/approvals/index.d.ts.map +1 -0
- package/dist/runtime/approvals/index.js +1 -0
- package/dist/runtime/approvals/runtime.d.ts +12 -0
- package/dist/runtime/approvals/runtime.d.ts.map +1 -0
- package/dist/runtime/approvals/runtime.js +154 -0
- package/dist/runtime/approvals/types.d.ts +31 -0
- package/dist/runtime/approvals/types.d.ts.map +1 -0
- package/dist/runtime/approvals/types.js +1 -0
- package/dist/runtime/behavior/index.d.ts +3 -0
- package/dist/runtime/behavior/index.d.ts.map +1 -0
- package/dist/runtime/behavior/index.js +1 -0
- package/dist/runtime/behavior/resolve.d.ts +7 -0
- package/dist/runtime/behavior/resolve.d.ts.map +1 -0
- package/dist/runtime/behavior/resolve.js +66 -0
- package/dist/runtime/behavior/types.d.ts +25 -0
- package/dist/runtime/behavior/types.d.ts.map +1 -0
- package/dist/runtime/behavior/types.js +1 -0
- package/dist/runtime/capabilities/backend.d.ts +7 -0
- package/dist/runtime/capabilities/backend.d.ts.map +1 -0
- package/dist/runtime/capabilities/backend.js +104 -0
- package/dist/runtime/capabilities/index.d.ts +6 -0
- package/dist/runtime/capabilities/index.d.ts.map +1 -0
- package/dist/runtime/capabilities/index.js +4 -0
- package/dist/runtime/capabilities/recipe.d.ts +10 -0
- package/dist/runtime/capabilities/recipe.d.ts.map +1 -0
- package/dist/runtime/capabilities/recipe.js +123 -0
- package/dist/runtime/capabilities/registry.d.ts +6 -0
- package/dist/runtime/capabilities/registry.d.ts.map +1 -0
- package/dist/runtime/capabilities/registry.js +69 -0
- package/dist/runtime/capabilities/runner.d.ts +8 -0
- package/dist/runtime/capabilities/runner.d.ts.map +1 -0
- package/dist/runtime/capabilities/runner.js +73 -0
- package/dist/runtime/capabilities/types.d.ts +28 -0
- package/dist/runtime/capabilities/types.d.ts.map +1 -0
- package/dist/runtime/capabilities/types.js +1 -0
- package/dist/runtime/execution-profile/index.d.ts +3 -0
- package/dist/runtime/execution-profile/index.d.ts.map +1 -0
- package/dist/runtime/execution-profile/index.js +1 -0
- package/dist/runtime/execution-profile/resolve.d.ts +9 -0
- package/dist/runtime/execution-profile/resolve.d.ts.map +1 -0
- package/dist/runtime/execution-profile/resolve.js +80 -0
- package/dist/runtime/execution-profile/types.d.ts +27 -0
- package/dist/runtime/execution-profile/types.d.ts.map +1 -0
- package/dist/runtime/execution-profile/types.js +1 -0
- package/dist/runtime/explain/index.d.ts +3 -0
- package/dist/runtime/explain/index.d.ts.map +1 -0
- package/dist/runtime/explain/index.js +1 -0
- package/dist/runtime/explain/resolve.d.ts +14 -0
- package/dist/runtime/explain/resolve.d.ts.map +1 -0
- package/dist/runtime/explain/resolve.js +50 -0
- package/dist/runtime/explain/types.d.ts +28 -0
- package/dist/runtime/explain/types.d.ts.map +1 -0
- package/dist/runtime/explain/types.js +1 -0
- package/dist/runtime/harness/index.d.ts +4 -0
- package/dist/runtime/harness/index.d.ts.map +1 -0
- package/dist/runtime/harness/index.js +2 -0
- package/dist/runtime/harness/resolve-from-command-context.d.ts +4 -0
- package/dist/runtime/harness/resolve-from-command-context.d.ts.map +1 -0
- package/dist/runtime/harness/resolve-from-command-context.js +11 -0
- package/dist/runtime/harness/resolve.d.ts +13 -0
- package/dist/runtime/harness/resolve.d.ts.map +1 -0
- package/dist/runtime/harness/resolve.js +146 -0
- package/dist/runtime/harness/types.d.ts +65 -0
- package/dist/runtime/harness/types.d.ts.map +1 -0
- package/dist/runtime/harness/types.js +1 -0
- package/dist/runtime/incidents/index.d.ts +3 -0
- package/dist/runtime/incidents/index.d.ts.map +1 -0
- package/dist/runtime/incidents/index.js +1 -0
- package/dist/runtime/incidents/resolve.d.ts +26 -0
- package/dist/runtime/incidents/resolve.d.ts.map +1 -0
- package/dist/runtime/incidents/resolve.js +437 -0
- package/dist/runtime/incidents/types.d.ts +72 -0
- package/dist/runtime/incidents/types.d.ts.map +1 -0
- package/dist/runtime/incidents/types.js +1 -0
- package/dist/runtime/protocol/index.d.ts +3 -0
- package/dist/runtime/protocol/index.d.ts.map +1 -0
- package/dist/runtime/protocol/index.js +2 -0
- package/dist/runtime/protocol/resolve.d.ts +16 -0
- package/dist/runtime/protocol/resolve.d.ts.map +1 -0
- package/dist/runtime/protocol/resolve.js +36 -0
- package/dist/runtime/protocol/types.d.ts +36 -0
- package/dist/runtime/protocol/types.d.ts.map +1 -0
- package/dist/runtime/protocol/types.js +1 -0
- package/dist/runtime/task-intake/index.d.ts +3 -0
- package/dist/runtime/task-intake/index.d.ts.map +1 -0
- package/dist/runtime/task-intake/index.js +1 -0
- package/dist/runtime/task-intake/resolve.d.ts +48 -0
- package/dist/runtime/task-intake/resolve.d.ts.map +1 -0
- package/dist/runtime/task-intake/resolve.js +316 -0
- package/dist/runtime/task-intake/types.d.ts +117 -0
- package/dist/runtime/task-intake/types.d.ts.map +1 -0
- package/dist/runtime/task-intake/types.js +1 -0
- package/dist/shared/protected-paths.d.ts +4 -0
- package/dist/shared/protected-paths.d.ts.map +1 -1
- package/dist/shared/protected-paths.js +4 -4
- package/dist/usecases/context/resolve-context.d.ts +55 -6
- package/dist/usecases/context/resolve-context.d.ts.map +1 -1
- package/dist/usecases/context/resolve-context.js +96 -6
- package/dist/usecases/task/task-list-usecase.d.ts.map +1 -1
- package/dist/usecases/task/task-list-usecase.js +8 -2
- package/dist/usecases/task/task-new-usecase.js +4 -4
- package/package.json +2 -2
|
@@ -9,6 +9,7 @@ export type BootstrapSection = {
|
|
|
9
9
|
export declare const BOOTSTRAP_PREFLIGHT_COMMANDS: readonly [string, string, string, "git status --short --untracked-files=no", "git rev-parse --abbrev-ref HEAD"];
|
|
10
10
|
export declare const BOOTSTRAP_TASK_PREP_COMMANDS: string[];
|
|
11
11
|
export declare const BOOTSTRAP_DIRECT_HAPPY_PATH_COMMANDS: readonly [...string[], string, string, string, "agentplane finish <task-id> --author <ROLE> --body \"Verified: ...\" --result \"...\" --commit <git-rev>"];
|
|
12
|
+
export declare const BOOTSTRAP_VERIFICATION_COMMANDS: readonly [string, string, string, `${string} --check`, "agentplane doctor", "node .agentplane/policy/check-routing.mjs"];
|
|
12
13
|
export declare const BOOTSTRAP_RECOVERY_COMMANDS: readonly ["agentplane doctor", "agentplane upgrade --dry-run", "agentplane upgrade"];
|
|
13
14
|
export declare const BOOTSTRAP_SECTIONS: readonly BootstrapSection[];
|
|
14
15
|
export declare function renderBootstrapReferenceLine(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-guide.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap-guide.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,4CAA4C,CAAC;AAClF,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,iHAM/B,CAAC;AAEX,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,oCAAoC,4JAMvC,CAAC;AAEX,eAAO,MAAM,2BAA2B,sFAI9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"bootstrap-guide.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap-guide.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,4CAA4C,CAAC;AAClF,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,iHAM/B,CAAC;AAEX,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,oCAAoC,4JAMvC,CAAC;AAEX,eAAO,MAAM,+BAA+B,0HAOlC,CAAC;AAEX,eAAO,MAAM,2BAA2B,sFAI9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EA+ChD,CAAC;AAEX,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAiB3F;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CA2B3C"}
|
|
@@ -20,6 +20,14 @@ export const BOOTSTRAP_DIRECT_HAPPY_PATH_COMMANDS = [
|
|
|
20
20
|
COMMAND_SNIPPETS.core.verifyTask,
|
|
21
21
|
'agentplane finish <task-id> --author <ROLE> --body "Verified: ..." --result "..." --commit <git-rev>',
|
|
22
22
|
];
|
|
23
|
+
export const BOOTSTRAP_VERIFICATION_COMMANDS = [
|
|
24
|
+
COMMAND_SNIPPETS.core.taskVerifyShow,
|
|
25
|
+
COMMAND_SNIPPETS.core.verifyTask,
|
|
26
|
+
COMMAND_SNIPPETS.core.incidentsAdvise,
|
|
27
|
+
`${COMMAND_SNIPPETS.core.incidentsCollect} --check`,
|
|
28
|
+
"agentplane doctor",
|
|
29
|
+
"node .agentplane/policy/check-routing.mjs",
|
|
30
|
+
];
|
|
23
31
|
export const BOOTSTRAP_RECOVERY_COMMANDS = [
|
|
24
32
|
"agentplane doctor",
|
|
25
33
|
"agentplane upgrade --dry-run",
|
|
@@ -49,7 +57,17 @@ export const BOOTSTRAP_SECTIONS = [
|
|
|
49
57
|
],
|
|
50
58
|
},
|
|
51
59
|
{
|
|
52
|
-
heading: "3.
|
|
60
|
+
heading: "3. Verification and incident reuse",
|
|
61
|
+
summary: "Reuse historical incident advice only through targeted lookup, and validate promotable external incident candidates before `finish`.",
|
|
62
|
+
commands: BOOTSTRAP_VERIFICATION_COMMANDS,
|
|
63
|
+
notes: [
|
|
64
|
+
"Use `agentplane incidents advise <task-id>` after `start-ready` when analogous scope or tags might have prior external failure modes.",
|
|
65
|
+
"Use `agentplane incidents collect <task-id> --check` before `finish` when task `Findings` contains reusable external `incident-candidate` blocks.",
|
|
66
|
+
"Keep repository-fixable defects task-local; only external or process incidents belong in `.agentplane/policy/incidents.md`.",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
heading: "4. Fallbacks and recovery",
|
|
53
71
|
summary: "Keep exceptional paths out of the normal route: use these only for recovery, framework upgrades, or branch_pr work.",
|
|
54
72
|
commands: BOOTSTRAP_RECOVERY_COMMANDS,
|
|
55
73
|
notes: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-invocations.d.ts","sourceRoot":"","sources":["../../src/cli/command-invocations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-invocations.d.ts","sourceRoot":"","sources":["../../src/cli/command-invocations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA+BhD,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAE1E;AAED,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAMvE"}
|
|
@@ -4,6 +4,8 @@ const COMMAND_INVOCATIONS = new Map([
|
|
|
4
4
|
"finish",
|
|
5
5
|
'agentplane finish <task-id> --author <ROLE> --body "Verified: ..." --commit <git-rev>',
|
|
6
6
|
],
|
|
7
|
+
["incidents advise", "agentplane incidents advise <task-id>"],
|
|
8
|
+
["incidents collect", "agentplane incidents collect <task-id>"],
|
|
7
9
|
["init", "agentplane init"],
|
|
8
10
|
["preflight", "agentplane preflight"],
|
|
9
11
|
["quickstart", "agentplane quickstart"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-snippets.d.ts","sourceRoot":"","sources":["../../src/cli/command-snippets.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"command-snippets.d.ts","sourceRoot":"","sources":["../../src/cli/command-snippets.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnB,CAAC"}
|
|
@@ -3,6 +3,8 @@ const invoke = (id) => requireCanonicalCommandInvocation(id);
|
|
|
3
3
|
export const COMMAND_SNIPPETS = {
|
|
4
4
|
core: {
|
|
5
5
|
configShow: invoke(["config", "show"]),
|
|
6
|
+
incidentsAdvise: invoke(["incidents", "advise"]),
|
|
7
|
+
incidentsCollect: invoke(["incidents", "collect"]),
|
|
6
8
|
taskList: invoke(["task", "list"]),
|
|
7
9
|
taskShow: invoke(["task", "show"]),
|
|
8
10
|
taskNew: invoke(["task", "new"]),
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type CommandEntry } from "./shared.js";
|
|
2
|
-
export declare const CORE_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
2
|
+
export declare const CORE_COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
3
3
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/command-catalog/core.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,aAAa,qYAiOkB,CAAC"}
|
|
@@ -5,6 +5,9 @@ import { workflowBuildSpec } from "../../../commands/workflow-build.command.js";
|
|
|
5
5
|
import { workflowSpec } from "../../../commands/workflow.command.js";
|
|
6
6
|
import { workflowDebugSpec, workflowLandSpec, workflowSyncSpec, } from "../../../commands/workflow-playbook.command.js";
|
|
7
7
|
import { workflowRestoreSpec } from "../../../commands/workflow-restore.command.js";
|
|
8
|
+
import { incidentsAdviseSpec } from "../../../commands/incidents/advise.command.js";
|
|
9
|
+
import { incidentsCollectSpec } from "../../../commands/incidents/collect.command.js";
|
|
10
|
+
import { incidentsSpec } from "../../../commands/incidents/incidents.command.js";
|
|
8
11
|
import { releaseApplySpec } from "../../../commands/release/apply.command.js";
|
|
9
12
|
import { releasePlanSpec } from "../../../commands/release/plan.command.js";
|
|
10
13
|
import { releaseSpec } from "../../../commands/release/release.command.js";
|
|
@@ -66,6 +69,13 @@ export const CORE_COMMANDS = [
|
|
|
66
69
|
needsLoadedConfig: false,
|
|
67
70
|
needsTaskContext: false,
|
|
68
71
|
}),
|
|
72
|
+
entry(incidentsSpec, () => import("../../../commands/incidents/incidents.command.js").then((m) => m.runIncidents), {
|
|
73
|
+
needsProject: false,
|
|
74
|
+
needsLoadedConfig: false,
|
|
75
|
+
needsTaskContext: false,
|
|
76
|
+
}),
|
|
77
|
+
entry(incidentsCollectSpec, (deps) => import("../../../commands/incidents/collect.command.js").then((m) => m.makeRunIncidentsCollectHandler(deps.getCtx))),
|
|
78
|
+
entry(incidentsAdviseSpec, (deps) => import("../../../commands/incidents/advise.command.js").then((m) => m.makeRunIncidentsAdviseHandler(deps.getCtx))),
|
|
69
79
|
entry(roleSpec, () => import("../commands/core/role.js").then((m) => m.runRole), {
|
|
70
80
|
needsProject: false,
|
|
71
81
|
needsLoadedConfig: false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CommandId } from "../spec/spec.js";
|
|
2
2
|
import type { CommandEntry } from "./command-catalog/shared.js";
|
|
3
3
|
export type { CommandEntry, RunDeps } from "./command-catalog/shared.js";
|
|
4
|
-
export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
4
|
+
export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
5
5
|
export type CatalogMatch = {
|
|
6
6
|
entry: (typeof COMMANDS)[number];
|
|
7
7
|
consumed: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAOhE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAOhE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,qsDAKuB,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAYlF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAGlF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,YAAY,GAAG,IAAI,CAEnE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,YAAY,EAAE,CAE9F;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,GAAE,SAAc,GAAG,SAAS,MAAM,EAAE,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAM1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAMxD,CAAC;AAcF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAExF;AAmCD,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,eAAe,CAgBtD,CAAC;AAyCF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAStF;AAED,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAMlD,CAAC;AAcF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAElF;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAgBlD,CAAC;AAoCF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAQlF;AAED,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AA4C5C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAoBxD,CAAC;AAuCF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAQxF"}
|
|
@@ -4,6 +4,7 @@ import { buildExecutionProfile, loadConfig, saveConfig, setByDottedKey } from "@
|
|
|
4
4
|
import { createCliEmitter } from "../../output.js";
|
|
5
5
|
import { usageError } from "../../spec/errors.js";
|
|
6
6
|
import { ensureWorkflowArtifacts } from "../../../shared/workflow-artifacts.js";
|
|
7
|
+
import { ensureActionApproved } from "../../../commands/shared/approval-requirements.js";
|
|
7
8
|
import { wrapCommand } from "./wrap-command.js";
|
|
8
9
|
const output = createCliEmitter();
|
|
9
10
|
export const configShowSpec = {
|
|
@@ -76,6 +77,12 @@ async function cmdConfigSet(opts) {
|
|
|
76
77
|
}, async () => {
|
|
77
78
|
const resolved = await opts.deps.getResolvedProject("config set");
|
|
78
79
|
const loaded = await opts.deps.getLoadedConfig("config set");
|
|
80
|
+
await ensureActionApproved({
|
|
81
|
+
action: "config_write",
|
|
82
|
+
config: loaded.config,
|
|
83
|
+
yes: false,
|
|
84
|
+
reason: `config set ${opts.key}`,
|
|
85
|
+
});
|
|
79
86
|
const raw = { ...loaded.raw };
|
|
80
87
|
setByDottedKey(raw, opts.key, opts.value);
|
|
81
88
|
await saveConfig(resolved.agentplaneDir, raw);
|
|
@@ -140,6 +147,12 @@ async function cmdModeSet(opts) {
|
|
|
140
147
|
}, async () => {
|
|
141
148
|
const resolved = await opts.deps.getResolvedProject("mode set");
|
|
142
149
|
const loaded = await opts.deps.getLoadedConfig("mode set");
|
|
150
|
+
await ensureActionApproved({
|
|
151
|
+
action: "config_write",
|
|
152
|
+
config: loaded.config,
|
|
153
|
+
yes: false,
|
|
154
|
+
reason: `mode set ${opts.mode}`,
|
|
155
|
+
});
|
|
143
156
|
const raw = { ...loaded.raw };
|
|
144
157
|
setByDottedKey(raw, "workflow_mode", opts.mode);
|
|
145
158
|
await saveConfig(resolved.agentplaneDir, raw);
|
package/dist/cli/run-cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { mapCoreError } from "./error-map.js";
|
|
|
3
3
|
import { exitCodeForError } from "./exit-codes.js";
|
|
4
4
|
import { loadDotEnv } from "../shared/env.js";
|
|
5
5
|
import { CliError } from "../shared/errors.js";
|
|
6
|
-
import {
|
|
6
|
+
import { resolveCommandContext } from "../usecases/context/resolve-context.js";
|
|
7
7
|
import { getVersion } from "../meta/version.js";
|
|
8
8
|
import { getApprovalRequirements } from "../commands/shared/approval-requirements.js";
|
|
9
9
|
import { parseCommandArgv } from "./spec/parse.js";
|
|
@@ -110,7 +110,7 @@ export async function runCli(argv) {
|
|
|
110
110
|
ctxPromise ??= (async () => {
|
|
111
111
|
const resolvedProject = await getResolvedProject(commandForErrorContext);
|
|
112
112
|
const loadedConfig = await getLoadedConfig(commandForErrorContext);
|
|
113
|
-
return await
|
|
113
|
+
return await resolveCommandContext({
|
|
114
114
|
cwd,
|
|
115
115
|
rootOverride: globals.root ?? null,
|
|
116
116
|
resolvedProject,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAInF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAInF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ClB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ClB;AAED,wBAAsB,qCAAqC,CAAC,IAAI,EAAE;IAChE,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,kCAAkC,CAAC;CAC3C,GAAG,OAAO,CAAC,MAAM,CAAC,CA0DlB;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,oBAAoB,CAAC;CAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,CAiElB"}
|
package/dist/commands/backend.js
CHANGED
|
@@ -28,6 +28,7 @@ export async function cmdBackendSyncParsed(opts) {
|
|
|
28
28
|
}
|
|
29
29
|
if (backendId !== "local") {
|
|
30
30
|
await ensureNetworkApproved({
|
|
31
|
+
action: "backend_sync",
|
|
31
32
|
config,
|
|
32
33
|
yes: opts.flags.yes,
|
|
33
34
|
reason: `backend sync may access the network (backend: ${backendId})`,
|
|
@@ -71,6 +72,7 @@ export async function cmdSyncParsed(opts) {
|
|
|
71
72
|
}
|
|
72
73
|
if (backendId !== "local") {
|
|
73
74
|
await ensureNetworkApproved({
|
|
75
|
+
action: "backend_sync",
|
|
74
76
|
config,
|
|
75
77
|
yes: opts.flags.yes,
|
|
76
78
|
reason: `sync may access the network (backend: ${backendId})`,
|
|
@@ -117,6 +119,7 @@ export async function cmdBackendMigrateCanonicalStateParsed(opts) {
|
|
|
117
119
|
}
|
|
118
120
|
if (backendId !== "local") {
|
|
119
121
|
await ensureNetworkApproved({
|
|
122
|
+
action: "backend_migrate_canonical_state",
|
|
120
123
|
config,
|
|
121
124
|
yes: opts.flags.yes,
|
|
122
125
|
reason: `backend migrate-canonical-state may access the network (backend: ${backendId})`,
|
|
@@ -170,6 +173,7 @@ export async function cmdBackendInspectParsed(opts) {
|
|
|
170
173
|
}
|
|
171
174
|
if (backendId !== "local") {
|
|
172
175
|
await ensureNetworkApproved({
|
|
176
|
+
action: "backend_inspect",
|
|
173
177
|
config,
|
|
174
178
|
yes: opts.flags.yes,
|
|
175
179
|
reason: `backend inspect may access the network (backend: ${backendId})`,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CommandCtx, CommandSpec } from "../../cli/spec/spec.js";
|
|
2
|
+
import { type CommandContext } from "../shared/task-backend.js";
|
|
3
|
+
type IncidentsAdviseParsed = {
|
|
4
|
+
taskId: string | null;
|
|
5
|
+
scope: string | null;
|
|
6
|
+
title: string | null;
|
|
7
|
+
description: string | null;
|
|
8
|
+
tags: string[];
|
|
9
|
+
limit: number;
|
|
10
|
+
json: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare const incidentsAdviseSpec: CommandSpec<IncidentsAdviseParsed>;
|
|
13
|
+
export declare function makeRunIncidentsAdviseHandler(getCtx: (cmd: string) => Promise<CommandContext>): (ctx: CommandCtx, p: IncidentsAdviseParsed) => Promise<number>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=advise.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advise.command.d.ts","sourceRoot":"","sources":["../../../src/commands/incidents/advise.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQtE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGpF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CA6ElE,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,IAC9E,KAAK,UAAU,EAAE,GAAG,qBAAqB,KAAG,OAAO,CAAC,MAAM,CAAC,CA2D1E"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { createCliEmitter } from "../../cli/output.js";
|
|
2
|
+
import { usageError } from "../../cli/spec/errors.js";
|
|
3
|
+
import { buildIncidentAdviceQueryFromTask, renderIncidentAdvice, resolveIncidentAdviceMatches, } from "../../runtime/incidents/index.js";
|
|
4
|
+
import { loadCommandContext } from "../shared/task-backend.js";
|
|
5
|
+
import { adviseTaskIncidents, loadIncidentRegistry } from "./shared.js";
|
|
6
|
+
const output = createCliEmitter();
|
|
7
|
+
export const incidentsAdviseSpec = {
|
|
8
|
+
id: ["incidents", "advise"],
|
|
9
|
+
group: "Policy",
|
|
10
|
+
summary: "Resolve relevant incident advice for a task or an ad hoc scope/tag query.",
|
|
11
|
+
args: [{ name: "task-id", required: false, valueHint: "<task-id>" }],
|
|
12
|
+
options: [
|
|
13
|
+
{
|
|
14
|
+
kind: "string",
|
|
15
|
+
name: "scope",
|
|
16
|
+
valueHint: "<text>",
|
|
17
|
+
description: "Ad hoc scope text when querying without a task id.",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
kind: "string",
|
|
21
|
+
name: "title",
|
|
22
|
+
valueHint: "<text>",
|
|
23
|
+
description: "Optional title text for ad hoc advice lookup.",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
kind: "string",
|
|
27
|
+
name: "description",
|
|
28
|
+
valueHint: "<text>",
|
|
29
|
+
description: "Optional description text for ad hoc advice lookup.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
kind: "string",
|
|
33
|
+
name: "tag",
|
|
34
|
+
valueHint: "<tag>",
|
|
35
|
+
repeatable: true,
|
|
36
|
+
description: "Matching tag for ad hoc advice lookup; repeat as needed.",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
kind: "string",
|
|
40
|
+
name: "limit",
|
|
41
|
+
valueHint: "<n>",
|
|
42
|
+
default: "5",
|
|
43
|
+
coerce: (raw) => Number.parseInt(raw, 10),
|
|
44
|
+
description: "Maximum number of advice entries to show.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
kind: "boolean",
|
|
48
|
+
name: "json",
|
|
49
|
+
default: false,
|
|
50
|
+
description: "Emit machine-readable advice matches.",
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
validateRaw: (raw) => {
|
|
54
|
+
const taskId = typeof raw.args["task-id"] === "string" ? raw.args["task-id"].trim() : "";
|
|
55
|
+
const scope = typeof raw.opts.scope === "string" ? raw.opts.scope.trim() : "";
|
|
56
|
+
const title = typeof raw.opts.title === "string" ? raw.opts.title.trim() : "";
|
|
57
|
+
const description = typeof raw.opts.description === "string" ? raw.opts.description.trim() : "";
|
|
58
|
+
const tags = Array.isArray(raw.opts.tag) ? raw.opts.tag : [];
|
|
59
|
+
if (!taskId && !scope && !title && !description && tags.length === 0) {
|
|
60
|
+
throw usageError({
|
|
61
|
+
spec: incidentsAdviseSpec,
|
|
62
|
+
message: "Provide either <task-id> or at least one of --scope/--title/--description/--tag.",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
parse: (raw) => ({
|
|
67
|
+
taskId: typeof raw.args["task-id"] === "string" && String(raw.args["task-id"]).trim()
|
|
68
|
+
? String(raw.args["task-id"]).trim()
|
|
69
|
+
: null,
|
|
70
|
+
scope: typeof raw.opts.scope === "string" ? String(raw.opts.scope).trim() : null,
|
|
71
|
+
title: typeof raw.opts.title === "string" ? String(raw.opts.title).trim() : null,
|
|
72
|
+
description: typeof raw.opts.description === "string" ? String(raw.opts.description).trim() : null,
|
|
73
|
+
tags: Array.isArray(raw.opts.tag)
|
|
74
|
+
? raw.opts.tag.map((value) => String(value).trim()).filter(Boolean)
|
|
75
|
+
: [],
|
|
76
|
+
limit: typeof raw.opts.limit === "number" && Number.isInteger(raw.opts.limit) && raw.opts.limit > 0
|
|
77
|
+
? Number(raw.opts.limit)
|
|
78
|
+
: 5,
|
|
79
|
+
json: raw.opts.json === true,
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
export function makeRunIncidentsAdviseHandler(getCtx) {
|
|
83
|
+
return async (ctx, p) => {
|
|
84
|
+
const commandContext = (await getCtx("incidents advise")) ??
|
|
85
|
+
(await loadCommandContext({ cwd: ctx.cwd, rootOverride: ctx.rootOverride ?? null }));
|
|
86
|
+
if (p.taskId) {
|
|
87
|
+
const result = await adviseTaskIncidents({
|
|
88
|
+
ctx: commandContext,
|
|
89
|
+
taskId: p.taskId,
|
|
90
|
+
limit: p.limit,
|
|
91
|
+
});
|
|
92
|
+
if (p.json) {
|
|
93
|
+
output.json({
|
|
94
|
+
task_id: p.taskId,
|
|
95
|
+
matches: result.matches.map((match) => ({
|
|
96
|
+
score: match.score,
|
|
97
|
+
matched_tags: match.matchedTags,
|
|
98
|
+
matched_terms: match.matchedTerms,
|
|
99
|
+
scope_matched: match.scopeMatched,
|
|
100
|
+
entry: match.entry,
|
|
101
|
+
})),
|
|
102
|
+
});
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
output.line(`Incident advice for ${p.taskId}:`);
|
|
106
|
+
output.line(renderIncidentAdvice(result.matches));
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
const registry = await loadIncidentRegistry(commandContext);
|
|
110
|
+
const query = buildIncidentAdviceQueryFromTask({
|
|
111
|
+
taskId: "adhoc",
|
|
112
|
+
title: p.title ?? p.scope ?? "",
|
|
113
|
+
description: p.description ?? "",
|
|
114
|
+
scope: p.scope,
|
|
115
|
+
tags: p.tags,
|
|
116
|
+
});
|
|
117
|
+
const matches = resolveIncidentAdviceMatches({
|
|
118
|
+
query,
|
|
119
|
+
registry: registry.registry,
|
|
120
|
+
limit: p.limit,
|
|
121
|
+
});
|
|
122
|
+
if (p.json) {
|
|
123
|
+
output.json({
|
|
124
|
+
query,
|
|
125
|
+
matches: matches.map((match) => ({
|
|
126
|
+
score: match.score,
|
|
127
|
+
matched_tags: match.matchedTags,
|
|
128
|
+
matched_terms: match.matchedTerms,
|
|
129
|
+
scope_matched: match.scopeMatched,
|
|
130
|
+
entry: match.entry,
|
|
131
|
+
})),
|
|
132
|
+
});
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
135
|
+
output.line("Incident advice:");
|
|
136
|
+
output.line(renderIncidentAdvice(matches));
|
|
137
|
+
return 0;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CommandCtx, CommandSpec } from "../../cli/spec/spec.js";
|
|
2
|
+
import { type CommandContext } from "../shared/task-backend.js";
|
|
3
|
+
type IncidentsCollectParsed = {
|
|
4
|
+
taskId: string;
|
|
5
|
+
check: boolean;
|
|
6
|
+
json: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const incidentsCollectSpec: CommandSpec<IncidentsCollectParsed>;
|
|
9
|
+
export declare function makeRunIncidentsCollectHandler(getCtx: (cmd: string) => Promise<CommandContext>): (ctx: CommandCtx, p: IncidentsCollectParsed) => Promise<number>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=collect.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect.command.d.ts","sourceRoot":"","sources":["../../../src/commands/incidents/collect.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGpF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,sBAAsB,CAoCpE,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,IAC/E,KAAK,UAAU,EAAE,GAAG,sBAAsB,KAAG,OAAO,CAAC,MAAM,CAAC,CA+B3E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { createCliEmitter } from "../../cli/output.js";
|
|
2
|
+
import { loadCommandContext } from "../shared/task-backend.js";
|
|
3
|
+
import { collectTaskIncidents } from "./shared.js";
|
|
4
|
+
const output = createCliEmitter();
|
|
5
|
+
export const incidentsCollectSpec = {
|
|
6
|
+
id: ["incidents", "collect"],
|
|
7
|
+
group: "Policy",
|
|
8
|
+
summary: "Promote structured external incident-candidates from a task into the incident registry.",
|
|
9
|
+
args: [{ name: "task-id", required: true, valueHint: "<task-id>" }],
|
|
10
|
+
options: [
|
|
11
|
+
{
|
|
12
|
+
kind: "boolean",
|
|
13
|
+
name: "check",
|
|
14
|
+
default: false,
|
|
15
|
+
description: "Validate incident promotion inputs without writing `.agentplane/policy/incidents.md`.",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
kind: "boolean",
|
|
19
|
+
name: "json",
|
|
20
|
+
default: false,
|
|
21
|
+
description: "Emit machine-readable collection details.",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
examples: [
|
|
25
|
+
{
|
|
26
|
+
cmd: "agentplane incidents collect 202604031416-HEJWTM",
|
|
27
|
+
why: "Promote resolved external incident advice from task Findings into the shared registry.",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
cmd: "agentplane incidents collect 202604031416-HEJWTM --check --json",
|
|
31
|
+
why: "Validate that incident-candidate blocks are complete before finish.",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
parse: (raw) => ({
|
|
35
|
+
taskId: String(raw.args["task-id"] ?? ""),
|
|
36
|
+
check: raw.opts.check === true,
|
|
37
|
+
json: raw.opts.json === true,
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
export function makeRunIncidentsCollectHandler(getCtx) {
|
|
41
|
+
return async (ctx, p) => {
|
|
42
|
+
const commandContext = (await getCtx("incidents collect")) ??
|
|
43
|
+
(await loadCommandContext({ cwd: ctx.cwd, rootOverride: ctx.rootOverride ?? null }));
|
|
44
|
+
const result = await collectTaskIncidents({
|
|
45
|
+
ctx: commandContext,
|
|
46
|
+
taskId: p.taskId,
|
|
47
|
+
write: !p.check,
|
|
48
|
+
});
|
|
49
|
+
if (p.json) {
|
|
50
|
+
output.json({
|
|
51
|
+
task_id: p.taskId,
|
|
52
|
+
checked_only: p.check,
|
|
53
|
+
candidates: result.plan.candidates.length,
|
|
54
|
+
promotable: result.plan.promotable.map((item) => item.entry),
|
|
55
|
+
duplicates: result.plan.duplicates.map((item) => item.entry.id),
|
|
56
|
+
wrote: result.wrote,
|
|
57
|
+
registry_path: result.registryPath,
|
|
58
|
+
});
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
output.success(p.check ? "checked" : "collected", p.taskId, `candidates=${result.plan.candidates.length} promoted=${result.plan.promotable.length} duplicates=${result.plan.duplicates.length}`);
|
|
62
|
+
if (result.plan.promotable.length > 0 && !p.check) {
|
|
63
|
+
output.info(`Incident registry updated: ${result.registryPath}`);
|
|
64
|
+
}
|
|
65
|
+
return 0;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CommandHandler, CommandSpec } from "../../cli/spec/spec.js";
|
|
2
|
+
import { type GroupCommandParsed } from "../../cli/group-command.js";
|
|
3
|
+
export declare const incidentsSpec: CommandSpec<GroupCommandParsed>;
|
|
4
|
+
export declare const runIncidents: CommandHandler<GroupCommandParsed>;
|
|
5
|
+
//# sourceMappingURL=incidents.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incidents.command.d.ts","sourceRoot":"","sources":["../../../src/commands/incidents/incidents.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,kBAAkB,CAWzD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,kBAAkB,CAO3D,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { loadDirectSubcommandNames, parseGroupCommand, throwGroupCommandUsage, } from "../../cli/group-command.js";
|
|
2
|
+
export const incidentsSpec = {
|
|
3
|
+
id: ["incidents"],
|
|
4
|
+
group: "Policy",
|
|
5
|
+
summary: "Promote external incident advice and resolve incident hints for analogous tasks.",
|
|
6
|
+
synopsis: ["agentplane incidents <collect|advise> [args] [options]"],
|
|
7
|
+
args: [{ name: "cmd", required: false, variadic: true, valueHint: "<command>" }],
|
|
8
|
+
notes: [
|
|
9
|
+
"Use `incidents collect` to promote structured incident-candidate findings into `.agentplane/policy/incidents.md`.",
|
|
10
|
+
"Use `incidents advise` to query registry advice by task id or lightweight scope/tags.",
|
|
11
|
+
],
|
|
12
|
+
parse: (raw) => parseGroupCommand(raw),
|
|
13
|
+
};
|
|
14
|
+
export const runIncidents = async (_ctx, p) => {
|
|
15
|
+
throwGroupCommandUsage({
|
|
16
|
+
spec: incidentsSpec,
|
|
17
|
+
cmd: p.cmd,
|
|
18
|
+
subcommands: await loadDirectSubcommandNames(["incidents"]),
|
|
19
|
+
command: "incidents",
|
|
20
|
+
});
|
|
21
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { TaskData } from "../../backends/task-backend.js";
|
|
2
|
+
import { type IncidentAdviceMatch, type IncidentAdviceQuery, type IncidentCollectionPlan, type IncidentRegistry } from "../../runtime/incidents/index.js";
|
|
3
|
+
import type { CommandContext } from "../shared/task-backend.js";
|
|
4
|
+
export declare const INCIDENTS_POLICY_PATH = ".agentplane/policy/incidents.md";
|
|
5
|
+
export type LoadedTaskIncidents = {
|
|
6
|
+
task: TaskData;
|
|
7
|
+
findings: string;
|
|
8
|
+
scope: string | null;
|
|
9
|
+
query: IncidentAdviceQuery;
|
|
10
|
+
};
|
|
11
|
+
export declare function incidentRegistryPath(ctx: CommandContext): string;
|
|
12
|
+
export declare function loadIncidentRegistry(ctx: CommandContext): Promise<{
|
|
13
|
+
registryPath: string;
|
|
14
|
+
registryText: string;
|
|
15
|
+
registry: IncidentRegistry;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function loadTaskIncidents(ctx: CommandContext, taskId: string, taskOverride?: TaskData | null): Promise<LoadedTaskIncidents>;
|
|
18
|
+
export declare function formatIncidentCollectionIssues(taskId: string, plan: IncidentCollectionPlan): string;
|
|
19
|
+
export declare function collectTaskIncidents(opts: {
|
|
20
|
+
ctx: CommandContext;
|
|
21
|
+
taskId: string;
|
|
22
|
+
task?: TaskData | null;
|
|
23
|
+
write: boolean;
|
|
24
|
+
now?: Date;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
loaded: LoadedTaskIncidents;
|
|
27
|
+
registryPath: string;
|
|
28
|
+
registryText: string;
|
|
29
|
+
registry: IncidentRegistry;
|
|
30
|
+
plan: IncidentCollectionPlan;
|
|
31
|
+
wrote: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function adviseTaskIncidents(opts: {
|
|
34
|
+
ctx: CommandContext;
|
|
35
|
+
taskId: string;
|
|
36
|
+
task?: TaskData | null;
|
|
37
|
+
limit?: number;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
loaded: LoadedTaskIncidents;
|
|
40
|
+
matches: IncidentAdviceMatch[];
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/incidents/shared.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAOL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,CAAC;AAYF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAEhE;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC,CAQD;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,QAAQ,GAAG,IAAI,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAyB9B;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,GAC3B,MAAM,CAUR;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CA+BD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAAC,CAWD"}
|