@aacombarro89/praxis 0.1.9 → 0.1.11

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/dist/emit.d.ts CHANGED
@@ -3,16 +3,18 @@ import { type PluginsDesired, type RuleSet } from "./merge-json.js";
3
3
  import { CODEX_MARKETPLACE_PATH, CODEX_MARKETPLACE_STATE_PATH, type CodexPluginEntry } from "./codex-marketplace.js";
4
4
  export declare const BLOCK_FILE: Partial<Record<Target, string>>;
5
5
  /** The neutral methodology source for a content package, or undefined if the
6
- * package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases). */
7
- export declare function loadPackageSource(pkg: string): string | undefined;
6
+ * package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
7
+ * `dir` is the package's own directory (`ResolvedPackage.dir`) shipped or
8
+ * project-local, resolved identically either way. */
9
+ export declare function loadPackageSource(dir: string): string | undefined;
8
10
  /** A package's workflow sources: one file per workflow, named for its target-native invocation. */
9
11
  export interface CommandSource {
10
12
  name: string;
11
13
  content: string;
12
14
  }
13
15
  /** A content package's commands, or [] if it has none. Scans
14
- * packages/<layer>/<pkg>/commands/*.md — mirrors loadPackageSource. */
15
- export declare function loadCommandSources(pkg: string): CommandSource[];
16
+ * `<dir>/commands/*.md` — mirrors loadPackageSource. */
17
+ export declare function loadCommandSources(dir: string): CommandSource[];
16
18
  /** A planned write. "owned" files are placed/replaced wholesale; "block" files
17
19
  * have their managed blocks reconciled into existing text; "settings" carries
18
20
  * whichever of permissions/plugins this target emits — always exactly one op
@@ -47,8 +49,9 @@ export type EmitOp = {
47
49
  plugins: CodexPluginEntry[];
48
50
  };
49
51
  /** Build the emit plan from a manifest: the file operations needed to install
50
- * the selected methodology for each target. */
51
- export declare function planEmit(manifest: Manifest): EmitOp[];
52
+ * the selected methodology for each target. `cwd` resolves any project-local
53
+ * (`./`-prefixed) packages the manifest names; defaults to process.cwd(). */
54
+ export declare function planEmit(manifest: Manifest, cwd?: string): EmitOp[];
52
55
  export interface MethodologySize {
53
56
  /** Total content lines across the counted rule artifacts. */
54
57
  totalLines: number;
@@ -72,7 +75,7 @@ export interface MethodologySize {
72
75
  * unknown package) — callers in check mode should catch and omit the line
73
76
  * rather than let it mask the sync error (D40's degrade-by-omission model).
74
77
  */
75
- export declare function computeMethodologySize(manifest: Manifest): MethodologySize;
78
+ export declare function computeMethodologySize(manifest: Manifest, cwd?: string): MethodologySize;
76
79
  export interface ApplyResult {
77
80
  text: string;
78
81
  changed: boolean;
package/dist/emit.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { existsSync, readdirSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
3
  import { parse as parseYaml } from "yaml";
5
4
  import { reconcile } from "./merge.js";
6
5
  import { BUCKETS, reconcileSettings, } from "./merge-json.js";
@@ -9,25 +8,6 @@ import { loadPolicy } from "./permissions.js";
9
8
  import { loadPluginsBlock } from "./plugins.js";
10
9
  import { reconcileCodexConfig, renderCodexRules } from "./codex-security.js";
11
10
  import { CODEX_MARKETPLACE_PATH, CODEX_MARKETPLACE_STATE_PATH, } from "./codex-marketplace.js";
12
- /**
13
- * Layer 1 emit (CLAUDE.md non-negotiable "tool-neutral by construction";
14
- * docs/wiki/merge-engine.md / docs/wiki/emitters.md, decisions D7/D13). The methodology source is **singular
15
- * and tool-neutral**; emitters *translate* it per target — they never fork the
16
- * content.
17
- *
18
- * Two delivery shapes, per target:
19
- * - "owned": Praxis owns whole files (place/replace, no merge). Claude Code
20
- * methodology ships as `.claude/rules/praxis-*.md`, auto-loaded every
21
- * session; Praxis never edits the user's CLAUDE.md (D13).
22
- * - "block": content is inlined into a flat instruction file via a managed
23
- * block (merge engine). Used for AGENTS.md, which has no include standard.
24
- *
25
- * Package layout (D16): packages/<layer>/<pkg>/rules.md. `../packages/` resolves
26
- * the same from src/ (dev/vitest) and dist/ (built/installed) — both one level
27
- * under repo root.
28
- */
29
- // Root of the per-layer package tree. Resolves identically from src/ and dist/.
30
- const PACKAGES_DIR = new URL("../packages/", import.meta.url);
31
11
  // Where each target's methodology lives, and how it is delivered.
32
12
  const TARGET_DELIVERY = {
33
13
  "claude-code": "owned",
@@ -43,17 +23,12 @@ export const BLOCK_FILE = {
43
23
  "agents-md": "AGENTS.md",
44
24
  };
45
25
  /** The neutral methodology source for a content package, or undefined if the
46
- * package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases). */
47
- export function loadPackageSource(pkg) {
48
- const root = fileURLToPath(PACKAGES_DIR);
49
- for (const entry of readdirSync(root, { withFileTypes: true })) {
50
- if (!entry.isDirectory())
51
- continue;
52
- const candidate = join(root, entry.name, pkg, "rules.md");
53
- if (existsSync(candidate))
54
- return readFileSync(candidate, "utf8").trimEnd();
55
- }
56
- return undefined;
26
+ * package has no rules.md (e.g. skills, Layer 2 recipes handled by other phases).
27
+ * `dir` is the package's own directory (`ResolvedPackage.dir`) — shipped or
28
+ * project-local, resolved identically either way. */
29
+ export function loadPackageSource(dir) {
30
+ const candidate = join(dir, "rules.md");
31
+ return existsSync(candidate) ? readFileSync(candidate, "utf8").trimEnd() : undefined;
57
32
  }
58
33
  /** Translate neutral source for a specific target. The seam for per-tool
59
34
  * framing; Layer 1 prose is identical across tools today. */
@@ -90,23 +65,17 @@ function renderCodexSkill(name, source) {
90
65
  return `---\nname: praxis-${name}\ndescription: ${JSON.stringify(description)}\n---\n\n${body.trimEnd()}\n`;
91
66
  }
92
67
  /** A content package's commands, or [] if it has none. Scans
93
- * packages/<layer>/<pkg>/commands/*.md — mirrors loadPackageSource. */
94
- export function loadCommandSources(pkg) {
95
- const root = fileURLToPath(PACKAGES_DIR);
96
- for (const entry of readdirSync(root, { withFileTypes: true })) {
97
- if (!entry.isDirectory())
98
- continue;
99
- const dir = join(root, entry.name, pkg, "commands");
100
- if (!existsSync(dir))
101
- continue;
102
- return readdirSync(dir, { withFileTypes: true })
103
- .filter((f) => f.isFile() && f.name.endsWith(".md"))
104
- .map((f) => ({
105
- name: f.name.slice(0, -3),
106
- content: readFileSync(join(dir, f.name), "utf8").trimEnd(),
107
- }));
108
- }
109
- return [];
68
+ * `<dir>/commands/*.md` — mirrors loadPackageSource. */
69
+ export function loadCommandSources(dir) {
70
+ const commandsDir = join(dir, "commands");
71
+ if (!existsSync(commandsDir))
72
+ return [];
73
+ return readdirSync(commandsDir, { withFileTypes: true })
74
+ .filter((f) => f.isFile() && f.name.endsWith(".md"))
75
+ .map((f) => ({
76
+ name: f.name.slice(0, -3),
77
+ content: readFileSync(join(commandsDir, f.name), "utf8").trimEnd(),
78
+ }));
110
79
  }
111
80
  /** Targets that consume the source directly as slash-command markdown. Codex
112
81
  * uses the separate SKILL.md renderer below. */
@@ -173,11 +142,12 @@ const PLUGIN_EMITTERS = {
173
142
  "claude-code": { path: ".claude/settings.json" },
174
143
  };
175
144
  /** Build the emit plan from a manifest: the file operations needed to install
176
- * the selected methodology for each target. */
177
- export function planEmit(manifest) {
145
+ * the selected methodology for each target. `cwd` resolves any project-local
146
+ * (`./`-prefixed) packages the manifest names; defaults to process.cwd(). */
147
+ export function planEmit(manifest, cwd = process.cwd()) {
178
148
  // Validate the package set and resolve requires/conflicts up front (D20/D21):
179
149
  // an unknown package or unmet dependency fails loudly here, not silently later.
180
- const packages = resolvePackages(manifest.packages, manifest.stacks ?? []);
150
+ const packages = resolvePackages(manifest.packages, manifest.stacks ?? [], cwd);
181
151
  const rulesPackages = packages.filter((p) => p.provides.includes("rules"));
182
152
  const permissionPackages = packages.filter((p) => p.provides.includes("permissions"));
183
153
  const commandPackages = packages.filter((p) => p.provides.includes("commands"));
@@ -187,7 +157,7 @@ export function planEmit(manifest) {
187
157
  for (const target of manifest.targets) {
188
158
  // Prose rules — delivery (owned vs block) is the target's; `provides` decides
189
159
  // which packages contribute. `loadPackageSource` is guaranteed by `provides`.
190
- const sources = rulesPackages.map((p) => ({ pkg: p.name, source: loadPackageSource(p.name) ?? "" }));
160
+ const sources = rulesPackages.map((p) => ({ pkg: p.name, source: loadPackageSource(p.dir) ?? "" }));
191
161
  if (sources.length > 0 && !(target === "agents-md" && codexSelected)) {
192
162
  if (TARGET_DELIVERY[target] === "owned") {
193
163
  for (const { pkg, source } of sources) {
@@ -216,7 +186,7 @@ export function planEmit(manifest) {
216
186
  if (permEmitter && permissionPackages.length > 0) {
217
187
  rules = { allow: [], ask: [], deny: [] };
218
188
  for (const p of permissionPackages) {
219
- const policy = loadPolicy(p.name);
189
+ const policy = loadPolicy(p.dir);
220
190
  if (!policy)
221
191
  continue;
222
192
  const r = permEmitter.render(policy);
@@ -233,7 +203,7 @@ export function planEmit(manifest) {
233
203
  const marketplaces = [];
234
204
  const enable = [];
235
205
  for (const p of pluginPackages) {
236
- const block = loadPluginsBlock(p.name);
206
+ const block = loadPluginsBlock(p.dir);
237
207
  if (!block || !block.targets.includes(target))
238
208
  continue;
239
209
  if (!marketplaces.some((m) => m.name === block.marketplace.name)) {
@@ -251,7 +221,7 @@ export function planEmit(manifest) {
251
221
  ops.push({ kind: "settings", target, path: settingsPath, rules, plugins });
252
222
  }
253
223
  if (target === "codex") {
254
- const policies = permissionPackages.map((pkg) => loadPolicy(pkg.name)).filter((p) => Boolean(p));
224
+ const policies = permissionPackages.map((pkg) => loadPolicy(pkg.dir)).filter((p) => Boolean(p));
255
225
  if (policies.length > 0) {
256
226
  ops.push({ kind: "codex-config", target, path: ".codex/config.toml", enabled: true });
257
227
  const combined = { allow: [], ask: [], deny: [] };
@@ -272,7 +242,7 @@ export function planEmit(manifest) {
272
242
  }
273
243
  const codexPlugins = [];
274
244
  for (const pkg of pluginPackages) {
275
- const block = loadPluginsBlock(pkg.name);
245
+ const block = loadPluginsBlock(pkg.dir);
276
246
  if (!block?.codex)
277
247
  continue;
278
248
  const source = block.codex.subdir
@@ -324,7 +294,7 @@ export function planEmit(manifest) {
324
294
  const commandDir = COMMAND_DIR[target];
325
295
  if (commandDir) {
326
296
  for (const pkg of commandPackages) {
327
- for (const { name, content } of loadCommandSources(pkg.name)) {
297
+ for (const { name, content } of loadCommandSources(pkg.dir)) {
328
298
  const emitted = content.includes(BOOTSTRAP_MARKER)
329
299
  ? content.replace(BOOTSTRAP_MARKER, onboardingDelegations)
330
300
  : content;
@@ -339,7 +309,7 @@ export function planEmit(manifest) {
339
309
  }
340
310
  if (target === "codex") {
341
311
  for (const pkg of commandPackages) {
342
- for (const { name, content } of loadCommandSources(pkg.name)) {
312
+ for (const { name, content } of loadCommandSources(pkg.dir)) {
343
313
  const emitted = content.includes(BOOTSTRAP_MARKER)
344
314
  ? content.replace(BOOTSTRAP_MARKER, onboardingDelegations)
345
315
  : content;
@@ -378,8 +348,8 @@ function countLines(text) {
378
348
  * unknown package) — callers in check mode should catch and omit the line
379
349
  * rather than let it mask the sync error (D40's degrade-by-omission model).
380
350
  */
381
- export function computeMethodologySize(manifest) {
382
- const ops = planEmit(manifest);
351
+ export function computeMethodologySize(manifest, cwd = process.cwd()) {
352
+ const ops = planEmit(manifest, cwd);
383
353
  const claudeRuleFiles = ops.filter((op) => op.kind === "owned" && op.target === "claude-code" && op.path.startsWith(".claude/rules/"));
384
354
  if (claudeRuleFiles.length > 0) {
385
355
  return {
package/dist/emit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare const packageManifestSchema: z.ZodObject<{
8
8
  layer2: "layer2";
9
9
  decision: "decision";
10
10
  external: "external";
11
+ local: "local";
11
12
  }>;
12
13
  provides: z.ZodArray<z.ZodEnum<{
13
14
  permissions: "permissions";
@@ -46,6 +47,23 @@ export declare function availablePackages(): Map<string, ResolvedPackage>;
46
47
  * Throws an agent-actionable error on the first problem.
47
48
  */
48
49
  export declare function resolve(selected: string[], available: Map<string, ResolvedPackage>, declaredStacks?: string[]): ResolvedPackage[];
49
- /** Resolve the selected packages against the installed set (filesystem-backed). */
50
- export declare function resolvePackages(selected: string[], declaredStacks?: string[]): ResolvedPackage[];
50
+ /** True for a `praxis.yaml` packages entry that names a project-local package
51
+ * path (relative to the target repo cwd) rather than a shipped package name. */
52
+ export declare function isLocalPackagePath(entry: string): boolean;
53
+ /** Load a project-local package from `entry` (a `./`- or `../`-prefixed path in
54
+ * `praxis.yaml`), resolved against `cwd`. Fails loud if there's no
55
+ * `package.yaml` at that path, or if it doesn't declare `layer: local` — a
56
+ * project-local package must say so itself so provenance stays legible
57
+ * (shipped vs. project-owned) without cross-referencing praxis.yaml. */
58
+ export declare function loadLocalPackage(entry: string, cwd: string): ResolvedPackage;
59
+ /**
60
+ * Resolve the selected packages against the installed set (filesystem-backed),
61
+ * plus any project-local packages the manifest names by path. A `./`- or
62
+ * `../`-prefixed entry is loaded from `cwd` via `loadLocalPackage`, checked for
63
+ * a name collision against every already-available package (shipped or an
64
+ * earlier local entry), and added to the available set under its declared
65
+ * name; non-path entries pass through unchanged. The actual composition rule
66
+ * (requires/conflicts/stack) still lives in the pure `resolve()` above.
67
+ */
68
+ export declare function resolvePackages(selected: string[], declaredStacks?: string[], cwd?: string): ResolvedPackage[];
51
69
  export {};
package/dist/packages.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
2
+ import { basename, join, resolve as resolvePath } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { parse as parseYaml } from "yaml";
5
5
  import { z } from "zod";
@@ -20,7 +20,10 @@ const PACKAGES_DIR = new URL("../packages/", import.meta.url);
20
20
  const ARTIFACTS = ["rules", "permissions", "commands", "plugins"];
21
21
  // "external" holds thin packages that declare a Claude Code plugin marketplace
22
22
  // (packages/external/<pkg>/) rather than authoring methodology content directly.
23
- const LAYERS = ["layer1", "layer2", "decision", "external"];
23
+ // "local" marks project-local packages: `./`- or `../`-prefixed path entries in
24
+ // the target repo's praxis.yaml `packages:` list, resolved from the target repo
25
+ // itself rather than the tree Praxis ships (docs/wiki/packages-and-emit.md).
26
+ const LAYERS = ["layer1", "layer2", "decision", "external", "local"];
24
27
  export const packageManifestSchema = z.strictObject({
25
28
  name: z.string().min(1),
26
29
  layer: z.enum(LAYERS),
@@ -121,8 +124,54 @@ export function resolve(selected, available, declaredStacks = []) {
121
124
  }
122
125
  return resolved;
123
126
  }
124
- /** Resolve the selected packages against the installed set (filesystem-backed). */
125
- export function resolvePackages(selected, declaredStacks = []) {
126
- return resolve(selected, availablePackages(), declaredStacks);
127
+ /** True for a `praxis.yaml` packages entry that names a project-local package
128
+ * path (relative to the target repo cwd) rather than a shipped package name. */
129
+ export function isLocalPackagePath(entry) {
130
+ return entry.startsWith("./") || entry.startsWith("../");
131
+ }
132
+ /** Load a project-local package from `entry` (a `./`- or `../`-prefixed path in
133
+ * `praxis.yaml`), resolved against `cwd`. Fails loud if there's no
134
+ * `package.yaml` at that path, or if it doesn't declare `layer: local` — a
135
+ * project-local package must say so itself so provenance stays legible
136
+ * (shipped vs. project-owned) without cross-referencing praxis.yaml. */
137
+ export function loadLocalPackage(entry, cwd) {
138
+ const dir = resolvePath(cwd, entry);
139
+ const manifestPath = join(dir, "package.yaml");
140
+ if (!existsSync(manifestPath)) {
141
+ throw new Error(`praxis.yaml lists local package "${entry}" but no package.yaml exists at that path.`);
142
+ }
143
+ const manifest = parsePackageManifest(readFileSync(manifestPath, "utf8"), basename(dir));
144
+ if (manifest.layer !== "local") {
145
+ throw new Error(`Local package "${entry}" declares layer: ${manifest.layer}, but a project-local package ` +
146
+ `(a "./"-prefixed praxis.yaml entry) must declare \`layer: local\` — this keeps provenance ` +
147
+ `legible (shipped vs. project-owned) without cross-referencing praxis.yaml. Set \`layer: local\` ` +
148
+ `in ${entry}/package.yaml.`);
149
+ }
150
+ return { ...manifest, dir };
151
+ }
152
+ /**
153
+ * Resolve the selected packages against the installed set (filesystem-backed),
154
+ * plus any project-local packages the manifest names by path. A `./`- or
155
+ * `../`-prefixed entry is loaded from `cwd` via `loadLocalPackage`, checked for
156
+ * a name collision against every already-available package (shipped or an
157
+ * earlier local entry), and added to the available set under its declared
158
+ * name; non-path entries pass through unchanged. The actual composition rule
159
+ * (requires/conflicts/stack) still lives in the pure `resolve()` above.
160
+ */
161
+ export function resolvePackages(selected, declaredStacks = [], cwd = process.cwd()) {
162
+ const available = availablePackages();
163
+ const mapped = selected.map((entry) => {
164
+ if (!isLocalPackagePath(entry))
165
+ return entry;
166
+ const local = loadLocalPackage(entry, cwd);
167
+ const existing = available.get(local.name);
168
+ if (existing) {
169
+ throw new Error(`Local package "${entry}" collides with an already-installed package named "${local.name}".\n` +
170
+ `Rename its directory.`);
171
+ }
172
+ available.set(local.name, local);
173
+ return local.name;
174
+ });
175
+ return resolve(mapped, available, declaredStacks);
127
176
  }
128
177
  //# sourceMappingURL=packages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../src/packages.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,19 @@
1
1
  import { z } from "zod";
2
+ /**
3
+ * The neutral permission policy — a content package's *second artifact kind*
4
+ * (docs/wiki/packages-and-emit.md "provides", docs/wiki/emitters.md; decisions D18/D19). Where `rules.md` is
5
+ * tool-neutral prose, `permissions.yaml` is tool-neutral **structured intent**:
6
+ * it lists semantic *capabilities* in allow/ask/deny buckets. It is deliberately
7
+ * NOT a list of Claude Code rule strings — that would make the source tool-bound.
8
+ * Per-tool emitters translate each capability to concrete rules (or emit nothing
9
+ * where the tool has no permission model). This keeps "tool-neutral by
10
+ * construction" intact for the enforcement layer too.
11
+ *
12
+ * The capability vocabulary is closed (a zod enum): a policy may only reference
13
+ * capabilities every emitter knows how to translate, so a capability can never be
14
+ * silently dropped. Adding a capability is a deliberate edit here plus a mapping
15
+ * in each emitter — verified by conformance.
16
+ */
2
17
  declare const CAPABILITIES: readonly ["read-repo", "edit-repo", "run-dev-scripts", "read-only-git", "git-commit", "git-push", "install-deps", "destructive-delete", "force-push", "read-secrets", "global-install"];
3
18
  export type Capability = (typeof CAPABILITIES)[number];
4
19
  export declare const policySchema: z.ZodObject<{
@@ -47,8 +62,8 @@ export type Policy = z.infer<typeof policySchema>;
47
62
  * error naming each problem — mirrors parseManifest in src/manifest.ts. */
48
63
  export declare function parsePolicy(yamlText: string): Policy;
49
64
  /** The neutral policy for a content package, or undefined if it provides none.
50
- * Scans packages/<layer>/<pkg>/permissions.yaml — mirrors loadPackageSource. */
51
- export declare function loadPolicy(pkg: string): Policy | undefined;
65
+ * Reads `<dir>/permissions.yaml` — mirrors loadPackageSource (src/emit.ts). */
66
+ export declare function loadPolicy(dir: string): Policy | undefined;
52
67
  /** All capabilities referenced by a policy, across every bucket. */
53
68
  export declare function policyCapabilities(policy: Policy): Capability[];
54
69
  export {};
@@ -1,6 +1,5 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
1
+ import { existsSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
3
  import { parse as parseYaml } from "yaml";
5
4
  import { z } from "zod";
6
5
  import { BUCKETS } from "./merge-json.js";
@@ -19,7 +18,6 @@ import { BUCKETS } from "./merge-json.js";
19
18
  * silently dropped. Adding a capability is a deliberate edit here plus a mapping
20
19
  * in each emitter — verified by conformance.
21
20
  */
22
- const PACKAGES_DIR = new URL("../packages/", import.meta.url);
23
21
  // The closed capability vocabulary. Each is a durable, tool-agnostic intent;
24
22
  // emitters own the concrete per-tool translation. Grows deliberately.
25
23
  const CAPABILITIES = [
@@ -64,17 +62,10 @@ export function parsePolicy(yamlText) {
64
62
  return result.data;
65
63
  }
66
64
  /** The neutral policy for a content package, or undefined if it provides none.
67
- * Scans packages/<layer>/<pkg>/permissions.yaml — mirrors loadPackageSource. */
68
- export function loadPolicy(pkg) {
69
- const root = fileURLToPath(PACKAGES_DIR);
70
- for (const entry of readdirSync(root, { withFileTypes: true })) {
71
- if (!entry.isDirectory())
72
- continue;
73
- const candidate = join(root, entry.name, pkg, "permissions.yaml");
74
- if (existsSync(candidate))
75
- return parsePolicy(readFileSync(candidate, "utf8"));
76
- }
77
- return undefined;
65
+ * Reads `<dir>/permissions.yaml` — mirrors loadPackageSource (src/emit.ts). */
66
+ export function loadPolicy(dir) {
67
+ const candidate = join(dir, "permissions.yaml");
68
+ return existsSync(candidate) ? parsePolicy(readFileSync(candidate, "utf8")) : undefined;
78
69
  }
79
70
  /** All capabilities referenced by a policy, across every bucket. */
80
71
  export function policyCapabilities(policy) {
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AAEH,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,YAAY,GAAG;IACnB,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,gDAAgD;IAC7D,iBAAiB,EAAE,gDAAgD;IACnE,eAAe,EAAE,0BAA0B;IAC3C,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,qCAAqC;IACrD,oBAAoB,EAAE,qCAAqC;IAC3D,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,6CAA6C;CACvD,CAAC;AAIX,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,cAAc;IACrB,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAIH;4EAC4E;AAC5E,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,IAAI;YACzC,gCAAgC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3D,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
package/dist/plugins.d.ts CHANGED
@@ -31,5 +31,5 @@ export type PluginsBlock = z.infer<typeof pluginsBlockSchema>;
31
31
  * agent-actionable error naming each problem — mirrors parsePolicy. */
32
32
  export declare function parsePluginsBlock(yamlText: string, pkgName: string): PluginsBlock;
33
33
  /** The neutral plugins declaration for a content package, or undefined if it
34
- * provides none. Scans packages/<layer>/<pkg>/plugins.yaml — mirrors loadPolicy. */
35
- export declare function loadPluginsBlock(pkg: string): PluginsBlock | undefined;
34
+ * provides none. Reads `<dir>/plugins.yaml` — mirrors loadPolicy (src/permissions.ts). */
35
+ export declare function loadPluginsBlock(dir: string): PluginsBlock | undefined;
package/dist/plugins.js CHANGED
@@ -1,6 +1,5 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { fileURLToPath } from "node:url";
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { basename, join } from "node:path";
4
3
  import { parse as parseYaml } from "yaml";
5
4
  import { z } from "zod";
6
5
  /**
@@ -16,7 +15,6 @@ import { z } from "zod";
16
15
  * Mirrors `src/permissions.ts`: a neutral, validated YAML source per package,
17
16
  * loaded by scanning `packages/<layer>/<pkg>/plugins.yaml`.
18
17
  */
19
- const PACKAGES_DIR = new URL("../packages/", import.meta.url);
20
18
  // Marketplace source kinds Claude Code supports. Only "github" is verified and
21
19
  // in use today; the schema is closed so an unverified source kind fails loud
22
20
  // rather than being silently accepted and mis-emitted.
@@ -82,16 +80,9 @@ export function parsePluginsBlock(yamlText, pkgName) {
82
80
  return result.data;
83
81
  }
84
82
  /** The neutral plugins declaration for a content package, or undefined if it
85
- * provides none. Scans packages/<layer>/<pkg>/plugins.yaml — mirrors loadPolicy. */
86
- export function loadPluginsBlock(pkg) {
87
- const root = fileURLToPath(PACKAGES_DIR);
88
- for (const entry of readdirSync(root, { withFileTypes: true })) {
89
- if (!entry.isDirectory())
90
- continue;
91
- const candidate = join(root, entry.name, pkg, "plugins.yaml");
92
- if (existsSync(candidate))
93
- return parsePluginsBlock(readFileSync(candidate, "utf8"), pkg);
94
- }
95
- return undefined;
83
+ * provides none. Reads `<dir>/plugins.yaml` — mirrors loadPolicy (src/permissions.ts). */
84
+ export function loadPluginsBlock(dir) {
85
+ const candidate = join(dir, "plugins.yaml");
86
+ return existsSync(candidate) ? parsePluginsBlock(readFileSync(candidate, "utf8"), basename(dir)) : undefined;
96
87
  }
97
88
  //# sourceMappingURL=plugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
package/dist/program.d.ts CHANGED
@@ -3,6 +3,10 @@ import { type AnchorCheckReport } from "./anchors.js";
3
3
  import { type MethodologySize } from "./emit.js";
4
4
  import { type SharedInstructionReport } from "./shared-instructions.js";
5
5
  import { type SyncReport } from "./sync.js";
6
+ type WizardMode = "quick" | "customize";
7
+ export type WizardStep = "mode" | "stacks" | "packages" | "targets" | "preview";
8
+ /** The interactive install wizard is reversible until its final apply action. */
9
+ export declare function previousWizardStep(step: Exclude<WizardStep, "mode">, mode: WizardMode): WizardStep;
6
10
  /** This CLI's own version, read from its shipped package.json (falls back to "unknown"). */
7
11
  export declare function praxisVersion(): string;
8
12
  export interface ReconcileResult {
@@ -32,3 +36,4 @@ export interface ReconcileResult {
32
36
  */
33
37
  export declare function reconcile(cwd: string, write: boolean, mode: "sync" | "check"): ReconcileResult;
34
38
  export declare function buildProgram(): Command;
39
+ export {};