@fyuld/snitch 2.3.11 → 3.0.1

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.
@@ -14,9 +14,16 @@
14
14
  "items": {
15
15
  "$ref": "#/definitions/ViolationRule"
16
16
  }
17
+ },
18
+ "instructions": {
19
+ "type": "array",
20
+ "description": "List of instruction file URLs for AI agents",
21
+ "items": {
22
+ "type": "string"
23
+ }
17
24
  }
18
25
  },
19
- "required": ["title", "violations"],
26
+ "required": ["title", "violations", "instructions"],
20
27
  "additionalProperties": false,
21
28
  "definitions": {
22
29
  "ViolationRule": {
@@ -20,17 +20,62 @@
20
20
  "type": "object",
21
21
  "description": "Policy definitions with provider pipelines",
22
22
  "additionalProperties": {
23
- "$ref": "./policy.schema.json"
23
+ "oneOf": [
24
+ {
25
+ "$ref": "./policy.schema.json"
26
+ },
27
+ {
28
+ "type": "object",
29
+ "properties": {
30
+ "$ref": {
31
+ "type": "string",
32
+ "description": "URL to external policy configuration"
33
+ }
34
+ },
35
+ "required": ["$ref"],
36
+ "additionalProperties": false
37
+ }
38
+ ]
24
39
  }
25
40
  },
26
41
  "thirdPartyTools": {
27
42
  "type": "array",
28
43
  "description": "Third party tools (formatters, test runners, etc.) to install and configure",
29
44
  "items": {
30
- "$ref": "./third-party-tool.schema.json"
45
+ "oneOf": [
46
+ {
47
+ "$ref": "./third-party-tool.schema.json"
48
+ },
49
+ {
50
+ "type": "object",
51
+ "properties": {
52
+ "$ref": {
53
+ "type": "string",
54
+ "description": "URL to external tool configuration"
55
+ }
56
+ },
57
+ "required": ["$ref"],
58
+ "additionalProperties": false
59
+ }
60
+ ]
31
61
  }
62
+ },
63
+ "instructions": {
64
+ "type": "object",
65
+ "description": "High-level instructions for AI agents",
66
+ "properties": {
67
+ "dontEdit": {
68
+ "type": "array",
69
+ "description": "List of paths that should not be edited by AI agents",
70
+ "items": {
71
+ "type": "string"
72
+ }
73
+ }
74
+ },
75
+ "required": ["dontEdit"],
76
+ "additionalProperties": false
32
77
  }
33
78
  },
34
- "required": ["sourceDirectory", "testsDirectory", "policies"],
79
+ "required": ["sourceDirectory", "testsDirectory", "policies", "instructions"],
35
80
  "additionalProperties": false
36
81
  }
@@ -60,6 +60,19 @@
60
60
  }
61
61
  ]
62
62
  },
63
+ "instructions": {
64
+ "oneOf": [
65
+ {
66
+ "type": "string",
67
+ "description": "Instruction file URL for AI agents"
68
+ },
69
+ {
70
+ "type": "string",
71
+ "enum": ["Instructions Not Required"],
72
+ "description": "No instructions required for this tool"
73
+ }
74
+ ]
75
+ },
63
76
  "sideEffects": {
64
77
  "type": "object",
65
78
  "description": "Side effects to apply to project files",
@@ -72,6 +85,6 @@
72
85
  "additionalProperties": false
73
86
  }
74
87
  },
75
- "required": ["title", "description", "id", "purpose", "configFilename", "software", "configuration"],
88
+ "required": ["title", "configFilename", "software", "configuration", "instructions"],
76
89
  "additionalProperties": false
77
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firstRun.d.ts","sourceRoot":"","sources":["../../src/commands/firstRun.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAInD,wBAAsB,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7F"}
1
+ {"version":3,"file":"firstRun.d.ts","sourceRoot":"","sources":["../../src/commands/firstRun.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAInD,wBAAsB,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD7F"}
@@ -46,11 +46,13 @@ async function firstRunCommand(projectName, maybeUrl) {
46
46
  console.log(`Created ${file.path}`);
47
47
  }
48
48
  const packageJsonPath = path.resolve('package.json');
49
+ let finalPackageJson;
49
50
  for (const update of result.packageJsonUpdates) {
50
51
  const currentPackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
51
52
  const mergedPackageJson = (0, json_merge_1.mergeJson)(currentPackageJson, update.updates);
52
53
  fs.writeFileSync(packageJsonPath, JSON.stringify(mergedPackageJson, null, 2), 'utf-8');
53
54
  console.log('Updated package.json with side effects');
55
+ finalPackageJson = mergedPackageJson;
54
56
  }
55
57
  const createdDirs = [];
56
58
  for (const dir of result.directories) {
@@ -72,5 +74,17 @@ async function firstRunCommand(projectName, maybeUrl) {
72
74
  (0, child_process_1.execSync)('npm install', { stdio: 'inherit' });
73
75
  console.log('Installed all packages');
74
76
  }
77
+ if (finalPackageJson && finalPackageJson.scripts) {
78
+ const scripts = Object.keys(finalPackageJson.scripts).filter((script) => script !== 'test');
79
+ for (const script of scripts) {
80
+ console.log(`Running npm run ${script}...`);
81
+ try {
82
+ (0, child_process_1.execSync)(`npm run ${script}`, { stdio: 'inherit' });
83
+ }
84
+ catch (error) {
85
+ console.log(`Failed to run npm run ${script}`);
86
+ }
87
+ }
88
+ }
75
89
  }
76
90
  //# sourceMappingURL=firstRun.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firstRun.js","sourceRoot":"","sources":["../../src/commands/firstRun.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAuCC;AA9CD,uCAAwB;AACxB,2CAA4B;AAC5B,iDAAwC;AAExC,iCAA6B;AAC7B,oDAA+C;AAExC,KAAK,UAAU,eAAe,CAAC,WAAwB,EAAE,QAAc;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACpD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;QAChF,MAAM,iBAAiB,GAAG,IAAA,sBAAS,EAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACvE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACtF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACnC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;IAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAE1E,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAA;QAC3E,IAAA,wBAAQ,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"firstRun.js","sourceRoot":"","sources":["../../src/commands/firstRun.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,aAAa,EAAqB,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAA0C,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAG/G,wBAAsB,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBjF;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CpD"}
1
+ {"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,aAAa,EAAmC,MAAM,4BAA4B,CAAA;AACnH,OAAO,EAGL,mBAAmB,EAEpB,MAAM,mCAAmC,CAAA;AAK1C,wBAAsB,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CA4DjF;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CpD"}
@@ -46,6 +46,7 @@ const child_process_1 = require("child_process");
46
46
  const SnitchConfigManager_1 = require("../SnitchConfigManager");
47
47
  const third_party_tools_1 = require("../utils/third-party-tools");
48
48
  const json_merge_1 = require("../utils/json-merge");
49
+ const markdown_config_parser_1 = require("../utils/markdown-config-parser");
49
50
  async function prepare(config) {
50
51
  const resolvedTools = [];
51
52
  if (config.thirdPartyTools && config.thirdPartyTools.length > 0) {
@@ -57,9 +58,39 @@ async function prepare(config) {
57
58
  const toolsResult = resolvedTools.length > 0
58
59
  ? await (0, third_party_tools_1.prepareThirdPartyTools)(resolvedTools)
59
60
  : { files: [], directories: [], packageJsonUpdates: [], npmInstallRequired: false };
60
- const directories = [{ path: config.sourceDirectory }, { path: config.testsDirectory }];
61
+ const policyInstructionFiles = [];
62
+ for (const policyEntry of Object.values(config.policies)) {
63
+ const policy = await resolvePolicy(policyEntry);
64
+ for (const instructionUrl of policy.instructions) {
65
+ const { filename, content } = await downloadPolicyInstruction(instructionUrl);
66
+ policyInstructionFiles.push({
67
+ path: `.snitch/instructions/${filename}`,
68
+ content,
69
+ });
70
+ }
71
+ }
72
+ const allInstructionFiles = [
73
+ ...toolsResult.files.filter((f) => f.path.startsWith('.snitch/instructions/')),
74
+ ...policyInstructionFiles,
75
+ ];
76
+ const language = detectLanguage(resolvedTools);
77
+ const dontEditPaths = ['.claude', '.snitch', 'configs', ...config.instructions.dontEdit];
78
+ const aggregatedInstructions = {
79
+ path: '.claude/INSTRUCTIONS.md',
80
+ content: aggregatePolicyInstructions(allInstructionFiles, language, dontEditPaths),
81
+ };
82
+ const allFiles = [
83
+ ...toolsResult.files.filter((f) => !f.path.startsWith('.snitch/instructions/') && f.path !== '.claude/INSTRUCTIONS.md'),
84
+ ...policyInstructionFiles,
85
+ aggregatedInstructions,
86
+ ];
87
+ const directories = [
88
+ { path: config.sourceDirectory },
89
+ { path: config.testsDirectory },
90
+ ...toolsResult.directories,
91
+ ];
61
92
  return {
62
- files: toolsResult.files,
93
+ files: allFiles,
63
94
  directories,
64
95
  packageJsonUpdates: toolsResult.packageJsonUpdates,
65
96
  npmInstallRequired: toolsResult.npmInstallRequired,
@@ -107,6 +138,9 @@ async function resolveThirdPartyTool(entry) {
107
138
  const filename = url.substring(url.lastIndexOf('/') + 1);
108
139
  console.log(`Fetching configuration: ${filename} from ${url}`);
109
140
  const content = await fetchUrl(url);
141
+ if (filename.endsWith('.md')) {
142
+ return await parseMarkdownTool(content, url);
143
+ }
110
144
  const parsed = JSON.parse(content);
111
145
  validateThirdPartyTool(parsed, filename);
112
146
  return parsed;
@@ -148,4 +182,73 @@ async function fetchUrl(url) {
148
182
  });
149
183
  });
150
184
  }
185
+ async function resolvePolicy(entry) {
186
+ if ('$ref' in entry) {
187
+ const url = entry.$ref;
188
+ const content = await fetchUrl(url);
189
+ return JSON.parse(content);
190
+ }
191
+ if ('_extends' in entry) {
192
+ throw new Error('_extends is not yet supported for PolicyConfig');
193
+ }
194
+ return entry;
195
+ }
196
+ async function downloadPolicyInstruction(url) {
197
+ const filename = url.substring(url.lastIndexOf('/') + 1);
198
+ const content = await fetchUrl(url);
199
+ const header = `Version: 1.0.0
200
+ Source: ${url}
201
+ Last Updated: ${new Date().toISOString().split('T')[0]}
202
+ Check for Updates: ${url}
203
+
204
+ ---
205
+
206
+ `;
207
+ return {
208
+ filename,
209
+ content: header + content,
210
+ };
211
+ }
212
+ function detectLanguage(tools) {
213
+ const hasTypeScript = tools.some((tool) => tool.software.name === 'typescript');
214
+ return hasTypeScript ? 'TypeScript' : null;
215
+ }
216
+ function aggregatePolicyInstructions(instructionFiles, language, dontEditPaths) {
217
+ let header = `# Project Instructions
218
+
219
+ This file is auto-generated from .snitch/instructions/
220
+
221
+ `;
222
+ if (language) {
223
+ header += `Language: ${language}\n\n`;
224
+ }
225
+ header += `### Do Not Edit
226
+
227
+ Following paths and files should never be edited. They are generated, and will cause unexpected problems, since snitch or other tools can be invoked by other agents, entities, or hooks, and will confuse everybody. If edits required – ask user explicitly.
228
+
229
+ Names of files:
230
+ ${dontEditPaths.map((p) => `- ${p}`).join('\n')}
231
+
232
+ ---
233
+
234
+ `;
235
+ const sections = instructionFiles.map((file) => file.content).join('\n\n---\n\n');
236
+ return header + sections;
237
+ }
238
+ async function parseMarkdownTool(markdownContent, url) {
239
+ const parsed = (0, markdown_config_parser_1.parseMarkdownConfig)(markdownContent);
240
+ const tool = {
241
+ title: parsed.title,
242
+ configFilename: parsed.configFilename,
243
+ software: {
244
+ pm: 'npm',
245
+ name: parsed.toolName,
246
+ version: parsed.toolVersion,
247
+ },
248
+ configuration: parsed.configContent,
249
+ instructions: url,
250
+ };
251
+ validateThirdPartyTool(tool, url);
252
+ return tool;
253
+ }
151
254
  //# sourceMappingURL=prepare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { Uri } from './uri';
5
5
  export type PolicyConfig = {
6
6
  title: string;
7
7
  violations: ViolationRule[];
8
+ instructions: Uri[];
8
9
  };
9
10
  export type JsonConfigurationEntry<Type> = Type | {
10
11
  $ref: string;
@@ -13,9 +14,6 @@ export type JsonConfigurationEntry<Type> = Type | {
13
14
  } & Partial<Type>);
14
15
  export type ThirdPartyTool = {
15
16
  title: string;
16
- description: string;
17
- id: string;
18
- purpose: string[];
19
17
  configFilename: string;
20
18
  software: {
21
19
  pm: 'npm';
@@ -23,6 +21,7 @@ export type ThirdPartyTool = {
23
21
  version?: string;
24
22
  };
25
23
  configuration: Uri | object;
24
+ instructions: Uri | 'Instructions Not Required';
26
25
  sideEffects?: {
27
26
  'package.json'?: object;
28
27
  };
@@ -34,6 +33,9 @@ export type SnitchConfiguration = {
34
33
  commands?: Record<string, PublicCommandConfig>;
35
34
  policies: Record<string, JsonConfigurationEntry<PolicyConfig>>;
36
35
  thirdPartyTools?: JsonConfigurationEntry<ThirdPartyTool>[];
36
+ instructions: {
37
+ dontEdit: string[];
38
+ };
37
39
  };
38
40
  export declare const snitchConfigurationSchema: JsonSchema<SnitchConfiguration>;
39
41
  //# sourceMappingURL=snitch-configuration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snitch-configuration.d.ts","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,IAAI,IAAI,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3G,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE;QACR,EAAE,EAAE,KAAK,CAAA;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,aAAa,EAAE,GAAG,GAAG,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;IAC9D,eAAe,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,mBAAmB,CAgCrE,CAAA"}
1
+ {"version":3,"file":"snitch-configuration.d.ts","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,YAAY,EAAE,GAAG,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,IAAI,IAAI,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3G,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE;QACR,EAAE,EAAE,KAAK,CAAA;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,aAAa,EAAE,GAAG,GAAG,MAAM,CAAA;IAC3B,YAAY,EAAE,GAAG,GAAG,2BAA2B,CAAA;IAC/C,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;IAC9D,eAAe,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAA;IAC1D,YAAY,EAAE;QACZ,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,mBAAmB,CA2CrE,CAAA"}
@@ -30,8 +30,19 @@ exports.snitchConfigurationSchema = {
30
30
  items: {},
31
31
  nullable: true,
32
32
  },
33
+ instructions: {
34
+ type: 'object',
35
+ properties: {
36
+ dontEdit: {
37
+ type: 'array',
38
+ items: { type: 'string' },
39
+ },
40
+ },
41
+ required: ['dontEdit'],
42
+ additionalProperties: false,
43
+ },
33
44
  },
34
- required: ['sourceDirectory', 'testsDirectory', 'policies'],
45
+ required: ['sourceDirectory', 'testsDirectory', 'policies', 'instructions'],
35
46
  additionalProperties: false,
36
47
  };
37
48
  //# sourceMappingURL=snitch-configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snitch-configuration.js","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":";;;AAsCa,QAAA,yBAAyB,GAAoC;IACxE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;SAC3B;QACD,eAAe,EAAE;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAS;YAChB,QAAQ,EAAE,IAAI;SACf;KACF;IACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC;IAC3D,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
1
+ {"version":3,"file":"snitch-configuration.js","sourceRoot":"","sources":["../../src/datamodel/snitch-configuration.ts"],"names":[],"mappings":";;;AAwCa,QAAA,yBAAyB,GAAoC;IACxE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,IAAI;SAC3B;QACD,eAAe,EAAE;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAS;YAChB,QAAQ,EAAE,IAAI;SACf;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;YACtB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,CAAC;IAC3E,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
@@ -0,0 +1,16 @@
1
+ export type ParsedMarkdownConfig = {
2
+ metadata: {
3
+ version: string;
4
+ source: string;
5
+ lastUpdated: string;
6
+ checkForUpdates: string;
7
+ };
8
+ title: string;
9
+ toolName: string;
10
+ toolVersion: string;
11
+ configFilename: string;
12
+ configContent: object;
13
+ instructions: string;
14
+ };
15
+ export declare function parseMarkdownConfig(markdown: string): ParsedMarkdownConfig;
16
+ //# sourceMappingURL=markdown-config-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-config-parser.d.ts","sourceRoot":"","sources":["../../src/utils/markdown-config-parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAsE1E"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMarkdownConfig = parseMarkdownConfig;
4
+ function parseMarkdownConfig(markdown) {
5
+ // Extract metadata
6
+ const metadataMatch = markdown.match(/^Version: (.+)\nSource: (.+)\nLast Updated: (.+)\nCheck for Updates: (.+)\n\n---/m);
7
+ if (!metadataMatch) {
8
+ throw new Error('Missing metadata header');
9
+ }
10
+ const metadata = {
11
+ version: metadataMatch[1],
12
+ source: metadataMatch[2],
13
+ lastUpdated: metadataMatch[3],
14
+ checkForUpdates: metadataMatch[4],
15
+ };
16
+ // Extract title
17
+ const titleMatch = markdown.match(/^# (.+)$/m);
18
+ if (!titleMatch) {
19
+ throw new Error('Missing title');
20
+ }
21
+ const title = titleMatch[1];
22
+ // Extract tool name
23
+ const toolNameMatch = markdown.match(/Tool Name: `([^`]+)`/);
24
+ if (!toolNameMatch) {
25
+ throw new Error('Missing tool name');
26
+ }
27
+ const toolName = toolNameMatch[1];
28
+ // Extract tool version
29
+ const toolVersionMatch = markdown.match(/Version: `([^`]+)`/);
30
+ if (!toolVersionMatch) {
31
+ throw new Error('Missing tool version');
32
+ }
33
+ const toolVersion = toolVersionMatch[1];
34
+ // Extract filename
35
+ const filenameMatch = markdown.match(/File: `([^`]+)`/);
36
+ if (!filenameMatch) {
37
+ throw new Error('Missing config filename');
38
+ }
39
+ const configFilename = filenameMatch[1];
40
+ // Extract JSON from first code block after ## Configuration
41
+ const configSectionMatch = markdown.match(/## Configuration\n\n[\s\S]*?```json\n([\s\S]*?)\n```/);
42
+ if (!configSectionMatch) {
43
+ throw new Error('Missing configuration JSON block');
44
+ }
45
+ let configContent;
46
+ try {
47
+ configContent = JSON.parse(configSectionMatch[1]);
48
+ }
49
+ catch (error) {
50
+ throw new Error('Invalid JSON in configuration block');
51
+ }
52
+ // Extract instructions (everything after ## Configuration section)
53
+ const instructionsMatch = markdown.match(/## Configuration[\s\S]*?```\n\n([\s\S]*)$/);
54
+ const instructions = instructionsMatch ? instructionsMatch[1].trim() : '';
55
+ return {
56
+ metadata,
57
+ title,
58
+ toolName,
59
+ toolVersion,
60
+ configFilename,
61
+ configContent,
62
+ instructions,
63
+ };
64
+ }
65
+ //# sourceMappingURL=markdown-config-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-config-parser.js","sourceRoot":"","sources":["../../src/utils/markdown-config-parser.ts"],"names":[],"mappings":";;AAeA,kDAsEC;AAtED,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,mBAAmB;IACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAClC,mFAAmF,CACpF,CAAA;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QACxB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7B,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;KAClC,CAAA;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAE3B,oBAAoB;IACpB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAEjC,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAEvC,mBAAmB;IACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvC,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACjG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,aAAqB,CAAA;IACzB,IAAI,CAAC;QACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,mEAAmE;IACnE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;IACrF,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzE,OAAO;QACL,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,WAAW;QACX,cAAc;QACd,aAAa;QACb,YAAY;KACb,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"third-party-tools.d.ts","sourceRoot":"","sources":["../../src/utils/third-party-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAIlE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,kBAAkB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAYD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CA0D5F"}
1
+ {"version":3,"file":"third-party-tools.d.ts","sourceRoot":"","sources":["../../src/utils/third-party-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAIlE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,kBAAkB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAYD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CA6F5F"}
@@ -38,8 +38,9 @@ const https = __importStar(require("https"));
38
38
  async function prepareThirdPartyTools(tools) {
39
39
  const preparedTools = [];
40
40
  const seenFilenames = new Set();
41
+ const instructionFiles = [];
41
42
  for (const tool of tools) {
42
- const { configFilename, configuration, sideEffects, title, software } = tool;
43
+ const { configFilename, configuration, sideEffects, title, software, instructions } = tool;
43
44
  if (seenFilenames.has(configFilename)) {
44
45
  throw new Error(`Duplicate config filename detected: ${configFilename}. Multiple tools are trying to create the same file.`);
45
46
  }
@@ -52,11 +53,23 @@ async function prepareThirdPartyTools(tools) {
52
53
  software,
53
54
  sideEffects,
54
55
  });
56
+ if (instructions !== 'Instructions Not Required') {
57
+ const { filename, content } = await downloadInstructionFile(instructions);
58
+ instructionFiles.push({
59
+ path: `.snitch/instructions/${filename}`,
60
+ content,
61
+ });
62
+ }
55
63
  }
56
- const files = preparedTools.map((prepared) => ({
57
- path: prepared.configFilename,
64
+ const configFiles = preparedTools.map((prepared) => ({
65
+ path: `configs/${prepared.configFilename}`,
58
66
  content: prepared.configContent,
59
67
  }));
68
+ const aggregatedInstructions = {
69
+ path: '.claude/INSTRUCTIONS.md',
70
+ content: aggregateInstructions(instructionFiles),
71
+ };
72
+ const files = [...configFiles, ...instructionFiles, aggregatedInstructions];
60
73
  const packageJsonUpdates = preparedTools.flatMap((prepared) => {
61
74
  const updates = [];
62
75
  const packageName = prepared.software.name;
@@ -69,15 +82,30 @@ async function prepareThirdPartyTools(tools) {
69
82
  },
70
83
  });
71
84
  if (prepared.sideEffects && prepared.sideEffects['package.json']) {
72
- updates.push({
73
- updates: prepared.sideEffects['package.json'],
74
- });
85
+ const sideEffects = prepared.sideEffects['package.json'];
86
+ if (sideEffects.scripts) {
87
+ const updatedScripts = {};
88
+ for (const [scriptName, scriptCommand] of Object.entries(sideEffects.scripts)) {
89
+ updatedScripts[scriptName] = updateScriptWithConfigPath(scriptCommand, `configs/${prepared.configFilename}`, packageName);
90
+ }
91
+ updates.push({
92
+ updates: {
93
+ ...sideEffects,
94
+ scripts: updatedScripts,
95
+ },
96
+ });
97
+ }
98
+ else {
99
+ updates.push({
100
+ updates: sideEffects,
101
+ });
102
+ }
75
103
  }
76
104
  return updates;
77
105
  });
78
106
  return {
79
107
  files,
80
- directories: [],
108
+ directories: [{ path: 'configs' }, { path: '.snitch/instructions' }, { path: '.claude' }],
81
109
  packageJsonUpdates,
82
110
  npmInstallRequired: true,
83
111
  };
@@ -106,6 +134,40 @@ async function resolveConfiguration(source) {
106
134
  });
107
135
  });
108
136
  }
137
+ async function downloadInstructionFile(url) {
138
+ const filename = url.substring(url.lastIndexOf('/') + 1);
139
+ const content = await new Promise((resolve, reject) => {
140
+ https
141
+ .get(url, (res) => {
142
+ if (res.statusCode !== 200) {
143
+ reject(new Error(`Failed to download instruction: HTTP ${res.statusCode}`));
144
+ return;
145
+ }
146
+ let data = '';
147
+ res.on('data', (chunk) => {
148
+ data += chunk;
149
+ });
150
+ res.on('end', () => {
151
+ resolve(data);
152
+ });
153
+ })
154
+ .on('error', (err) => {
155
+ reject(new Error(`Failed to download instruction: ${err.message}`));
156
+ });
157
+ });
158
+ const header = `Version: 1.0.0
159
+ Source: ${url}
160
+ Last Updated: ${new Date().toISOString().split('T')[0]}
161
+ Check for Updates: ${url}
162
+
163
+ ---
164
+
165
+ `;
166
+ return {
167
+ filename,
168
+ content: header + content,
169
+ };
170
+ }
109
171
  function formatConfigContent(content, filename, toolTitle) {
110
172
  const ext = filename.substring(filename.lastIndexOf('.'));
111
173
  const basename = filename.substring(filename.lastIndexOf('/') + 1);
@@ -115,6 +177,31 @@ function formatConfigContent(content, filename, toolTitle) {
115
177
  if (ext === '.json' || basename === '.prettierrc') {
116
178
  return JSON.stringify(content, null, 2);
117
179
  }
118
- throw new Error(`Unsupported config file extension for tool "${toolTitle}": filename="${filename}", extension="${ext}". Only .js and .json extensions are supported.`);
180
+ throw new Error(`Unsupported config file extension for tool "${toolTitle}": filename="${filename}", extension="${ext}". See supported formats at TODO://link-to-supported-files`);
181
+ }
182
+ function updateScriptWithConfigPath(script, configPath, toolName) {
183
+ const configFlagMap = {
184
+ prettier: '--config',
185
+ biome: '--config-path',
186
+ typescript: '--project',
187
+ tsc: '--project',
188
+ jest: '--config',
189
+ };
190
+ const flag = configFlagMap[toolName];
191
+ if (flag) {
192
+ return `${script} ${flag} ${configPath}`;
193
+ }
194
+ return script;
195
+ }
196
+ function aggregateInstructions(instructionFiles) {
197
+ const header = `# Project Instructions
198
+
199
+ This file is auto-generated from .snitch/instructions/
200
+
201
+ ---
202
+
203
+ `;
204
+ const sections = instructionFiles.map((file) => file.content).join('\n\n---\n\n');
205
+ return header + sections;
119
206
  }
120
207
  //# sourceMappingURL=third-party-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"third-party-tools.js","sourceRoot":"","sources":["../../src/utils/third-party-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"third-party-tools.js","sourceRoot":"","sources":["../../src/utils/third-party-tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fyuld/snitch",
3
- "version": "2.3.11",
3
+ "version": "3.0.1",
4
4
  "description": "Snitch",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",