pm-ts-starter 2026.7.6 → 2026.7.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/README.md +52 -2
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +348 -9
- package/dist/index.js.map +1 -1
- package/manifest.json +2 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# pm-ts-starter
|
|
2
2
|
|
|
3
|
-
TypeScript reference extension for [pm-cli](https://github.com/unbraind/pm-cli) covering **all 9 SDK capability types** in one fully-typed `index.ts
|
|
3
|
+
TypeScript reference extension for [pm-cli](https://github.com/unbraind/pm-cli) covering **all 9 SDK capability types** in one fully-typed `index.ts`, aligned to the **pm-cli 2026.7.6 SDK**.
|
|
4
4
|
|
|
5
5
|
Each capability is a small, SAFE, inert demo with teaching comments. Copy the
|
|
6
|
-
ones you need into your own extension and delete the rest.
|
|
6
|
+
ones you need into your own extension and delete the rest. The reference also
|
|
7
|
+
ships demo commands that integrate with the newer pm surfaces (plan, context,
|
|
8
|
+
search, history-compact) and a guided `ts-starter setup --interactive` onboarding.
|
|
7
9
|
|
|
8
10
|
---
|
|
9
11
|
|
|
@@ -53,6 +55,54 @@ pm ts-starter-demo import
|
|
|
53
55
|
pm ts-starter-demo export
|
|
54
56
|
```
|
|
55
57
|
|
|
58
|
+
The 2026.7.6 SDK accepts an optional third `options` argument
|
|
59
|
+
(`ImportExportRegistrationOptions`) that adds a full command definition
|
|
60
|
+
(description, flags, intent, examples, `failure_hints`, positional arguments)
|
|
61
|
+
to the auto-created command path — surfaced in help exactly like
|
|
62
|
+
`registerCommand`. This reference supplies it for both.
|
|
63
|
+
|
|
64
|
+
### New pm-feature integration demos
|
|
65
|
+
|
|
66
|
+
These demo commands shell out to the live `pm` binary (zero-runtime-coupling —
|
|
67
|
+
the extension never imports `@unbrained/pm-cli` at runtime) and return parsed
|
|
68
|
+
JSON, so an author can copy the wiring into a real extension that augments
|
|
69
|
+
these surfaces:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pm ts-starter plan-demo [--id <plan-id>] [--depth brief|standard|deep]
|
|
73
|
+
pm ts-starter context-demo [--format markdown|toon|json] [--depth brief|standard|deep]
|
|
74
|
+
pm ts-starter search-demo [--query <text>] [--limit <n>]
|
|
75
|
+
pm ts-starter history-compact-demo --id <item-id> # always --dry-run
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Guided setup
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
pm ts-starter setup # prints a non-interactive summary
|
|
82
|
+
pm ts-starter setup --interactive # prompted onboarding wizard (TTY only)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`--interactive` is skipped automatically when stdin is not a TTY, so the
|
|
86
|
+
command is safe to run in CI and tests.
|
|
87
|
+
|
|
88
|
+
### Typed arguments, `failure_hints`, and expected errors
|
|
89
|
+
|
|
90
|
+
Every `registerCommand` definition now carries:
|
|
91
|
+
|
|
92
|
+
- **`failure_hints`** — short, actionable strings surfaced to the CLI's
|
|
93
|
+
error-guidance layer when a command fails.
|
|
94
|
+
- **`arguments`** — typed positional argument definitions
|
|
95
|
+
(`ExtensionCommandArgumentDefinition`), so help output and runtime contracts
|
|
96
|
+
describe positional args, not just flags.
|
|
97
|
+
- **`value_type`** on every flag (`string` | `number` | `boolean`), the field
|
|
98
|
+
the 2026.7.6 SDK reads first (over the legacy `type`).
|
|
99
|
+
|
|
100
|
+
Command handlers throw **`PmCliExpectedError`-shaped errors** built locally
|
|
101
|
+
(`pmExpectedError`) rather than importing the CLI's error class at runtime.
|
|
102
|
+
The CLI recognises expected errors by `name === "PmCliError"`, so a locally
|
|
103
|
+
constructed error with `exitCode` + structured `context` exits cleanly with a
|
|
104
|
+
guided message instead of a stack trace.
|
|
105
|
+
|
|
56
106
|
## The `defineExtension` helper + zero-runtime-coupling pattern
|
|
57
107
|
|
|
58
108
|
`defineExtension` is the SDK's **typed identity helper** — it returns its argument
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
import type { PmCliExpectedError } from "@unbrained/pm-cli/sdk";
|
|
2
|
+
interface TsStarterErrorContextInput {
|
|
3
|
+
feature?: string;
|
|
4
|
+
command?: string;
|
|
5
|
+
attempted_command?: string;
|
|
6
|
+
why?: string;
|
|
7
|
+
hint?: string;
|
|
8
|
+
suggested_retry?: string;
|
|
9
|
+
examples?: string[];
|
|
10
|
+
nextSteps?: string[];
|
|
11
|
+
code?: string;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
interface TsStarterErrorOptions {
|
|
15
|
+
exitCode?: number;
|
|
16
|
+
context?: TsStarterErrorContextInput;
|
|
17
|
+
cause?: unknown;
|
|
18
|
+
}
|
|
19
|
+
declare function pmExpectedError(message: string, options?: TsStarterErrorOptions): PmCliExpectedError;
|
|
20
|
+
declare function isPmCliExpectedError(error: unknown): error is PmCliExpectedError;
|
|
21
|
+
export { pmExpectedError, isPmCliExpectedError };
|
|
1
22
|
declare const _default: {
|
|
2
23
|
name: string;
|
|
3
24
|
version: any;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAwC/B,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,iBAAS,eAAe,CACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,qBAAqB,GAC9B,kBAAkB,CAmCpB;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAKzE;AAsmBD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;;;;kBAMjC,GAAG;;AAJnB,wBAsBG"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
// pm-ts-starter — TypeScript reference extension for pm-cli
|
|
2
2
|
// Demonstrates all 9 SDK capability types in one file (commands, schema,
|
|
3
3
|
// hooks, importers/exporters, renderers, search, parser, preflight, services).
|
|
4
|
+
//
|
|
5
|
+
// This reference is aligned to the pm-cli 2026.7.6 SDK:
|
|
6
|
+
// - `defineExtension` typed identity helper (zero-runtime-coupling pattern)
|
|
7
|
+
// - `createPmCliExpectedError`-shaped errors for better failure messaging
|
|
8
|
+
// - `failure_hints` + typed positional `arguments` on every command definition
|
|
9
|
+
// - demo commands that integrate with the newer pm surfaces: plan workflow,
|
|
10
|
+
// context, search, and history-compact (each shells out to the live `pm`
|
|
11
|
+
// binary, exactly like the existing search provider does, so the demo
|
|
12
|
+
// never depends on a runtime import of `@unbrained/pm-cli`)
|
|
13
|
+
// - a guided `ts-starter setup --interactive` command for first-run onboarding
|
|
4
14
|
// ---------------------------------------------------------------------------
|
|
5
15
|
// `defineExtension` — typed identity helper + zero-runtime-coupling pattern
|
|
6
16
|
//
|
|
@@ -15,10 +25,15 @@
|
|
|
15
25
|
// type import give us full compile-time checking with ZERO runtime coupling to
|
|
16
26
|
// the CLI package. The real CLI supplies the live `api` object when it calls
|
|
17
27
|
// `activate(api)`.
|
|
28
|
+
//
|
|
29
|
+
// The same zero-runtime-coupling rule applies to the expected-error helper: we
|
|
30
|
+
// type against the SDK's `PmCliExpectedError` shape but build the error locally
|
|
31
|
+
// so a standalone install never needs to resolve `@unbrained/pm-cli` at runtime.
|
|
18
32
|
// ---------------------------------------------------------------------------
|
|
19
33
|
import { readFileSync } from "node:fs";
|
|
20
34
|
import { dirname, join } from "node:path";
|
|
21
35
|
import { fileURLToPath } from "node:url";
|
|
36
|
+
import { spawnSync } from "node:child_process";
|
|
22
37
|
const defineExtension = ((extension) => extension);
|
|
23
38
|
// Resolve the extension version from manifest.json (one directory above the
|
|
24
39
|
// compiled dist/) instead of a hardcoded literal: the Daily Release workflow
|
|
@@ -37,6 +52,89 @@ const VERSION = (() => {
|
|
|
37
52
|
// Opt-in verbose logging so the reference extension is silent by default.
|
|
38
53
|
const VERBOSE = !!process.env.PM_TS_STARTER_VERBOSE;
|
|
39
54
|
// ---------------------------------------------------------------------------
|
|
55
|
+
// Expected-error helper — build a `PmCliExpectedError`-shaped error without a
|
|
56
|
+
// runtime import of `@unbrained/pm-cli`. The CLI's top-level handler recognises
|
|
57
|
+
// expected errors by `name === "PmCliError"` (not `instanceof`), so a locally
|
|
58
|
+
// constructed error with that name, an `exitCode`, and a secret-free `context`
|
|
59
|
+
// is treated exactly like one thrown by the CLI itself: it exits with the
|
|
60
|
+
// given code and is excluded from crash reporting. This is the package-safe way
|
|
61
|
+
// for an extension to fail loudly with an actionable message instead of a
|
|
62
|
+
// generic stack trace.
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
const PM_CLI_EXPECTED_ERROR_NAME = "PmCliError";
|
|
65
|
+
const DEFAULT_USAGE_EXIT_CODE = 2;
|
|
66
|
+
function pmExpectedError(message, options) {
|
|
67
|
+
const exitCode = options?.exitCode && Number.isFinite(options.exitCode) && options.exitCode > 0
|
|
68
|
+
? options.exitCode
|
|
69
|
+
: DEFAULT_USAGE_EXIT_CODE;
|
|
70
|
+
// The SDK's PmCliErrorContext carries structured recovery guidance (code,
|
|
71
|
+
// why, examples, nextSteps, recovery.*). We normalize a plain author map
|
|
72
|
+
// into that shape so callers can pass terse keys (feature/command/why/hint)
|
|
73
|
+
// without coupling to the full contract.
|
|
74
|
+
const raw = (options?.context ?? {});
|
|
75
|
+
const recovery = raw.attempted_command || raw.feature || raw.command
|
|
76
|
+
? {
|
|
77
|
+
attempted_command: raw.attempted_command ?? raw.feature ?? raw.command,
|
|
78
|
+
suggested_retry: raw.suggested_retry,
|
|
79
|
+
}
|
|
80
|
+
: undefined;
|
|
81
|
+
// Normalize to the SDK's PmCliErrorContext shape (code/why/examples/
|
|
82
|
+
// nextSteps/recovery.*). Keys not in the contract are dropped.
|
|
83
|
+
const context = {
|
|
84
|
+
code: raw.code ?? raw.feature ?? raw.command,
|
|
85
|
+
why: raw.why,
|
|
86
|
+
examples: raw.examples,
|
|
87
|
+
nextSteps: raw.nextSteps ?? (raw.hint ? [String(raw.hint)] : undefined),
|
|
88
|
+
recovery,
|
|
89
|
+
};
|
|
90
|
+
const cause = options?.cause;
|
|
91
|
+
const err = new Error(message);
|
|
92
|
+
err.name = PM_CLI_EXPECTED_ERROR_NAME;
|
|
93
|
+
err.exitCode = exitCode;
|
|
94
|
+
err.context = context;
|
|
95
|
+
if (cause !== undefined) {
|
|
96
|
+
Object.defineProperty(err, "cause", { value: cause, enumerable: false });
|
|
97
|
+
}
|
|
98
|
+
return err;
|
|
99
|
+
}
|
|
100
|
+
function isPmCliExpectedError(error) {
|
|
101
|
+
return (error instanceof Error &&
|
|
102
|
+
error.name === PM_CLI_EXPECTED_ERROR_NAME);
|
|
103
|
+
}
|
|
104
|
+
function runPm(pmRoot, args) {
|
|
105
|
+
const result = spawnSync("pm", ["--path", pmRoot, ...args], {
|
|
106
|
+
encoding: "utf-8",
|
|
107
|
+
});
|
|
108
|
+
const stderr = (result.stderr ?? "").trim() || result.error?.message || "";
|
|
109
|
+
return {
|
|
110
|
+
ok: result.status === 0 && !result.error,
|
|
111
|
+
stdout: result.stdout ?? "",
|
|
112
|
+
stderr,
|
|
113
|
+
status: result.status,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Parse the JSON stdout of a pm shell-out, throwing a typed expected error with
|
|
117
|
+
// a `failure_hints`-friendly message when the call fails or the body is not
|
|
118
|
+
// valid JSON. The `feature` label flows into the error context so callers (and
|
|
119
|
+
// the CLI's error-guidance layer) can disambiguate which demo surface failed.
|
|
120
|
+
function pmJson(pmRoot, args, feature) {
|
|
121
|
+
const run = runPm(pmRoot, args);
|
|
122
|
+
if (!run.ok) {
|
|
123
|
+
const detail = run.stderr.trim();
|
|
124
|
+
throw pmExpectedError(`pm-ts-starter: \`${feature}\` demo failed (pm exited ${run.status})${detail ? `: ${detail}` : "."}`, {
|
|
125
|
+
exitCode: 1,
|
|
126
|
+
context: { feature, attempted_command: "pm", why: detail || undefined },
|
|
127
|
+
cause: run.stderr ? new Error(run.stderr) : undefined,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
return JSON.parse(run.stdout);
|
|
132
|
+
}
|
|
133
|
+
catch (cause) {
|
|
134
|
+
throw pmExpectedError(`pm-ts-starter: \`${feature}\` demo returned non-JSON output from pm.`, { exitCode: 1, context: { feature, why: `stdout head: ${run.stdout.slice(0, 200)}` }, cause });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
40
138
|
// 1. COMMANDS — register custom CLI commands
|
|
41
139
|
// ---------------------------------------------------------------------------
|
|
42
140
|
function registerDemoCommands(api) {
|
|
@@ -44,13 +142,30 @@ function registerDemoCommands(api) {
|
|
|
44
142
|
name: "hello",
|
|
45
143
|
description: "Say hello from the TypeScript starter extension.",
|
|
46
144
|
intent: "demonstrate a simple command",
|
|
47
|
-
examples: ["pm hello", "pm hello --name World"],
|
|
145
|
+
examples: ["pm hello", "pm hello --name World", "pm hello World --loud"],
|
|
146
|
+
failure_hints: [
|
|
147
|
+
"Use --name <value> to set the greeting name.",
|
|
148
|
+
"--loud uppercases the greeting; it takes no value.",
|
|
149
|
+
],
|
|
150
|
+
arguments: [
|
|
151
|
+
{ name: "name", description: "Positional name to greet (overridden by --name)." },
|
|
152
|
+
],
|
|
48
153
|
flags: [
|
|
49
|
-
{ long: "--name", value_name: "name", description: "Name to greet (default: pm-cli)" },
|
|
50
|
-
{ long: "--loud", description: "Uppercase the greeting" },
|
|
154
|
+
{ long: "--name", value_name: "name", value_type: "string", description: "Name to greet (default: pm-cli)" },
|
|
155
|
+
{ long: "--loud", value_type: "boolean", description: "Uppercase the greeting" },
|
|
51
156
|
],
|
|
52
157
|
async run(ctx) {
|
|
53
|
-
|
|
158
|
+
// Typed argument resolution: prefer the explicit --name flag, then a
|
|
159
|
+
// positional argument, then the default. A clearly-named expected error
|
|
160
|
+
// is thrown when the name is empty after trimming.
|
|
161
|
+
const rawName = ctx.options["name"] ??
|
|
162
|
+
(Array.isArray(ctx.args) && ctx.args.length > 0 ? String(ctx.args[0]) : undefined);
|
|
163
|
+
const name = (rawName ?? "pm-cli").trim();
|
|
164
|
+
if (!name) {
|
|
165
|
+
throw pmExpectedError("pm-ts-starter: --name must not be empty.", {
|
|
166
|
+
context: { command: "hello", why: "A non-empty name is required to greet." },
|
|
167
|
+
});
|
|
168
|
+
}
|
|
54
169
|
const loud = Boolean(ctx.options["loud"]);
|
|
55
170
|
const greeting = loud ? `HELLO, ${name.toUpperCase()}!` : `Hello, ${name}!`;
|
|
56
171
|
console.error(greeting);
|
|
@@ -62,11 +177,17 @@ function registerDemoCommands(api) {
|
|
|
62
177
|
description: "Show TypeScript starter extension info and registered capabilities.",
|
|
63
178
|
intent: "show extension metadata",
|
|
64
179
|
examples: ["pm ts-starter info"],
|
|
180
|
+
failure_hints: [
|
|
181
|
+
"This command only reads extension metadata; it has no side effects.",
|
|
182
|
+
"If it errors, the extension failed to activate — check `pm extension doctor`.",
|
|
183
|
+
],
|
|
184
|
+
arguments: [],
|
|
65
185
|
flags: [],
|
|
66
186
|
async run() {
|
|
67
187
|
const info = {
|
|
68
188
|
name: "pm-ts-starter",
|
|
69
189
|
version: VERSION,
|
|
190
|
+
sdk_target: "2026.7.6",
|
|
70
191
|
capabilities: [
|
|
71
192
|
"commands", "schema", "hooks", "importers",
|
|
72
193
|
"renderers", "search", "parser", "preflight", "services",
|
|
@@ -76,6 +197,191 @@ function registerDemoCommands(api) {
|
|
|
76
197
|
return info;
|
|
77
198
|
},
|
|
78
199
|
});
|
|
200
|
+
// ---------------------------------------------------------------------
|
|
201
|
+
// New pm-feature integration demos (all covered by the "commands"
|
|
202
|
+
// capability — they registerCommand, exactly like `hello`). Each shells
|
|
203
|
+
// out to the live `pm` binary and returns parsed JSON so an author can
|
|
204
|
+
// copy the wiring into a real extension that augments these surfaces.
|
|
205
|
+
// ---------------------------------------------------------------------
|
|
206
|
+
api.registerCommand({
|
|
207
|
+
name: "ts-starter plan-demo",
|
|
208
|
+
description: "Demonstrate integration with the pm plan workflow (shells out to `pm plan show`).",
|
|
209
|
+
intent: "show how an extension can read plan workflow state",
|
|
210
|
+
examples: ["pm ts-starter plan-demo", "pm ts-starter plan-demo --id my-plan --depth standard"],
|
|
211
|
+
failure_hints: [
|
|
212
|
+
"Requires a pm workspace with a plan item; create one with `pm plan create`.",
|
|
213
|
+
"Pass --id <plan-id> to select a plan other than the active one.",
|
|
214
|
+
"--depth is one of: brief | standard | deep.",
|
|
215
|
+
],
|
|
216
|
+
arguments: [
|
|
217
|
+
{ name: "id", required: false, description: "Plan item id to show (optional; defaults to active)." },
|
|
218
|
+
],
|
|
219
|
+
flags: [
|
|
220
|
+
{ long: "--id", value_name: "id", value_type: "string", description: "Plan item id to show." },
|
|
221
|
+
{ long: "--depth", value_name: "depth", value_type: "string", description: "Show depth: brief|standard|deep (default: standard)." },
|
|
222
|
+
],
|
|
223
|
+
async run(ctx) {
|
|
224
|
+
const pmRoot = ctx.pm_root ?? ".";
|
|
225
|
+
const id = ctx.options["id"] ??
|
|
226
|
+
(Array.isArray(ctx.args) && ctx.args.length > 0 ? String(ctx.args[0]) : undefined);
|
|
227
|
+
const depth = ctx.options["depth"] ?? "standard";
|
|
228
|
+
const args = ["plan", "show"];
|
|
229
|
+
if (id)
|
|
230
|
+
args.push(id);
|
|
231
|
+
args.push("--depth", depth, "--json");
|
|
232
|
+
return pmJson(pmRoot, args, "plan");
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
api.registerCommand({
|
|
236
|
+
name: "ts-starter context-demo",
|
|
237
|
+
description: "Demonstrate integration with pm context (shells out to `pm context`).",
|
|
238
|
+
intent: "show how an extension can surface the current work context",
|
|
239
|
+
examples: ["pm ts-starter context-demo", "pm ts-starter context-demo --format json --depth brief"],
|
|
240
|
+
failure_hints: [
|
|
241
|
+
"Requires a pm workspace; run inside a directory with `.agents/pm`.",
|
|
242
|
+
"--format is one of: markdown | toon | json (default: json).",
|
|
243
|
+
"--depth is one of: brief | standard | deep.",
|
|
244
|
+
],
|
|
245
|
+
arguments: [],
|
|
246
|
+
flags: [
|
|
247
|
+
{ long: "--format", value_name: "format", value_type: "string", description: "Output format: markdown|toon|json (default: json)." },
|
|
248
|
+
{ long: "--depth", value_name: "depth", value_type: "string", description: "Context depth: brief|standard|deep." },
|
|
249
|
+
],
|
|
250
|
+
async run(ctx) {
|
|
251
|
+
const pmRoot = ctx.pm_root ?? ".";
|
|
252
|
+
const format = ctx.options["format"] ?? "json";
|
|
253
|
+
const depth = ctx.options["depth"];
|
|
254
|
+
const args = ["context", "--format", format];
|
|
255
|
+
if (depth)
|
|
256
|
+
args.push("--depth", depth);
|
|
257
|
+
// `pm context` emits JSON only when --format json; for other formats we
|
|
258
|
+
// return the raw text so the caller still sees a structured payload.
|
|
259
|
+
if (format === "json") {
|
|
260
|
+
args.push("--json");
|
|
261
|
+
return pmJson(pmRoot, args, "context");
|
|
262
|
+
}
|
|
263
|
+
const run = runPm(pmRoot, args);
|
|
264
|
+
if (!run.ok) {
|
|
265
|
+
throw pmExpectedError(`pm-ts-starter: \`${format}\` context demo failed (pm exited ${run.status}).`, { exitCode: 1, context: { feature: "context", why: run.stderr.trim() || undefined } });
|
|
266
|
+
}
|
|
267
|
+
return { format, context: run.stdout };
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
api.registerCommand({
|
|
271
|
+
name: "ts-starter search-demo",
|
|
272
|
+
description: "Demonstrate integration with pm search (shells out to `pm search`).",
|
|
273
|
+
intent: "show how an extension can run a workspace search",
|
|
274
|
+
examples: ["pm ts-starter search-demo --query release", "pm ts-starter search-demo release --limit 10"],
|
|
275
|
+
failure_hints: [
|
|
276
|
+
"Pass a --query <text> (or a positional argument) with at least one term.",
|
|
277
|
+
"--limit caps the number of hits (default: 10).",
|
|
278
|
+
"Use `pm reindex` first if search returns nothing after a fresh import.",
|
|
279
|
+
],
|
|
280
|
+
arguments: [
|
|
281
|
+
{ name: "query", required: false, variadic: false, description: "Search query (overridden by --query)." },
|
|
282
|
+
],
|
|
283
|
+
flags: [
|
|
284
|
+
{ long: "--query", value_name: "query", value_type: "string", description: "Search query text." },
|
|
285
|
+
{ long: "--limit", value_name: "n", value_type: "number", description: "Maximum hits to return (default: 10)." },
|
|
286
|
+
],
|
|
287
|
+
async run(ctx) {
|
|
288
|
+
const pmRoot = ctx.pm_root ?? ".";
|
|
289
|
+
const rawQuery = ctx.options["query"] ??
|
|
290
|
+
(Array.isArray(ctx.args) && ctx.args.length > 0 ? String(ctx.args[0]) : undefined);
|
|
291
|
+
const query = (rawQuery ?? "").trim();
|
|
292
|
+
if (!query) {
|
|
293
|
+
throw pmExpectedError("pm-ts-starter: search-demo requires a --query (or positional query) argument.", { context: { command: "ts-starter search-demo", why: "Pass --query <text> or a positional query." } });
|
|
294
|
+
}
|
|
295
|
+
const limit = String(ctx.options["limit"] ?? 10);
|
|
296
|
+
return pmJson(pmRoot, ["search", query, "--limit", limit, "--json"], "search");
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
api.registerCommand({
|
|
300
|
+
name: "ts-starter history-compact-demo",
|
|
301
|
+
description: "Demonstrate integration with pm history-compact (dry-run only; shells out to `pm history-compact`).",
|
|
302
|
+
intent: "show how an extension can preview history compaction safely",
|
|
303
|
+
examples: ["pm ts-starter history-compact-demo --id my-task", "pm ts-starter history-compact-demo my-task"],
|
|
304
|
+
failure_hints: [
|
|
305
|
+
"Pass --id <item-id> (or a positional id) to select the item whose history to compact.",
|
|
306
|
+
"This demo always runs with --dry-run; it never mutates history.",
|
|
307
|
+
"If pm is not on PATH, the command exits 1 with a clear message.",
|
|
308
|
+
],
|
|
309
|
+
arguments: [
|
|
310
|
+
{ name: "id", required: false, description: "Item id whose history to preview-compact (required unless --id is used)." },
|
|
311
|
+
],
|
|
312
|
+
flags: [
|
|
313
|
+
{ long: "--id", value_name: "id", value_type: "string", description: "Item id to compact (overrides a positional id)." },
|
|
314
|
+
],
|
|
315
|
+
async run(ctx) {
|
|
316
|
+
const pmRoot = ctx.pm_root ?? ".";
|
|
317
|
+
const rawId = ctx.options["id"] ??
|
|
318
|
+
(Array.isArray(ctx.args) && ctx.args.length > 0 ? String(ctx.args[0]) : undefined);
|
|
319
|
+
const id = (rawId ?? "").trim();
|
|
320
|
+
if (!id) {
|
|
321
|
+
throw pmExpectedError("pm-ts-starter: history-compact-demo requires an --id (or positional id) argument.", { context: { command: "ts-starter history-compact-demo", why: "Pass --id <item-id> or a positional id." } });
|
|
322
|
+
}
|
|
323
|
+
return pmJson(pmRoot, ["history-compact", id, "--dry-run", "--json"], "history-compact");
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
// ---------------------------------------------------------------------
|
|
327
|
+
// Guided setup — `ts-starter setup --interactive` walks a new user
|
|
328
|
+
// through onboarding (manifest name, capabilities, verbose logging) and
|
|
329
|
+
// prints a checklist. Without --interactive it prints a non-interactive
|
|
330
|
+
// summary so the command is safe to run in CI and tests.
|
|
331
|
+
// ---------------------------------------------------------------------
|
|
332
|
+
api.registerCommand({
|
|
333
|
+
name: "ts-starter setup",
|
|
334
|
+
description: "Guided first-run setup for the TypeScript starter extension.",
|
|
335
|
+
intent: "onboard a new extension author",
|
|
336
|
+
examples: ["pm ts-starter setup", "pm ts-starter setup --interactive"],
|
|
337
|
+
failure_hints: [
|
|
338
|
+
"--interactive enables prompted input; without it the command prints a summary only.",
|
|
339
|
+
"Interactive mode is skipped automatically when stdin is not a TTY.",
|
|
340
|
+
],
|
|
341
|
+
arguments: [],
|
|
342
|
+
flags: [
|
|
343
|
+
{ long: "--interactive", value_type: "boolean", description: "Run an interactive guided setup wizard." },
|
|
344
|
+
],
|
|
345
|
+
async run(ctx) {
|
|
346
|
+
const interactive = Boolean(ctx.options["interactive"]);
|
|
347
|
+
const isTty = typeof process.stdin?.isTTY === "boolean" ? process.stdin.isTTY : false;
|
|
348
|
+
const runInteractive = interactive && isTty;
|
|
349
|
+
const summary = {
|
|
350
|
+
extension: "pm-ts-starter",
|
|
351
|
+
version: VERSION,
|
|
352
|
+
sdk_target: "2026.7.6",
|
|
353
|
+
capabilities: [
|
|
354
|
+
"commands", "schema", "hooks", "importers",
|
|
355
|
+
"renderers", "search", "parser", "preflight", "services",
|
|
356
|
+
],
|
|
357
|
+
verbose_env: "PM_TS_STARTER_VERBOSE=1",
|
|
358
|
+
interactive_requested: interactive,
|
|
359
|
+
interactive_run: runInteractive,
|
|
360
|
+
};
|
|
361
|
+
if (runInteractive) {
|
|
362
|
+
const readline = await import("node:readline/promises");
|
|
363
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
364
|
+
try {
|
|
365
|
+
const name = (await rl.question("Extension name [pm-ts-starter]: ")).trim() || "pm-ts-starter";
|
|
366
|
+
const wantVerbose = /^y/i.test((await rl.question("Enable verbose logging? [y/N]: ")).trim());
|
|
367
|
+
console.error(`\n[ts-starter] Guided setup complete for "${name}".`);
|
|
368
|
+
if (wantVerbose)
|
|
369
|
+
console.error("[ts-starter] Set PM_TS_STARTER_VERBOSE=1 to see activation logs.");
|
|
370
|
+
console.error("[ts-starter] Next: edit index.ts to keep only the capabilities you need, then `npm run build`.");
|
|
371
|
+
}
|
|
372
|
+
finally {
|
|
373
|
+
rl.close();
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
console.error(JSON.stringify(summary, null, 2));
|
|
378
|
+
if (interactive && !isTty) {
|
|
379
|
+
console.error("[ts-starter] stdin is not a TTY; interactive mode skipped. Re-run in a terminal.");
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return summary;
|
|
383
|
+
},
|
|
384
|
+
});
|
|
79
385
|
}
|
|
80
386
|
// ---------------------------------------------------------------------------
|
|
81
387
|
// 2. SCHEMA — provide custom JSON schemas for item validation
|
|
@@ -125,6 +431,11 @@ function registerHooks(api) {
|
|
|
125
431
|
api.hooks.afterCommand((ctx) => {
|
|
126
432
|
if (VERBOSE)
|
|
127
433
|
console.error(`[ts-starter] afterCommand: ${ctx.command} (ok=${ctx.ok})`);
|
|
434
|
+
// Surface a concise hint when a command fails with an expected error so an
|
|
435
|
+
// operator scanning stderr gets an actionable next step, not just a stack.
|
|
436
|
+
if (VERBOSE && ctx.ok === false && ctx.error && isPmCliExpectedError(ctx.error)) {
|
|
437
|
+
console.error(`[ts-starter] hint: ${ctx.error.message}`);
|
|
438
|
+
}
|
|
128
439
|
});
|
|
129
440
|
// onWrite — fires when pm writes an item file to disk.
|
|
130
441
|
api.hooks.onWrite((ctx) => {
|
|
@@ -148,13 +459,28 @@ function registerHooks(api) {
|
|
|
148
459
|
function registerImporters(api) {
|
|
149
460
|
// registerImporter("ts-starter-demo") auto-creates `pm ts-starter-demo import`
|
|
150
461
|
// and registerExporter the matching `pm ts-starter-demo export`. Both are
|
|
151
|
-
// covered by the "importers" capability.
|
|
462
|
+
// covered by the "importers" capability. The 2026.7.6 SDK accepts an optional
|
|
463
|
+
// third `options` argument that adds a full command definition (description,
|
|
464
|
+
// flags, intent, examples, failure_hints, positional arguments) to the
|
|
465
|
+
// auto-created command path — surfaced in help exactly like registerCommand.
|
|
152
466
|
if (typeof api.registerImporter === "function") {
|
|
153
467
|
api.registerImporter("ts-starter-demo", async (ctx) => {
|
|
154
468
|
if (VERBOSE)
|
|
155
469
|
console.error("[ts-starter] Demo importer invoked:", JSON.stringify(ctx.options));
|
|
156
470
|
// Demo no-op importer — extend with real import logic.
|
|
157
471
|
return { imported: 0 };
|
|
472
|
+
}, {
|
|
473
|
+
description: "Demo importer for the TypeScript starter extension.",
|
|
474
|
+
intent: "import demo data into a pm workspace",
|
|
475
|
+
examples: ["pm ts-starter-demo import", "pm ts-starter-demo import --source file.json"],
|
|
476
|
+
failure_hints: [
|
|
477
|
+
"The demo importer is a no-op; wire real parsing into the handler.",
|
|
478
|
+
"Pass --source <path> to point at an import file.",
|
|
479
|
+
],
|
|
480
|
+
arguments: [{ name: "source", required: false, description: "Path to import source." }],
|
|
481
|
+
flags: [
|
|
482
|
+
{ long: "--source", value_name: "path", value_type: "string", description: "Import source path." },
|
|
483
|
+
],
|
|
158
484
|
});
|
|
159
485
|
}
|
|
160
486
|
if (typeof api.registerExporter === "function") {
|
|
@@ -164,6 +490,17 @@ function registerImporters(api) {
|
|
|
164
490
|
// Demo exporter — echoes a tagged payload so the renderer demo can pick
|
|
165
491
|
// it up (`ts_starter` marker) without affecting any other command.
|
|
166
492
|
return { ts_starter: true, exported: 0 };
|
|
493
|
+
}, {
|
|
494
|
+
description: "Demo exporter for the TypeScript starter extension.",
|
|
495
|
+
intent: "export demo data from a pm workspace",
|
|
496
|
+
examples: ["pm ts-starter-demo export", "pm ts-starter-demo export --format json"],
|
|
497
|
+
failure_hints: [
|
|
498
|
+
"The demo exporter is a no-op; wire real serialization into the handler.",
|
|
499
|
+
"--format selects the export shape (default: json).",
|
|
500
|
+
],
|
|
501
|
+
flags: [
|
|
502
|
+
{ long: "--format", value_name: "format", value_type: "string", description: "Export format (default: json)." },
|
|
503
|
+
],
|
|
167
504
|
});
|
|
168
505
|
}
|
|
169
506
|
}
|
|
@@ -194,7 +531,6 @@ function registerSearch(api) {
|
|
|
194
531
|
name: "ts-starter-prefix",
|
|
195
532
|
async query(ctx) {
|
|
196
533
|
const query = ctx.query ?? "";
|
|
197
|
-
const { spawnSync } = await import("node:child_process");
|
|
198
534
|
const result = spawnSync("pm", ["--path", ctx.pm_root ?? ".", "list-all", "--json"], {
|
|
199
535
|
encoding: "utf-8",
|
|
200
536
|
});
|
|
@@ -303,12 +639,15 @@ function registerExtraFlags(api) {
|
|
|
303
639
|
{
|
|
304
640
|
long: "--ts-starter-tag",
|
|
305
641
|
value_name: "tag",
|
|
642
|
+
value_type: "string",
|
|
306
643
|
description: "DEMO flag added by pm-ts-starter (inert; illustrates registerFlags).",
|
|
307
|
-
type: "string",
|
|
308
644
|
},
|
|
309
645
|
]);
|
|
310
646
|
}
|
|
311
647
|
}
|
|
648
|
+
// Re-export the expected-error helpers so downstream authors copying this
|
|
649
|
+
// reference can import them without re-deriving the zero-runtime-coupling shim.
|
|
650
|
+
export { pmExpectedError, isPmCliExpectedError };
|
|
312
651
|
export default defineExtension({
|
|
313
652
|
name: "pm-ts-starter",
|
|
314
653
|
version: VERSION,
|
|
@@ -317,11 +656,11 @@ export default defineExtension({
|
|
|
317
656
|
// reference extension never pollutes other commands' stderr.
|
|
318
657
|
if (VERBOSE)
|
|
319
658
|
console.error("[pm-ts-starter] Activating…");
|
|
320
|
-
registerDemoCommands(api); // registerCommand (with typed flags)
|
|
659
|
+
registerDemoCommands(api); // registerCommand (with typed flags + failure_hints)
|
|
321
660
|
registerExtraFlags(api); // registerFlags (augments native `list`)
|
|
322
661
|
registerSchema(api); // registerItemFields/registerItemTypes/registerMigration
|
|
323
662
|
registerHooks(api); // hooks.before/after/onWrite/onRead/onIndex
|
|
324
|
-
registerImporters(api); // registerImporter/registerExporter
|
|
663
|
+
registerImporters(api); // registerImporter/registerExporter (with command-definition options)
|
|
325
664
|
registerRenderers(api); // registerRenderer
|
|
326
665
|
registerSearch(api); // registerSearchProvider/registerVectorStoreAdapter
|
|
327
666
|
registerParser(api); // registerParser
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,+EAA+E;AAC/E,EAAE;AACF,wDAAwD;AACxD,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,gEAAgE;AAChE,iFAAiF;AAEjF,8EAA8E;AAC9E,4EAA4E;AAC5E,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,6EAA6E;AAC7E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C,MAAM,eAAe,GAA+B,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,SAAS,CAAQ,CAAC;AAE3F,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,0EAA0E;AAC1E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAEpD,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,0BAA0B,GAAG,YAAqB,CAAC;AACzD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AA0BlC,SAAS,eAAe,CACtB,OAAe,EACf,OAA+B;IAE/B,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC;QAC5E,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,uBAAuB,CAAC;IAC9B,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,yCAAyC;IACzC,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAA+B,CAAC;IACnE,MAAM,QAAQ,GACZ,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO;QACjD,CAAC,CAAC;YACE,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO;YACtE,eAAe,EAAE,GAAG,CAAC,eAAe;SACrC;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,qEAAqE;IACrE,+DAA+D;IAC/D,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO;QAC5C,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,QAAQ;KACT,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAuB,CAAC;IACrD,GAAG,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACtC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,KAAK,YAAY,KAAK;QACrB,KAA4B,CAAC,IAAI,KAAK,0BAA0B,CAClE,CAAC;AACJ,CAAC;AAkBD,SAAS,KAAK,CAAC,MAAc,EAAE,IAAc;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAC1D,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IAC3E,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;QACxC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,SAAS,MAAM,CAAc,MAAc,EAAE,IAAc,EAAE,OAAe;IAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,eAAe,CACnB,oBAAoB,OAAO,6BAA6B,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EACpG;YACE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE;YACvE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACtD,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAM,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,CACnB,oBAAoB,OAAO,2CAA2C,EACtE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,GAAQ;IACpC,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kDAAkD;QAC/D,MAAM,EAAE,8BAA8B;QACtC,QAAQ,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,uBAAuB,CAAC;QACxE,aAAa,EAAE;YACb,8CAA8C;YAC9C,oDAAoD;SACrD;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kDAAkD,EAAE;SAClF;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YAC5G,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE;SACjF;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,qEAAqE;YACrE,wEAAwE;YACxE,mDAAmD;YACnD,MAAM,OAAO,GACV,GAAG,CAAC,OAAO,CAAC,MAAM,CAAwB;gBAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,eAAe,CAAC,0CAA0C,EAAE;oBAChE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,wCAAwC,EAAE;iBAC7E,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qEAAqE;QAClF,MAAM,EAAE,yBAAyB;QACjC,QAAQ,EAAE,CAAC,oBAAoB,CAAC;QAChC,aAAa,EAAE;YACb,qEAAqE;YACrE,+EAA+E;SAChF;QACD,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,KAAK,CAAC,GAAG;YACP,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE;oBACZ,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW;oBAC1C,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU;iBACzD;aACF,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IAEH,wEAAwE;IACxE,kEAAkE;IAClE,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IAExE,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,mFAAmF;QAChG,MAAM,EAAE,oDAAoD;QAC5D,QAAQ,EAAE,CAAC,yBAAyB,EAAE,uDAAuD,CAAC;QAC9F,aAAa,EAAE;YACb,6EAA6E;YAC7E,iEAAiE;YACjE,6CAA6C;SAC9C;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,sDAAsD,EAAE;SACrG;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YAC9F,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;SACpI;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAClC,MAAM,EAAE,GACL,GAAG,CAAC,OAAO,CAAC,IAAI,CAAwB;gBACzC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,KAAK,GAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAwB,IAAI,UAAU,CAAC;YACzE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9B,IAAI,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,OAAO,MAAM,CAAqB,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,uEAAuE;QACpF,MAAM,EAAE,4DAA4D;QACpE,QAAQ,EAAE,CAAC,4BAA4B,EAAE,wDAAwD,CAAC;QAClG,aAAa,EAAE;YACb,oEAAoE;YACpE,6DAA6D;YAC7D,6CAA6C;SAC9C;QACD,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;YACnI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;SACnH;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAClC,MAAM,MAAM,GAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAwB,IAAI,MAAM,CAAC;YACvE,MAAM,KAAK,GAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAwB,CAAC;YAC3D,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,wEAAwE;YACxE,qEAAqE;YACrE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,eAAe,CACnB,oBAAoB,MAAM,qCAAqC,GAAG,CAAC,MAAM,IAAI,EAC7E,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,EAAE,CACtF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,qEAAqE;QAClF,MAAM,EAAE,kDAAkD;QAC1D,QAAQ,EAAE,CAAC,2CAA2C,EAAE,8CAA8C,CAAC;QACvG,aAAa,EAAE;YACb,0EAA0E;YAC1E,gDAAgD;YAChD,wEAAwE;SACzE;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC1G;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACjG,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;SACjH;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAClC,MAAM,QAAQ,GACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAwB;gBAC5C,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,eAAe,CACnB,+EAA+E,EAC/E,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,4CAA4C,EAAE,EAAE,CACtG,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,OAAO,MAAM,CAAuB,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACvG,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,qGAAqG;QAClH,MAAM,EAAE,6DAA6D;QACrE,QAAQ,EAAE,CAAC,iDAAiD,EAAE,4CAA4C,CAAC;QAC3G,aAAa,EAAE;YACb,uFAAuF;YACvF,iEAAiE;YACjE,iEAAiE;SAClE;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,0EAA0E,EAAE;SACzH;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;SACzH;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAClC,MAAM,KAAK,GACR,GAAG,CAAC,OAAO,CAAC,IAAI,CAAwB;gBACzC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,eAAe,CACnB,mFAAmF,EACnF,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,GAAG,EAAE,yCAAyC,EAAE,EAAE,CAC5G,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CACX,MAAM,EACN,CAAC,iBAAiB,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,EAC9C,iBAAiB,CAClB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,wEAAwE;IACxE,mEAAmE;IACnE,wEAAwE;IACxE,wEAAwE;IACxE,yDAAyD;IACzD,wEAAwE;IAExE,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8DAA8D;QAC3E,MAAM,EAAE,gCAAgC;QACxC,QAAQ,EAAE,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;QACtE,aAAa,EAAE;YACb,qFAAqF;YACrF,oEAAoE;SACrE;QACD,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE;SACzG;QACD,KAAK,CAAC,GAAG,CAAC,GAAQ;YAChB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACtF,MAAM,cAAc,GAAG,WAAW,IAAI,KAAK,CAAC;YAE5C,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE;oBACZ,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW;oBAC1C,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU;iBACzD;gBACD,WAAW,EAAE,yBAAyB;gBACtC,qBAAqB,EAAE,WAAW;gBAClC,eAAe,EAAE,cAAc;aAChC,CAAC;YAEF,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;gBACxD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC;oBAC/F,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9F,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,IAAI,CAAC,CAAC;oBACrE,IAAI,WAAW;wBAAE,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;oBACnG,OAAO,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;gBAClH,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,KAAK,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAQ;IAC9B,kEAAkE;IAClE,4EAA4E;IAC5E,6EAA6E;IAC7E,+DAA+D;IAC/D,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;QACjD,GAAG,CAAC,kBAAkB,CAAC;YACrB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAChD,GAAG,CAAC,iBAAiB,CAAC;YACpB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAChD,GAAG,CAAC,iBAAiB,CAAC;YACpB,EAAE,EAAE,iBAAiB;YACrB,WAAW,EAAE,yBAAyB;YACtC,GAAG;gBACD,+CAA+C;YACjD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,SAAS,aAAa,CAAC,GAAQ;IAC7B,6EAA6E;IAC7E,oEAAoE;IACpE,oEAAoE;IACpE,6EAA6E;IAC7E,wCAAwC;IACxC,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO;IAEvB,mDAAmD;IACnD,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnC,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,yEAAyE;IACzE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAQ,EAAE,EAAE;QAClC,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACvF,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,OAAO,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IACH,uDAAuD;IACvD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC7B,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IACH,6CAA6C;IAC7C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC5B,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,wDAAwD;IACxD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC7B,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,GAAQ;IACjC,+EAA+E;IAC/E,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,gBAAgB,CAClB,iBAAiB,EACjB,KAAK,EAAE,GAAQ,EAAE,EAAE;YACjB,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/F,uDAAuD;YACvD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC,EACD;YACE,WAAW,EAAE,qDAAqD;YAClE,MAAM,EAAE,sCAAsC;YAC9C,QAAQ,EAAE,CAAC,2BAA2B,EAAE,8CAA8C,CAAC;YACvF,aAAa,EAAE;gBACb,mEAAmE;gBACnE,kDAAkD;aACnD;YACD,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;YACvF,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;aACnG;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,gBAAgB,CAClB,iBAAiB,EACjB,KAAK,EAAE,GAAQ,EAAE,EAAE;YACjB,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/F,wEAAwE;YACxE,mEAAmE;YACnE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC,EACD;YACE,WAAW,EAAE,qDAAqD;YAClE,MAAM,EAAE,sCAAsC;YAC9C,QAAQ,EAAE,CAAC,2BAA2B,EAAE,yCAAyC,CAAC;YAClF,aAAa,EAAE;gBACb,yEAAyE;gBACzE,oDAAoD;aACrD;YACD,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAChH;SACF,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,GAAQ;IACjC,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC/C,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,8DAA8D;QAC9D,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAQ,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;YAC3B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAc,CAAC,UAAU,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,IAAI,CAAC,CAAC,8BAA8B;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAQ;IAC9B,IAAI,OAAO,GAAG,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QACrD,GAAG,CAAC,sBAAsB,CAAC;YACzB,IAAI,EAAE,mBAAmB;YACzB,KAAK,CAAC,KAAK,CAAC,GAAQ;gBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACnF,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAC1B,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,yEAAyE;IACzE,+EAA+E;IAC/E,4CAA4C;IAC5C,IAAI,OAAO,GAAG,CAAC,0BAA0B,KAAK,UAAU,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,IAAI,GAAG,CAAC,EAAY,EAAE;YACvD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/E,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,GAAG,CAAC,0BAA0B,CAAC;YAC7B,IAAI,EAAE,mBAAmB;YACzB,KAAK,CAAC,MAAM,CAAC,GAAQ;gBACnB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACnD,IAAI,EAAE;oBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,GAAQ;gBAClB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpD,EAAE;oBACF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;iBACxD,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAQ;IAC9B,yEAAyE;IACzE,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QAC7C,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;YAC9B,OAAO,EAAE,CAAC,CAAC,wBAAwB;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,GAAQ;IACjC,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAChD,4EAA4E;QAC5E,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAQ,EAAE,EAAE;YACvC,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,+CAA+C,GAAG,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YACtG,uDAAuD;YACvD,OAAO;gBACL,wBAAwB,EAAE,GAAG,CAAC,QAAQ,EAAE,wBAAwB,IAAI,IAAI;gBACxE,8BAA8B,EAAE,GAAG,CAAC,QAAQ,EAAE,8BAA8B,IAAI,KAAK;gBACrF,wBAAwB,EAAE,GAAG,CAAC,QAAQ,EAAE,wBAAwB,IAAI,IAAI;gBACxE,gCAAgC,EAAE,GAAG,CAAC,QAAQ,EAAE,gCAAgC,IAAI,KAAK;aAC1F,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC9C,yEAAyE;QACzE,sEAAsE;QACtE,6EAA6E;QAC7E,0EAA0E;QAC1E,iCAAiC;QACjC,GAAG,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACtD,OAAO,GAAG,EAAE,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,GAAQ;IAClC,+EAA+E;IAC/E,2EAA2E;IAC3E,oEAAoE;IACpE,8DAA8D;IAC9D,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAC5C,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE;YACxB;gBACE,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,sEAAsE;aACpF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AAEjD,eAAe,eAAe,CAAC;IAC7B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAEhB,QAAQ,CAAC,GAAQ;QACf,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE1D,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAE,qDAAqD;QACjF,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAI,yCAAyC;QACrE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAQ,yDAAyD;QACrF,aAAa,CAAC,GAAG,CAAC,CAAC,CAAS,4CAA4C;QACxE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAK,sEAAsE;QAClG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAK,mBAAmB;QAC/C,cAAc,CAAC,GAAG,CAAC,CAAC,CAAQ,oDAAoD;QAChF,cAAc,CAAC,GAAG,CAAC,CAAC,CAAQ,iBAAiB;QAC7C,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAK,oBAAoB;QAChD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAM,kBAAkB;QAE9C,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,CAAC;CACF,CAAC,CAAC"}
|
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-ts-starter",
|
|
3
|
-
"version": "2026.7.
|
|
4
|
-
"description": "TypeScript reference extension covering all 9 SDK capability types: commands, renderers, hooks, schema, importers, search, parser, preflight, services.
|
|
3
|
+
"version": "2026.7.10",
|
|
4
|
+
"description": "TypeScript reference extension covering all 9 SDK capability types: commands, renderers, hooks, schema, importers, search, parser, preflight, services. Aligned to the pm-cli 2026.7.6 SDK: demonstrates defineExtension plus registerCommand/registerFlags (with failure_hints + typed positional arguments), registerItemFields/registerItemTypes/registerMigration, the five api.hooks.* lifecycle hooks, registerImporter/registerExporter (with ImportExportRegistrationOptions), registerRenderer, registerSearchProvider/registerVectorStoreAdapter, registerParser, registerPreflight, registerService, PmCliExpectedError-shaped errors, demo commands for the plan/context/search/history-compact pm surfaces, and a guided `ts-starter setup --interactive` onboarding - all fully typed.",
|
|
5
5
|
"author": "@unbraind",
|
|
6
6
|
"entry": "./dist/index.js",
|
|
7
7
|
"priority": 90,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-ts-starter",
|
|
3
|
-
"version": "2026.7.
|
|
3
|
+
"version": "2026.7.10",
|
|
4
4
|
"description": "TypeScript reference extension for pm-cli covering all capability types",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm --github-step-summary"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@unbrained/pm-cli": ">=2026.7.
|
|
39
|
+
"@unbrained/pm-cli": ">=2026.7.6"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "^25.9.2",
|
|
43
|
-
"@unbrained/pm-cli": "^2026.7.
|
|
44
|
-
"pm-changelog": "^2026.6
|
|
43
|
+
"@unbrained/pm-cli": "^2026.7.6",
|
|
44
|
+
"pm-changelog": "^2026.7.6",
|
|
45
45
|
"typescript": "^6.0.3"
|
|
46
46
|
},
|
|
47
47
|
"keywords": [
|