@seanmars/tospec 0.8.0 → 0.9.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.
- package/README.md +19 -0
- package/assets/dashboard/app.js +11 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +18 -31
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts +1 -2
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -13
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +3 -0
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +32 -2
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +8 -9
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/shared-output.d.ts +18 -4
- package/dist/commands/shared-output.d.ts.map +1 -1
- package/dist/commands/shared-output.js +16 -3
- package/dist/commands/shared-output.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +9 -13
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +10 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +48 -32
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/workflow/instructions.d.ts.map +1 -1
- package/dist/commands/workflow/instructions.js +20 -6
- package/dist/commands/workflow/instructions.js.map +1 -1
- package/dist/commands/workflow/new-change.d.ts +2 -0
- package/dist/commands/workflow/new-change.d.ts.map +1 -1
- package/dist/commands/workflow/new-change.js +15 -7
- package/dist/commands/workflow/new-change.js.map +1 -1
- package/dist/commands/workflow/schemas.d.ts.map +1 -1
- package/dist/commands/workflow/schemas.js +12 -3
- package/dist/commands/workflow/schemas.js.map +1 -1
- package/dist/commands/workflow/shared.d.ts +1 -3
- package/dist/commands/workflow/shared.d.ts.map +1 -1
- package/dist/commands/workflow/shared.js +2 -14
- package/dist/commands/workflow/shared.js.map +1 -1
- package/dist/commands/workflow/status.d.ts.map +1 -1
- package/dist/commands/workflow/status.js +6 -2
- package/dist/commands/workflow/status.js.map +1 -1
- package/dist/commands/workflow/templates.d.ts.map +1 -1
- package/dist/commands/workflow/templates.js +13 -2
- package/dist/commands/workflow/templates.js.map +1 -1
- package/dist/core/archive.d.ts +9 -0
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +63 -114
- package/dist/core/archive.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +4 -2
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +54 -0
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/change-metadata/schema.d.ts +1 -0
- package/dist/core/change-metadata/schema.d.ts.map +1 -1
- package/dist/core/change-metadata/schema.js +4 -0
- package/dist/core/change-metadata/schema.js.map +1 -1
- package/dist/core/change-presenter.d.ts.map +1 -1
- package/dist/core/change-presenter.js +2 -8
- package/dist/core/change-presenter.js.map +1 -1
- package/dist/core/change-status-policy.d.ts +1 -1
- package/dist/core/change-status-policy.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/index.d.ts +1 -2
- package/dist/core/command-generation/adapters/index.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/index.js +1 -2
- package/dist/core/command-generation/adapters/index.js.map +1 -1
- package/dist/core/command-generation/index.d.ts +4 -15
- package/dist/core/command-generation/index.d.ts.map +1 -1
- package/dist/core/command-generation/index.js +5 -17
- package/dist/core/command-generation/index.js.map +1 -1
- package/dist/core/config-schema.d.ts +0 -14
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +0 -57
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +0 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/dashboard-data.d.ts +2 -1
- package/dist/core/dashboard-data.d.ts.map +1 -1
- package/dist/core/dashboard-data.js +1 -1
- package/dist/core/dashboard-data.js.map +1 -1
- package/dist/core/global-config.d.ts +0 -5
- package/dist/core/global-config.d.ts.map +1 -1
- package/dist/core/global-config.js +3 -20
- package/dist/core/global-config.js.map +1 -1
- package/dist/core/init.d.ts +0 -1
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +18 -63
- package/dist/core/init.js.map +1 -1
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +6 -5
- package/dist/core/list.js.map +1 -1
- package/dist/core/migrate.d.ts +20 -3
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +140 -40
- package/dist/core/migrate.js.map +1 -1
- package/dist/core/parsers/change-parser.d.ts +0 -2
- package/dist/core/parsers/change-parser.d.ts.map +1 -1
- package/dist/core/parsers/change-parser.js +7 -72
- package/dist/core/parsers/change-parser.js.map +1 -1
- package/dist/core/parsers/markdown-parser.d.ts +1 -1
- package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
- package/dist/core/parsers/markdown-parser.js +13 -4
- package/dist/core/parsers/markdown-parser.js.map +1 -1
- package/dist/core/parsers/requirement-blocks.d.ts +19 -0
- package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
- package/dist/core/parsers/requirement-blocks.js +56 -26
- package/dist/core/parsers/requirement-blocks.js.map +1 -1
- package/dist/core/parsers/requirement-text.d.ts +33 -0
- package/dist/core/parsers/requirement-text.d.ts.map +1 -1
- package/dist/core/parsers/requirement-text.js +55 -13
- package/dist/core/parsers/requirement-text.js.map +1 -1
- package/dist/core/profiles.d.ts +2 -10
- package/dist/core/profiles.d.ts.map +1 -1
- package/dist/core/profiles.js +5 -9
- package/dist/core/profiles.js.map +1 -1
- package/dist/core/project-config.d.ts +0 -22
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +5 -75
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/root-selection.d.ts.map +1 -1
- package/dist/core/root-selection.js +2 -2
- package/dist/core/root-selection.js.map +1 -1
- package/dist/core/shared/index.d.ts +1 -1
- package/dist/core/shared/index.d.ts.map +1 -1
- package/dist/core/shared/index.js +1 -1
- package/dist/core/shared/index.js.map +1 -1
- package/dist/core/shared/skill-generation.d.ts +47 -1
- package/dist/core/shared/skill-generation.d.ts.map +1 -1
- package/dist/core/shared/skill-generation.js +36 -34
- package/dist/core/shared/skill-generation.js.map +1 -1
- package/dist/core/shared/tool-detection.d.ts +4 -10
- package/dist/core/shared/tool-detection.d.ts.map +1 -1
- package/dist/core/shared/tool-detection.js +5 -29
- package/dist/core/shared/tool-detection.js.map +1 -1
- package/dist/core/spec-presenter.d.ts.map +1 -1
- package/dist/core/spec-presenter.js +3 -4
- package/dist/core/spec-presenter.js.map +1 -1
- package/dist/core/specs-apply.d.ts.map +1 -1
- package/dist/core/specs-apply.js +1 -0
- package/dist/core/specs-apply.js.map +1 -1
- package/dist/core/templates/workflows/apply.d.ts.map +1 -1
- package/dist/core/templates/workflows/apply.js +35 -57
- package/dist/core/templates/workflows/apply.js.map +1 -1
- package/dist/core/templates/workflows/archive.d.ts.map +1 -1
- package/dist/core/templates/workflows/archive.js +5 -3
- package/dist/core/templates/workflows/archive.js.map +1 -1
- package/dist/core/templates/workflows/decision.js +1 -1
- package/dist/core/templates/workflows/explore.js +1 -1
- package/dist/core/templates/workflows/propose.d.ts.map +1 -1
- package/dist/core/templates/workflows/propose.js +3 -1
- package/dist/core/templates/workflows/propose.js.map +1 -1
- package/dist/core/templates/workflows/update.js +2 -2
- package/dist/core/templates/workflows/update.js.map +1 -1
- package/dist/core/update.d.ts +0 -9
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +9 -55
- package/dist/core/update.js.map +1 -1
- package/dist/core/validation/validator.d.ts +7 -1
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +98 -17
- package/dist/core/validation/validator.js.map +1 -1
- package/dist/ui/welcome-screen.d.ts.map +1 -1
- package/dist/ui/welcome-screen.js +6 -3
- package/dist/ui/welcome-screen.js.map +1 -1
- package/dist/utils/change-utils.d.ts +1 -1
- package/dist/utils/change-utils.d.ts.map +1 -1
- package/dist/utils/link.d.ts +2 -18
- package/dist/utils/link.d.ts.map +1 -1
- package/dist/utils/link.js +2 -65
- package/dist/utils/link.js.map +1 -1
- package/package.json +1 -1
- package/schemas/decision/templates/decision.md +3 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +0 -14
- package/dist/core/command-generation/adapters/cursor.d.ts.map +0 -1
- package/dist/core/command-generation/adapters/cursor.js +0 -31
- package/dist/core/command-generation/adapters/cursor.js.map +0 -1
- package/dist/core/command-generation/registry.d.ts +0 -24
- package/dist/core/command-generation/registry.d.ts.map +0 -1
- package/dist/core/command-generation/registry.js +0 -38
- package/dist/core/command-generation/registry.js.map +0 -1
package/dist/utils/link.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/utils/link.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/utils/link.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAatE"}
|
package/dist/utils/link.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
/**
|
|
4
|
-
* Recursively copies a directory
|
|
5
|
-
*
|
|
4
|
+
* Recursively copies a directory, replacing any existing dest. This is how
|
|
5
|
+
* init/update deliver skill files into each tool's directory.
|
|
6
6
|
*/
|
|
7
7
|
export async function copyDir(src, dest) {
|
|
8
8
|
await fs.promises.rm(dest, { recursive: true, force: true });
|
|
@@ -19,67 +19,4 @@ export async function copyDir(src, dest) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Mirrors a directory tree using hard-linked files. Directories themselves
|
|
24
|
-
* cannot be hard-linked, so matching real directories are created at dest.
|
|
25
|
-
*/
|
|
26
|
-
export async function ensureHardLinkedDir(src, dest) {
|
|
27
|
-
await fs.promises.rm(dest, { recursive: true, force: true });
|
|
28
|
-
await fs.promises.mkdir(dest, { recursive: true });
|
|
29
|
-
try {
|
|
30
|
-
await hardLinkDir(src, dest);
|
|
31
|
-
return 'hardlink';
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
await copyDir(src, dest);
|
|
35
|
-
return 'copy';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async function hardLinkDir(src, dest) {
|
|
39
|
-
const entries = await fs.promises.readdir(src, { withFileTypes: true });
|
|
40
|
-
for (const entry of entries) {
|
|
41
|
-
const srcPath = path.join(src, entry.name);
|
|
42
|
-
const destPath = path.join(dest, entry.name);
|
|
43
|
-
if (entry.isDirectory()) {
|
|
44
|
-
await fs.promises.mkdir(destPath, { recursive: true });
|
|
45
|
-
await hardLinkDir(srcPath, destPath);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
await fs.promises.link(srcPath, destPath);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Ensures `linkPath` resolves to `target` (both must be absolute): a directory
|
|
54
|
-
* symlink (junction on Windows, since junctions need no admin/dev-mode
|
|
55
|
-
* privilege) when possible, falling back to a recursive copy otherwise.
|
|
56
|
-
*
|
|
57
|
-
* Idempotent: a symlink already pointing at `target` is left untouched. A
|
|
58
|
-
* symlink pointing elsewhere, or a real file/directory sitting at `linkPath`,
|
|
59
|
-
* is removed before (re)creating the link.
|
|
60
|
-
*/
|
|
61
|
-
export async function ensureLink(target, linkPath) {
|
|
62
|
-
await fs.promises.mkdir(path.dirname(linkPath), { recursive: true });
|
|
63
|
-
const existing = await fs.promises.lstat(linkPath).catch(() => null);
|
|
64
|
-
if (existing?.isSymbolicLink()) {
|
|
65
|
-
const currentTarget = await fs.promises.readlink(linkPath).catch(() => null);
|
|
66
|
-
const resolvedCurrent = currentTarget ? path.resolve(path.dirname(linkPath), currentTarget) : null;
|
|
67
|
-
if (resolvedCurrent === path.resolve(target)) {
|
|
68
|
-
return 'link';
|
|
69
|
-
}
|
|
70
|
-
await fs.promises.rm(linkPath, { recursive: true, force: true });
|
|
71
|
-
}
|
|
72
|
-
else if (existing) {
|
|
73
|
-
await fs.promises.rm(linkPath, { recursive: true, force: true });
|
|
74
|
-
}
|
|
75
|
-
const symlinkType = process.platform === 'win32' ? 'junction' : 'dir';
|
|
76
|
-
try {
|
|
77
|
-
await fs.promises.symlink(target, linkPath, symlinkType);
|
|
78
|
-
return 'link';
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
await copyDir(target, linkPath);
|
|
82
|
-
return 'copy';
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
22
|
//# sourceMappingURL=link.js.map
|
package/dist/utils/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/utils/link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/utils/link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAY;IACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cursor Command Adapter
|
|
3
|
-
*
|
|
4
|
-
* Formats commands for Cursor following its frontmatter specification.
|
|
5
|
-
* Cursor uses a different frontmatter format and file naming convention.
|
|
6
|
-
*/
|
|
7
|
-
import type { ToolCommandAdapter } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Cursor adapter for command generation.
|
|
10
|
-
* File path: .cursor/commands/tospec-<id>.md
|
|
11
|
-
* Frontmatter: name (as /tospec-<id>), id, category, description
|
|
12
|
-
*/
|
|
13
|
-
export declare const cursorAdapter: ToolCommandAdapter;
|
|
14
|
-
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../src/core/command-generation/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,kBAkB3B,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cursor Command Adapter
|
|
3
|
-
*
|
|
4
|
-
* Formats commands for Cursor following its frontmatter specification.
|
|
5
|
-
* Cursor uses a different frontmatter format and file naming convention.
|
|
6
|
-
*/
|
|
7
|
-
import path from 'path';
|
|
8
|
-
import { escapeYamlValue } from '../yaml.js';
|
|
9
|
-
/**
|
|
10
|
-
* Cursor adapter for command generation.
|
|
11
|
-
* File path: .cursor/commands/tospec-<id>.md
|
|
12
|
-
* Frontmatter: name (as /tospec-<id>), id, category, description
|
|
13
|
-
*/
|
|
14
|
-
export const cursorAdapter = {
|
|
15
|
-
toolId: 'cursor',
|
|
16
|
-
getFilePath(commandId) {
|
|
17
|
-
return path.join('.cursor', 'commands', `tospec-${commandId}.md`);
|
|
18
|
-
},
|
|
19
|
-
formatFile(content) {
|
|
20
|
-
return `---
|
|
21
|
-
name: /tospec-${content.id}
|
|
22
|
-
id: tospec-${content.id}
|
|
23
|
-
category: ${escapeYamlValue(content.category)}
|
|
24
|
-
description: ${escapeYamlValue(content.description)}
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
${content.body}
|
|
28
|
-
`;
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../src/core/command-generation/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,MAAM,EAAE,QAAQ;IAEhB,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,SAAS,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,OAAO;gBACK,OAAO,CAAC,EAAE;aACb,OAAO,CAAC,EAAE;YACX,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;eAC9B,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;;;EAGjD,OAAO,CAAC,IAAI;CACb,CAAC;IACA,CAAC;CACF,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command Adapter Registry
|
|
3
|
-
*
|
|
4
|
-
* Centralized registry for tool command adapters. tospec ships adapters for
|
|
5
|
-
* the team's tools only (claude, cursor). Add a tool by writing an adapter in
|
|
6
|
-
* adapters/, exporting it from adapters/index.ts, and registering one line
|
|
7
|
-
* below.
|
|
8
|
-
*/
|
|
9
|
-
import type { ToolCommandAdapter } from './types.js';
|
|
10
|
-
/**
|
|
11
|
-
* Registry for looking up tool command adapters.
|
|
12
|
-
*/
|
|
13
|
-
export declare class CommandAdapterRegistry {
|
|
14
|
-
private static adapters;
|
|
15
|
-
/** Register a tool command adapter. */
|
|
16
|
-
static register(adapter: ToolCommandAdapter): void;
|
|
17
|
-
/** Get an adapter by tool ID. */
|
|
18
|
-
static get(toolId: string): ToolCommandAdapter | undefined;
|
|
19
|
-
/** Get all registered adapters. */
|
|
20
|
-
static getAll(): ToolCommandAdapter[];
|
|
21
|
-
/** Check if an adapter is registered for a tool. */
|
|
22
|
-
static has(toolId: string): boolean;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/command-generation/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrD;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8C;IAQrE,uCAAuC;IACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIlD,iCAAiC;IACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI1D,mCAAmC;IACnC,MAAM,CAAC,MAAM,IAAI,kBAAkB,EAAE;IAIrC,oDAAoD;IACpD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command Adapter Registry
|
|
3
|
-
*
|
|
4
|
-
* Centralized registry for tool command adapters. tospec ships adapters for
|
|
5
|
-
* the team's tools only (claude, cursor). Add a tool by writing an adapter in
|
|
6
|
-
* adapters/, exporting it from adapters/index.ts, and registering one line
|
|
7
|
-
* below.
|
|
8
|
-
*/
|
|
9
|
-
import { claudeAdapter } from './adapters/claude.js';
|
|
10
|
-
import { cursorAdapter } from './adapters/cursor.js';
|
|
11
|
-
/**
|
|
12
|
-
* Registry for looking up tool command adapters.
|
|
13
|
-
*/
|
|
14
|
-
export class CommandAdapterRegistry {
|
|
15
|
-
static adapters = new Map();
|
|
16
|
-
// Static initializer - register built-in adapters
|
|
17
|
-
static {
|
|
18
|
-
CommandAdapterRegistry.register(claudeAdapter);
|
|
19
|
-
CommandAdapterRegistry.register(cursorAdapter);
|
|
20
|
-
}
|
|
21
|
-
/** Register a tool command adapter. */
|
|
22
|
-
static register(adapter) {
|
|
23
|
-
CommandAdapterRegistry.adapters.set(adapter.toolId, adapter);
|
|
24
|
-
}
|
|
25
|
-
/** Get an adapter by tool ID. */
|
|
26
|
-
static get(toolId) {
|
|
27
|
-
return CommandAdapterRegistry.adapters.get(toolId);
|
|
28
|
-
}
|
|
29
|
-
/** Get all registered adapters. */
|
|
30
|
-
static getAll() {
|
|
31
|
-
return Array.from(CommandAdapterRegistry.adapters.values());
|
|
32
|
-
}
|
|
33
|
-
/** Check if an adapter is registered for a tool. */
|
|
34
|
-
static has(toolId) {
|
|
35
|
-
return CommandAdapterRegistry.adapters.has(toolId);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/command-generation/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAC,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAErE,kDAAkD;IAClD;QACE,sBAAsB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/C,sBAAsB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,QAAQ,CAAC,OAA2B;QACzC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,GAAG,CAAC,MAAc;QACvB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,MAAM;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,oDAAoD;IACpD,MAAM,CAAC,GAAG,CAAC,MAAc;QACvB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC"}
|