faceted-prompting 0.2.0 → 0.3.0

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.
Files changed (58) hide show
  1. package/README.md +29 -5
  2. package/dist/cli/compose-command.d.ts +3 -0
  3. package/dist/cli/compose-command.d.ts.map +1 -0
  4. package/dist/cli/compose-command.js +156 -0
  5. package/dist/cli/compose-command.js.map +1 -0
  6. package/dist/cli/compose-context.js +3 -3
  7. package/dist/cli/compose-context.js.map +1 -1
  8. package/dist/cli/index.d.ts.map +1 -1
  9. package/dist/cli/index.js +21 -89
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/install-skill/facet-token-file-ops.d.ts +7 -0
  12. package/dist/cli/install-skill/facet-token-file-ops.d.ts.map +1 -0
  13. package/dist/cli/install-skill/facet-token-file-ops.js +69 -0
  14. package/dist/cli/install-skill/facet-token-file-ops.js.map +1 -0
  15. package/dist/cli/install-skill/facet-token-renderer.d.ts +6 -0
  16. package/dist/cli/install-skill/facet-token-renderer.d.ts.map +1 -0
  17. package/dist/cli/install-skill/facet-token-renderer.js +35 -0
  18. package/dist/cli/install-skill/facet-token-renderer.js.map +1 -0
  19. package/dist/cli/install-skill/facets.d.ts +6 -3
  20. package/dist/cli/install-skill/facets.d.ts.map +1 -1
  21. package/dist/cli/install-skill/facets.js +33 -15
  22. package/dist/cli/install-skill/facets.js.map +1 -1
  23. package/dist/cli/install-skill/flow.d.ts +3 -3
  24. package/dist/cli/install-skill/flow.d.ts.map +1 -1
  25. package/dist/cli/install-skill/flow.js +115 -21
  26. package/dist/cli/install-skill/flow.js.map +1 -1
  27. package/dist/cli/install-skill/modes.d.ts +2 -10
  28. package/dist/cli/install-skill/modes.d.ts.map +1 -1
  29. package/dist/cli/install-skill/modes.js +18 -45
  30. package/dist/cli/install-skill/modes.js.map +1 -1
  31. package/dist/cli/path-guard.d.ts +1 -0
  32. package/dist/cli/path-guard.d.ts.map +1 -1
  33. package/dist/cli/path-guard.js +34 -2
  34. package/dist/cli/path-guard.js.map +1 -1
  35. package/dist/cli/runner.d.ts +1 -0
  36. package/dist/cli/runner.d.ts.map +1 -1
  37. package/dist/cli/runner.js +11 -0
  38. package/dist/cli/runner.js.map +1 -1
  39. package/dist/cli/skill-commands.d.ts +13 -4
  40. package/dist/cli/skill-commands.d.ts.map +1 -1
  41. package/dist/cli/skill-commands.js +66 -15
  42. package/dist/cli/skill-commands.js.map +1 -1
  43. package/dist/cli/skill-renderer.d.ts +7 -4
  44. package/dist/cli/skill-renderer.d.ts.map +1 -1
  45. package/dist/cli/skill-renderer.js +48 -21
  46. package/dist/cli/skill-renderer.js.map +1 -1
  47. package/dist/cli/update-check.d.ts +2 -0
  48. package/dist/cli/update-check.d.ts.map +1 -0
  49. package/dist/cli/update-check.js +32 -0
  50. package/dist/cli/update-check.js.map +1 -0
  51. package/dist/init/index.d.ts +5 -1
  52. package/dist/init/index.d.ts.map +1 -1
  53. package/dist/init/index.js +36 -19
  54. package/dist/init/index.js.map +1 -1
  55. package/dist/prompt-payload.d.ts +2 -1
  56. package/dist/prompt-payload.d.ts.map +1 -1
  57. package/dist/prompt-payload.js.map +1 -1
  58. package/package.json +8 -2
package/README.md CHANGED
@@ -63,9 +63,12 @@ const result = compose(
63
63
  ### As a CLI
64
64
 
65
65
  ```bash
66
- # Create local defaults under ~/.faceted
66
+ # Create local .faceted/ in current directory
67
67
  facet init
68
68
 
69
+ # Initialize global ~/.faceted/ and pull sample facets
70
+ facet init global
71
+
69
72
  # Pull sample facets from TAKT on GitHub
70
73
  facet pull-sample
71
74
 
@@ -76,10 +79,19 @@ facet compose
76
79
  facet install skill
77
80
  ```
78
81
 
79
- `facet init` creates `~/.faceted/` with config, directories, compositions, and templates:
82
+ `facet init` creates `.faceted/` in the current directory with config and empty directories. `facet init global` initializes `~/.faceted/` and pulls sample facets. Run `facet pull-sample` to update sample facets, compositions, and templates:
80
83
 
81
84
  ```
82
- ~/.faceted/
85
+ .faceted/ # Local (per-project)
86
+ ├── config.yaml
87
+ ├── facets/
88
+ │ ├── persona/
89
+ │ ├── knowledge/
90
+ │ ├── policies/
91
+ │ └── compositions/
92
+ └── templates/
93
+
94
+ ~/.faceted/ # Global (fallback)
83
95
  ├── config.yaml
84
96
  ├── facets/
85
97
  │ ├── persona/ # Persona Markdown files
@@ -93,7 +105,8 @@ facet install skill
93
105
 
94
106
  | Command | Description |
95
107
  |---------|-------------|
96
- | `facet init` | Create local config, facet directories, compositions, and templates |
108
+ | `facet init` | Create local `.faceted/` in current directory |
109
+ | `facet init global` | Initialize global `~/.faceted/` and pull sample facets |
97
110
  | `facet pull-sample` | Pull sample coding facets from TAKT on GitHub |
98
111
  | `facet compose` | Auto-detect context, compose prompts, and write to files |
99
112
  | `facet install skill` | Install a skill with facets to Claude Code or Codex |
@@ -182,7 +195,16 @@ See the [API Reference](./docs/api-reference.md) for the full API surface.
182
195
  ## Project Structure
183
196
 
184
197
  ```
185
- ~/.faceted/ # Global config (created on first run)
198
+ .faceted/ # Local (per-project, created by `facet init`)
199
+ ├── config.yaml
200
+ ├── facets/
201
+ │ ├── persona/
202
+ │ ├── knowledge/
203
+ │ ├── policies/
204
+ │ └── compositions/
205
+ └── templates/
206
+
207
+ ~/.faceted/ # Global (fallback, created by `facet init global`)
186
208
  ├── config.yaml
187
209
  ├── facets/
188
210
  │ ├── persona/
@@ -193,6 +215,8 @@ See the [API Reference](./docs/api-reference.md) for the full API surface.
193
215
  └── repertoire/ # Installed repertoire packages
194
216
  ```
195
217
 
218
+ Facet resolution is local-first: local `.faceted/facets/` is checked before global `~/.faceted/facets/`.
219
+
196
220
  ## Documentation
197
221
 
198
222
  | Document | Description |
@@ -0,0 +1,3 @@
1
+ import type { FacetCliOptions, FacetCliResult } from './types.js';
2
+ export declare function runComposeCommand(options: FacetCliOptions): Promise<FacetCliResult>;
3
+ //# sourceMappingURL=compose-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-command.d.ts","sourceRoot":"","sources":["../../src/cli/compose-command.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8KlE,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BzF"}
@@ -0,0 +1,156 @@
1
+ import { existsSync, mkdirSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { compose } from '../compose.js';
4
+ import { loadComposeDefinition } from '../compose-definition.js';
5
+ import { formatCombinedOutput, resolveOutputDirectory, writeComposeOutput } from '../output/index.js';
6
+ import { buildFacetSet, buildSkillSections, ensureSafeDefinitionName, } from './skill-renderer.js';
7
+ import { getSkillPaths, selectCompositionDefinitionPath, } from './skill-commands.js';
8
+ import { collectDirectoryFiles, copyDirectoryTree, ensureTemplateDirectoryFromRoots, shouldOverwrite, } from './install-skill/flow.js';
9
+ import { applyFacetTokensToFiles, buildInlineFacetTokenValues } from './install-skill/facets.js';
10
+ import { ensurePathAncestorsContainNoSymbolicLinks, ensurePathIsNotSymbolicLink } from './path-guard.js';
11
+ function buildComposeOutputPlans(params) {
12
+ if (params.splitSystem) {
13
+ return [
14
+ {
15
+ fileName: `${params.safeName}.system.md`,
16
+ content: `${params.systemPrompt}\n`,
17
+ },
18
+ {
19
+ fileName: `${params.safeName}.user.md`,
20
+ content: `${params.userMessage}\n`,
21
+ },
22
+ ];
23
+ }
24
+ return [
25
+ {
26
+ fileName: `${params.safeName}.md`,
27
+ content: formatCombinedOutput({
28
+ systemPrompt: params.systemPrompt,
29
+ userMessage: params.userMessage,
30
+ }),
31
+ },
32
+ ];
33
+ }
34
+ async function confirmOverwriteForExistingPaths(params) {
35
+ if (params.existingPaths.length === 0) {
36
+ return false;
37
+ }
38
+ const overwriteAnswer = await params.options.input(`${params.promptMessage} (${params.existingPaths.join(', ')}) [y/N]`, 'n');
39
+ if (!shouldOverwrite(overwriteAnswer)) {
40
+ throw new Error(`${params.cancelMessage}: ${params.existingPaths.join(', ')}`);
41
+ }
42
+ return true;
43
+ }
44
+ async function runTemplateBackedCompose(params) {
45
+ const templateName = params.definition.template;
46
+ if (!templateName) {
47
+ throw new Error(`Template-backed compose requires template: ${params.definition.name}`);
48
+ }
49
+ const templateDir = ensureTemplateDirectoryFromRoots(params.facetedRoots, templateName);
50
+ const outputInput = await params.options.input('Output directory', params.options.cwd);
51
+ const outputDir = resolveOutputDirectory(outputInput, params.options.cwd);
52
+ ensurePathIsNotSymbolicLink(outputDir, 'Output directory');
53
+ ensurePathAncestorsContainNoSymbolicLinks(outputDir, 'Output directory', params.options.cwd);
54
+ mkdirSync(outputDir, { recursive: true });
55
+ const templateRelativePaths = collectDirectoryFiles(templateDir);
56
+ const templateOutputPaths = templateRelativePaths.map(relativePath => resolve(outputDir, relativePath));
57
+ await confirmOverwriteForExistingPaths({
58
+ options: params.options,
59
+ existingPaths: templateOutputPaths.filter(path => existsSync(path)),
60
+ promptMessage: 'Output files exist. Overwrite?',
61
+ cancelMessage: 'Output files exist and overwrite was cancelled',
62
+ });
63
+ copyDirectoryTree(templateDir, outputDir);
64
+ const sections = buildSkillSections({
65
+ definition: params.definition,
66
+ definitionDir: dirname(params.definitionPath),
67
+ facetsRoots: params.facetsRoots,
68
+ });
69
+ applyFacetTokensToFiles({
70
+ filePaths: templateOutputPaths.filter(path => existsSync(path)),
71
+ tokenValues: buildInlineFacetTokenValues(sections),
72
+ rootDir: outputDir,
73
+ });
74
+ return {
75
+ kind: 'path',
76
+ path: outputDir,
77
+ };
78
+ }
79
+ async function runStandardCompose(params) {
80
+ const safeName = ensureSafeDefinitionName(params.definition.name);
81
+ const facetSet = buildFacetSet({
82
+ definitionDir: dirname(params.definitionPath),
83
+ facetsRoots: params.facetsRoots,
84
+ definition: params.definition,
85
+ });
86
+ const composed = compose(facetSet, {
87
+ contextMaxChars: 2000,
88
+ userMessageOrder: params.definition.order,
89
+ });
90
+ const splitSelection = await params.options.select(['Combined (single file)', 'Split (system + user)'], 'Choose output mode with Up/Down and Enter:');
91
+ const outputPlans = buildComposeOutputPlans({
92
+ safeName,
93
+ systemPrompt: composed.systemPrompt,
94
+ userMessage: composed.userMessage,
95
+ splitSystem: splitSelection === 'Split (system + user)',
96
+ });
97
+ const outputInput = await params.options.input('Output directory', params.options.cwd);
98
+ const outputDir = resolveOutputDirectory(outputInput, params.options.cwd);
99
+ const existingPaths = outputPlans
100
+ .map(plan => resolve(outputDir, plan.fileName))
101
+ .filter(path => existsSync(path));
102
+ const overwrite = await confirmOverwriteForExistingPaths({
103
+ options: params.options,
104
+ existingPaths,
105
+ promptMessage: 'Output file exists. Overwrite?',
106
+ cancelMessage: 'Output file exists and overwrite was cancelled',
107
+ });
108
+ const outputPaths = [];
109
+ for (const plan of outputPlans) {
110
+ outputPaths.push(await writeComposeOutput({
111
+ outputDir,
112
+ fileName: plan.fileName,
113
+ content: plan.content,
114
+ overwrite,
115
+ }));
116
+ }
117
+ if (outputPaths.length === 1) {
118
+ return {
119
+ kind: 'path',
120
+ path: outputPaths[0],
121
+ };
122
+ }
123
+ return {
124
+ kind: 'paths',
125
+ paths: outputPaths,
126
+ };
127
+ }
128
+ export async function runComposeCommand(options) {
129
+ const { facetedRoots, facetsRoots, compositionsDirs } = getSkillPaths(options.cwd, options.homeDir);
130
+ const localCompositionsDir = facetedRoots.length > 1 ? resolve(facetedRoots[0], 'compositions') : undefined;
131
+ const globalCompositionsDir = resolve(facetedRoots[facetedRoots.length - 1], 'compositions');
132
+ const { definitionPath } = await selectCompositionDefinitionPath({
133
+ options,
134
+ compositionDefinitionDirs: compositionsDirs,
135
+ localCompositionsDir,
136
+ globalCompositionsDir,
137
+ cancelAction: 'Compose',
138
+ });
139
+ const definition = await loadComposeDefinition(definitionPath);
140
+ if (definition.template) {
141
+ return runTemplateBackedCompose({
142
+ options,
143
+ facetedRoots,
144
+ facetsRoots,
145
+ definitionPath,
146
+ definition,
147
+ });
148
+ }
149
+ return runStandardCompose({
150
+ options,
151
+ facetsRoots,
152
+ definitionPath,
153
+ definition,
154
+ });
155
+ }
156
+ //# sourceMappingURL=compose-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-command.js","sourceRoot":"","sources":["../../src/cli/compose-command.ts"],"names":[],"mappings":"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"}
@@ -93,9 +93,9 @@ function detectGitRelatedFiles(cwd) {
93
93
  }
94
94
  const collected = new Set();
95
95
  const commands = [
96
- ['diff', '--name-only', '--diff-filter=ACMR'],
97
- ['diff', '--name-only', '--cached', '--diff-filter=ACMR'],
98
- ['ls-files', '--others', '--exclude-standard'],
96
+ ['diff', '--name-only', '--diff-filter=ACMR', '--', '.'],
97
+ ['diff', '--name-only', '--cached', '--diff-filter=ACMR', '--', '.'],
98
+ ['ls-files', '--others', '--exclude-standard', '--', '.'],
99
99
  ];
100
100
  for (const args of commands) {
101
101
  const output = execFileSync('git', args, {
@@ -1 +1 @@
1
- {"version":3,"file":"compose-context.js","sourceRoot":"","sources":["../../src/cli/compose-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-context.js","sourceRoot":"","sources":["../../src/cli/compose-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAoHlE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAkDzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2BlE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA4DzB"}
package/dist/cli/index.js CHANGED
@@ -1,18 +1,15 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { dirname, resolve } from 'node:path';
3
- import { compose } from '../compose.js';
4
- import { readFacetedConfig } from '../config/index.js';
5
- import { initializeFacetedHome, listPullSampleTargetPaths, pullSampleFacets } from '../init/index.js';
6
- import { formatCombinedOutput, resolveOutputDirectory, writeComposeOutput } from '../output/index.js';
7
- import { resolveComposeContext } from './compose-context.js';
8
- import { buildFacetSet, ensureSafeDefinitionName } from './skill-renderer.js';
9
- import { getSkillPaths, runInstallSkillCommand, } from './skill-commands.js';
2
+ import { resolve } from 'node:path';
3
+ import { initializeGlobalFaceted, initializeLocalFaceted, listPullSampleTargetPaths, pullSampleFacets, } from '../init/index.js';
4
+ import { runComposeCommand, } from './compose-command.js';
5
+ import { runInstallSkillCommand, } from './skill-commands.js';
10
6
  import { shouldOverwrite } from './install-skill/flow.js';
11
7
  const USAGE = [
12
8
  'Usage: facet <command>',
13
9
  '',
14
10
  'Commands:',
15
- ' init Initialize local faceted home',
11
+ ' init Initialize local faceted home (.faceted under cwd)',
12
+ ' init global Initialize global faceted home (~/.faceted) and pull sample facets',
16
13
  ' pull-sample Pull sample coding facets from TAKT on GitHub',
17
14
  ' compose Compose facets into a prompt file',
18
15
  ' install skill Install a skill from a composition',
@@ -28,89 +25,25 @@ function ensureSkillSubcommand(command, subcommand) {
28
25
  throw new Error(`Unsupported command: ${command}`);
29
26
  }
30
27
  }
31
- async function runComposeCommand(options) {
32
- const { facetsRoot, compositionsDir } = getSkillPaths(options.homeDir);
33
- const composeContext = resolveComposeContext(options.cwd);
34
- const definition = {
35
- name: composeContext.name,
36
- persona: 'coder',
37
- policies: ['coding', 'ai-antipattern'],
38
- knowledge: composeContext.knowledgeRefs,
39
- instruction: composeContext.relatedInstruction,
40
- order: ['policies', 'knowledge', 'instruction'],
41
- };
42
- const definitionDir = dirname(compositionsDir);
43
- const facetSet = buildFacetSet({
44
- definitionDir,
45
- facetsRoot,
46
- definition,
47
- });
48
- const composed = compose(facetSet, {
49
- contextMaxChars: 2000,
50
- userMessageOrder: definition.order,
51
- });
52
- const splitSelection = await options.select(['Combined (single file)', 'Split (system + user)'], 'Choose output mode with Up/Down and Enter:');
53
- const splitSystem = splitSelection === 'Split (system + user)';
54
- const outputInput = await options.input('Output directory', options.cwd);
55
- const outputDir = resolveOutputDirectory(outputInput, options.cwd);
56
- const safeName = ensureSafeDefinitionName(definition.name);
57
- const outputPlans = splitSystem
58
- ? [
59
- {
60
- fileName: `${safeName}.system.md`,
61
- content: `${composed.systemPrompt}\n`,
62
- },
63
- {
64
- fileName: `${safeName}.user.md`,
65
- content: `${composed.userMessage}\n`,
66
- },
67
- ]
68
- : [
69
- {
70
- fileName: `${safeName}.md`,
71
- content: formatCombinedOutput(composed),
72
- },
73
- ];
74
- const existingPaths = outputPlans
75
- .map(plan => resolve(outputDir, plan.fileName))
76
- .filter(path => existsSync(path));
77
- let overwrite = false;
78
- if (existingPaths.length > 0) {
79
- const overwriteAnswer = await options.input(`Output file exists. Overwrite? (${existingPaths.join(', ')}) [y/N]`, 'n');
80
- if (!shouldOverwrite(overwriteAnswer)) {
81
- throw new Error(`Output file exists and overwrite was cancelled: ${existingPaths.join(', ')}`);
82
- }
83
- overwrite = true;
84
- }
85
- const outputPaths = [];
86
- for (const plan of outputPlans) {
87
- outputPaths.push(await writeComposeOutput({
88
- outputDir,
89
- fileName: plan.fileName,
90
- content: plan.content,
91
- overwrite,
92
- }));
93
- }
94
- if (outputPaths.length === 1) {
95
- return {
96
- kind: 'path',
97
- path: outputPaths[0],
98
- };
99
- }
100
- return {
101
- kind: 'paths',
102
- paths: outputPaths,
103
- };
104
- }
105
28
  export async function runFacetCli(args, options) {
106
29
  const command = ensureCommand(args[0]);
107
30
  const subcommand = args[1];
108
31
  if (command === 'init') {
109
- await initializeFacetedHome({ homeDir: options.homeDir });
110
- return {
111
- kind: 'text',
112
- text: `Initialized: ${resolve(options.homeDir, '.faceted')}`,
113
- };
32
+ if (subcommand === undefined) {
33
+ await initializeLocalFaceted({ cwd: options.cwd });
34
+ return {
35
+ kind: 'text',
36
+ text: `Initialized: ${resolve(options.cwd, '.faceted')}`,
37
+ };
38
+ }
39
+ if (subcommand === 'global') {
40
+ await initializeGlobalFaceted({ homeDir: options.homeDir });
41
+ return {
42
+ kind: 'text',
43
+ text: `Initialized global with sample facets: ${resolve(options.homeDir, '.faceted')}`,
44
+ };
45
+ }
46
+ throw new Error(`Unsupported command: ${command} ${subcommand}`);
114
47
  }
115
48
  if (command === 'pull-sample') {
116
49
  const overlappingPaths = listPullSampleTargetPaths(options.homeDir).filter(path => existsSync(path));
@@ -131,7 +64,6 @@ export async function runFacetCli(args, options) {
131
64
  if (command !== 'compose' && command !== 'install') {
132
65
  throw new Error(`Unsupported command: ${command}`);
133
66
  }
134
- await readFacetedConfig(options.homeDir);
135
67
  if (command === 'compose') {
136
68
  return runComposeCommand(options);
137
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function readUtf8FileWithoutFollowingSymbolicLinks(filePath: string): string;
2
+ export declare function writeUtf8FileWithoutFollowingSymbolicLinks(filePath: string, content: string): void;
3
+ export declare function resolveBoundedOutputFilePath(filePath: string, rootDir: string): {
4
+ filePath: string;
5
+ rootRealPath: string;
6
+ };
7
+ //# sourceMappingURL=facet-token-file-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-token-file-ops.d.ts","sourceRoot":"","sources":["../../../src/cli/install-skill/facet-token-file-ops.ts"],"names":[],"mappings":"AAIA,wBAAgB,yCAAyC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmBlF;AAED,wBAAgB,0CAA0C,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBlG;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA8B5C"}
@@ -0,0 +1,69 @@
1
+ import { closeSync, constants, existsSync, lstatSync, openSync, readFileSync, realpathSync, writeFileSync } from 'node:fs';
2
+ import { basename, dirname, join, resolve } from 'node:path';
3
+ import { ensurePathAncestorsContainNoSymbolicLinks, isWithinRoot } from '../path-guard.js';
4
+ export function readUtf8FileWithoutFollowingSymbolicLinks(filePath) {
5
+ const openFlags = constants.O_RDONLY | constants.O_NOFOLLOW;
6
+ let fileDescriptor;
7
+ try {
8
+ fileDescriptor = openSync(filePath, openFlags);
9
+ }
10
+ catch (error) {
11
+ const errorCode = error.code;
12
+ if (errorCode === 'ELOOP') {
13
+ throw new Error(`Symbolic links are not allowed for output file: ${filePath}`);
14
+ }
15
+ throw error;
16
+ }
17
+ try {
18
+ return readFileSync(fileDescriptor, 'utf-8');
19
+ }
20
+ finally {
21
+ closeSync(fileDescriptor);
22
+ }
23
+ }
24
+ export function writeUtf8FileWithoutFollowingSymbolicLinks(filePath, content) {
25
+ const openFlags = constants.O_WRONLY | constants.O_TRUNC | constants.O_NOFOLLOW;
26
+ let fileDescriptor;
27
+ try {
28
+ fileDescriptor = openSync(filePath, openFlags);
29
+ }
30
+ catch (error) {
31
+ const errorCode = error.code;
32
+ if (errorCode === 'ELOOP') {
33
+ throw new Error(`Symbolic links are not allowed for output file: ${filePath}`);
34
+ }
35
+ throw error;
36
+ }
37
+ try {
38
+ writeFileSync(fileDescriptor, content, 'utf-8');
39
+ }
40
+ finally {
41
+ closeSync(fileDescriptor);
42
+ }
43
+ }
44
+ export function resolveBoundedOutputFilePath(filePath, rootDir) {
45
+ const resolvedRootDir = resolve(rootDir);
46
+ const resolvedFilePath = resolve(filePath);
47
+ ensurePathAncestorsContainNoSymbolicLinks(resolvedFilePath, 'Output directory', resolvedRootDir);
48
+ const rootRealPath = realpathSync(resolvedRootDir);
49
+ const parentDir = dirname(resolvedFilePath);
50
+ if (!existsSync(parentDir)) {
51
+ throw new Error(`Output file directory does not exist: ${parentDir}`);
52
+ }
53
+ const parentRealPath = realpathSync(parentDir);
54
+ if (!isWithinRoot(parentRealPath, rootRealPath)) {
55
+ throw new Error(`Output path escapes target directory: ${resolvedFilePath}`);
56
+ }
57
+ const boundedFilePath = join(parentRealPath, basename(resolvedFilePath));
58
+ if (!existsSync(boundedFilePath)) {
59
+ throw new Error(`Output file does not exist: ${resolvedFilePath}`);
60
+ }
61
+ if (lstatSync(boundedFilePath).isSymbolicLink()) {
62
+ throw new Error(`Symbolic links are not allowed for output file: ${resolvedFilePath}`);
63
+ }
64
+ return {
65
+ filePath: boundedFilePath,
66
+ rootRealPath,
67
+ };
68
+ }
69
+ //# sourceMappingURL=facet-token-file-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-token-file-ops.js","sourceRoot":"","sources":["../../../src/cli/install-skill/facet-token-file-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ type FacetPlaceholderKey = 'persona' | 'knowledges' | 'policies' | 'instructions';
2
+ export type FacetTokenValues = Record<FacetPlaceholderKey, string>;
3
+ export declare function hasFacetToken(content: string): boolean;
4
+ export declare function replaceFacetTokens(content: string, values: FacetTokenValues): string;
5
+ export {};
6
+ //# sourceMappingURL=facet-token-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-token-renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/install-skill/facet-token-renderer.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAOnE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAkBpF"}
@@ -0,0 +1,35 @@
1
+ const FACET_TOKEN_PATTERN = /{{\s*facet:(persona|knowledges|policies|instructions)(?:\s*\|\s*indent:(none))?\s*}}/g;
2
+ const FACET_TOKEN_TEST = /{{\s*facet:(persona|knowledges|policies|instructions)(?:\s*\|\s*indent:(none))?\s*}}/;
3
+ export function hasFacetToken(content) {
4
+ return FACET_TOKEN_TEST.test(content);
5
+ }
6
+ export function replaceFacetTokens(content, values) {
7
+ return content.replaceAll(FACET_TOKEN_PATTERN, (_match, token, indentMode, offset, source) => {
8
+ const value = values[token];
9
+ if (indentMode === 'none') {
10
+ return value;
11
+ }
12
+ const lineIndent = detectPlaceholderLineIndent(source, offset);
13
+ return applyAutoIndentToMultilineValue(value, lineIndent);
14
+ });
15
+ }
16
+ function detectPlaceholderLineIndent(source, offset) {
17
+ const lineStart = source.lastIndexOf('\n', offset - 1) + 1;
18
+ const linePrefix = source.slice(lineStart, offset);
19
+ return /^\s*$/.test(linePrefix) ? linePrefix : '';
20
+ }
21
+ function applyAutoIndentToMultilineValue(value, lineIndent) {
22
+ if (lineIndent === '' || !value.includes('\n')) {
23
+ return value;
24
+ }
25
+ const lines = value.split('\n');
26
+ return lines
27
+ .map((line, index) => {
28
+ if (index === 0 || line === '') {
29
+ return line;
30
+ }
31
+ return `${lineIndent}${line}`;
32
+ })
33
+ .join('\n');
34
+ }
35
+ //# sourceMappingURL=facet-token-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-token-renderer.js","sourceRoot":"","sources":["../../../src/cli/install-skill/facet-token-renderer.ts"],"names":[],"mappings":"AAIA,MAAM,mBAAmB,GACvB,uFAAuF,CAAC;AAC1F,MAAM,gBAAgB,GACpB,sFAAsF,CAAC;AAEzF,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAwB;IAC1E,OAAO,OAAO,CAAC,UAAU,CACvB,mBAAmB,EACnB,CACE,MAAc,EACd,KAA0B,EAC1B,UAA8B,EAC9B,MAAc,EACd,MAAc,EACd,EAAE;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc,EAAE,MAAc;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAa,EAAE,UAAkB;IACxE,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { buildSkillSections } from '../skill-renderer.js';
2
2
  import type { CopyFiles } from '../../types.js';
3
- type FacetPlaceholderKey = 'persona' | 'knowledges' | 'policies' | 'instructions';
4
- type FacetTokenValues = Record<FacetPlaceholderKey, string>;
3
+ import type { FacetTokenValues } from './facet-token-renderer.js';
5
4
  export type SkillSections = ReturnType<typeof buildSkillSections>;
6
5
  export interface FacetPathMap {
7
6
  readonly persona: string;
@@ -23,6 +22,10 @@ export declare function applyFacetTokensToPath(params: {
23
22
  tokenValues: FacetTokenValues;
24
23
  excludeDirs: readonly string[];
25
24
  }): void;
25
+ export declare function applyFacetTokensToFiles(params: {
26
+ filePaths: readonly string[];
27
+ tokenValues: FacetTokenValues;
28
+ rootDir: string;
29
+ }): void;
26
30
  export declare function parseScanDepth(rawDepth: string): number;
27
- export {};
28
31
  //# sourceMappingURL=facets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../../src/cli/install-skill/facets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,KAAK,mBAAmB,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;AAClF,KAAK,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AA8BD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB,CAOrF;AAQD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,YAAY,GACnB,aAAa,CA6Cf;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,YAAY,CAiDf;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,GAAG,IAAI,CAqCP;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD"}
1
+ {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../../src/cli/install-skill/facets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AA8BD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB,CAOrF;AAyBD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,YAAY,GACnB,aAAa,CA6Cf;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,YAAY,CAiDf;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,GAAG,IAAI,CAiCP;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAQP;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD"}