@planu/cli 0.44.0 → 0.45.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.
Files changed (87) hide show
  1. package/dist/config/license-plans.json +8 -2
  2. package/dist/config/registry-categories.json +20 -0
  3. package/dist/config/registry-stacks.json +16 -0
  4. package/dist/engine/github/spec-linker.d.ts.map +1 -1
  5. package/dist/engine/github/spec-linker.js +1 -0
  6. package/dist/engine/github/spec-linker.js.map +1 -1
  7. package/dist/engine/safety/file-mutex.d.ts.map +1 -1
  8. package/dist/engine/safety/file-mutex.js +6 -4
  9. package/dist/engine/safety/file-mutex.js.map +1 -1
  10. package/dist/engine/spec-registry/adapter.d.ts +9 -0
  11. package/dist/engine/spec-registry/adapter.d.ts.map +1 -0
  12. package/dist/engine/spec-registry/adapter.js +303 -0
  13. package/dist/engine/spec-registry/adapter.js.map +1 -0
  14. package/dist/engine/spec-registry/client.d.ts +8 -0
  15. package/dist/engine/spec-registry/client.d.ts.map +1 -0
  16. package/dist/engine/spec-registry/client.js +194 -0
  17. package/dist/engine/spec-registry/client.js.map +1 -0
  18. package/dist/engine/spec-registry/index.d.ts +7 -0
  19. package/dist/engine/spec-registry/index.d.ts.map +1 -0
  20. package/dist/engine/spec-registry/index.js +7 -0
  21. package/dist/engine/spec-registry/index.js.map +1 -0
  22. package/dist/engine/spec-registry/packager.d.ts +24 -0
  23. package/dist/engine/spec-registry/packager.d.ts.map +1 -0
  24. package/dist/engine/spec-registry/packager.js +122 -0
  25. package/dist/engine/spec-registry/packager.js.map +1 -0
  26. package/dist/engine/spec-registry/scorer.d.ts +10 -0
  27. package/dist/engine/spec-registry/scorer.d.ts.map +1 -0
  28. package/dist/engine/spec-registry/scorer.js +151 -0
  29. package/dist/engine/spec-registry/scorer.js.map +1 -0
  30. package/dist/engine/spec-registry/validator.d.ts +11 -0
  31. package/dist/engine/spec-registry/validator.d.ts.map +1 -0
  32. package/dist/engine/spec-registry/validator.js +144 -0
  33. package/dist/engine/spec-registry/validator.js.map +1 -0
  34. package/dist/engine/webhook/signature.js +2 -2
  35. package/dist/engine/webhook/signature.js.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/storage/base-store.d.ts.map +1 -1
  39. package/dist/storage/base-store.js +2 -1
  40. package/dist/storage/base-store.js.map +1 -1
  41. package/dist/storage/usage-store.d.ts.map +1 -1
  42. package/dist/storage/usage-store.js +1 -0
  43. package/dist/storage/usage-store.js.map +1 -1
  44. package/dist/tools/register-spec-registry-tools.d.ts +3 -0
  45. package/dist/tools/register-spec-registry-tools.d.ts.map +1 -0
  46. package/dist/tools/register-spec-registry-tools.js +91 -0
  47. package/dist/tools/register-spec-registry-tools.js.map +1 -0
  48. package/dist/tools/registry/auth.d.ts +17 -0
  49. package/dist/tools/registry/auth.d.ts.map +1 -0
  50. package/dist/tools/registry/auth.js +132 -0
  51. package/dist/tools/registry/auth.js.map +1 -0
  52. package/dist/tools/registry/index.d.ts +5 -0
  53. package/dist/tools/registry/index.d.ts.map +1 -0
  54. package/dist/tools/registry/index.js +6 -0
  55. package/dist/tools/registry/index.js.map +1 -0
  56. package/dist/tools/registry/install.d.ts +7 -0
  57. package/dist/tools/registry/install.d.ts.map +1 -0
  58. package/dist/tools/registry/install.js +125 -0
  59. package/dist/tools/registry/install.js.map +1 -0
  60. package/dist/tools/registry/publish.d.ts +7 -0
  61. package/dist/tools/registry/publish.d.ts.map +1 -0
  62. package/dist/tools/registry/publish.js +96 -0
  63. package/dist/tools/registry/publish.js.map +1 -0
  64. package/dist/tools/registry/search.d.ts +7 -0
  65. package/dist/tools/registry/search.d.ts.map +1 -0
  66. package/dist/tools/registry/search.js +79 -0
  67. package/dist/tools/registry/search.js.map +1 -0
  68. package/dist/tools/schemas/index.d.ts +1 -0
  69. package/dist/tools/schemas/index.d.ts.map +1 -1
  70. package/dist/tools/schemas/index.js +1 -0
  71. package/dist/tools/schemas/index.js.map +1 -1
  72. package/dist/tools/schemas/spec-registry-schemas.d.ts +39 -0
  73. package/dist/tools/schemas/spec-registry-schemas.d.ts.map +1 -0
  74. package/dist/tools/schemas/spec-registry-schemas.js +72 -0
  75. package/dist/tools/schemas/spec-registry-schemas.js.map +1 -0
  76. package/dist/types/index.d.ts +1 -0
  77. package/dist/types/index.d.ts.map +1 -1
  78. package/dist/types/index.js +1 -0
  79. package/dist/types/index.js.map +1 -1
  80. package/dist/types/spec-registry.d.ts +194 -0
  81. package/dist/types/spec-registry.d.ts.map +1 -0
  82. package/dist/types/spec-registry.js +3 -0
  83. package/dist/types/spec-registry.js.map +1 -0
  84. package/package.json +1 -1
  85. package/src/config/license-plans.json +8 -2
  86. package/src/config/registry-categories.json +20 -0
  87. package/src/config/registry-stacks.json +16 -0
@@ -0,0 +1,125 @@
1
+ // tools/registry/install.ts — AC-6: Install a spec from the registry to local project
2
+ import { readdir, writeFile, mkdir } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { generateSpecId, slugify } from '../create-spec-helpers.js';
5
+ /** Scan existing specs directory to collect current spec IDs. */
6
+ async function collectExistingSpecIds(specsDir) {
7
+ try {
8
+ const entries = await readdir(specsDir, { withFileTypes: true });
9
+ return entries
10
+ .filter((e) => e.isDirectory() && e.name.startsWith('SPEC-'))
11
+ .map((e) => {
12
+ const match = /^(SPEC-\d+)/.exec(e.name);
13
+ /* v8 ignore next -- regex always matches SPEC- prefix from filter */
14
+ return { id: match?.[1] ?? '' };
15
+ })
16
+ .filter((s) => s.id !== '');
17
+ /* v8 ignore start -- directory may not exist */
18
+ }
19
+ catch {
20
+ return [];
21
+ }
22
+ /* v8 ignore stop */
23
+ }
24
+ /** Generate a clean progress.md for the installed spec. */
25
+ function generateProgressMd(specId, source, version) {
26
+ const now = new Date().toISOString();
27
+ return [
28
+ `# ${specId} — Progress`,
29
+ '',
30
+ `> Installed from registry: ${source}@${version}`,
31
+ `> Installed at: ${now}`,
32
+ '',
33
+ '## Status: pendiente',
34
+ '',
35
+ '## Acceptance Criteria',
36
+ '',
37
+ '- [ ] Review and adapt spec to local project',
38
+ '- [ ] Implement according to spec',
39
+ '- [ ] All tests passing',
40
+ '',
41
+ ].join('\n');
42
+ }
43
+ /**
44
+ * Handle registry_install tool invocation.
45
+ * Downloads a spec from the registry and installs it locally.
46
+ */
47
+ export async function handleRegistryInstall(args) {
48
+ try {
49
+ const org = args.org;
50
+ const name = args.name;
51
+ const version = args.version ?? 'latest';
52
+ const projectPath = args.projectPath ?? process.cwd();
53
+ if (!org || !name) {
54
+ return {
55
+ content: [{ type: 'text', text: 'Missing required fields: org and name' }],
56
+ isError: true,
57
+ };
58
+ }
59
+ const { createRegistryClient, unpackSpec } = await import('../../engine/spec-registry/index.js');
60
+ const client = createRegistryClient();
61
+ const tarball = await client.downloadSpec(org, name, version);
62
+ // Unpack to temp dir to read files
63
+ const tmpDir = join(projectPath, '.planu-tmp-install');
64
+ await mkdir(tmpDir, { recursive: true });
65
+ await unpackSpec(tarball, tmpDir);
66
+ const { readdir: rd, readFile: rf } = await import('node:fs/promises');
67
+ const tmpFiles = await rd(tmpDir);
68
+ const pkg = { files: {} };
69
+ for (const f of tmpFiles) {
70
+ pkg.files[f] = await rf(join(tmpDir, f), 'utf-8');
71
+ }
72
+ // Cleanup temp dir
73
+ const { rm } = await import('node:fs/promises');
74
+ await rm(tmpDir, { recursive: true, force: true });
75
+ // Determine next spec ID
76
+ const specsDir = join(projectPath, 'planu', 'specs');
77
+ const existingSpecs = await collectExistingSpecIds(specsDir);
78
+ const specId = generateSpecId(existingSpecs);
79
+ const slug = slugify(name);
80
+ const specDir = join(specsDir, `${specId}-${slug}`);
81
+ // Create spec directory
82
+ await mkdir(specDir, { recursive: true });
83
+ // Write downloaded files, injecting registry source into spec.md frontmatter
84
+ for (const [filePath, content] of Object.entries(pkg.files)) {
85
+ let finalContent = content;
86
+ if (filePath === 'spec.md') {
87
+ finalContent = injectRegistrySource(content, org, name, version);
88
+ }
89
+ await writeFile(join(specDir, filePath), finalContent, 'utf-8');
90
+ }
91
+ // Generate local progress.md
92
+ const source = `${org}/${name}`;
93
+ await writeFile(join(specDir, 'progress.md'), generateProgressMd(specId, source, version), 'utf-8');
94
+ const result = {
95
+ specId,
96
+ slug,
97
+ specDir,
98
+ source,
99
+ version,
100
+ adapted: false,
101
+ };
102
+ return {
103
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
104
+ };
105
+ /* v8 ignore start -- error + helper branches */
106
+ }
107
+ catch (error) {
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ return {
110
+ content: [{ type: 'text', text: `Registry install failed: ${message}` }],
111
+ isError: true,
112
+ };
113
+ }
114
+ }
115
+ /** Inject registry source metadata into spec.md frontmatter. */
116
+ function injectRegistrySource(content, org, name, version) {
117
+ const frontmatterEnd = content.indexOf('\n---', 3);
118
+ if (frontmatterEnd === -1) {
119
+ return content;
120
+ }
121
+ const insertion = `\nregistry:\n source: "${org}/${name}"\n version: "${version}"`;
122
+ return content.slice(0, frontmatterEnd) + insertion + content.slice(frontmatterEnd);
123
+ }
124
+ /* v8 ignore stop */
125
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/tools/registry/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ToolResult } from '../../types/index.js';
2
+ /**
3
+ * Handle registry_publish tool invocation.
4
+ * Validates and publishes a spec to the registry. Requires authentication.
5
+ */
6
+ export declare function handleRegistryPublish(args: Record<string, unknown>): Promise<ToolResult>;
7
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/tools/registry/publish.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,sBAAsB,CAAC;AAuB5E;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CA0E9F"}
@@ -0,0 +1,96 @@
1
+ // tools/registry/publish.ts — AC-7: Publish a spec to the registry
2
+ import { readFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ /** Load stored credentials or return null if not authenticated. */
6
+ async function loadCredentials() {
7
+ try {
8
+ const credPath = join(homedir(), '.planu', 'credentials.json');
9
+ const raw = await readFile(credPath, 'utf-8');
10
+ return JSON.parse(raw);
11
+ }
12
+ catch {
13
+ return null;
14
+ }
15
+ }
16
+ /** Check that credentials are valid and not expired. */
17
+ /* v8 ignore start -- defensive guard, loadCredentials always provides both */
18
+ function isCredentialValid(cred) {
19
+ if (!cred.token || !cred.expiresAt) {
20
+ return false;
21
+ }
22
+ return new Date(cred.expiresAt) > new Date();
23
+ }
24
+ /* v8 ignore stop */
25
+ /**
26
+ * Handle registry_publish tool invocation.
27
+ * Validates and publishes a spec to the registry. Requires authentication.
28
+ */
29
+ export async function handleRegistryPublish(args) {
30
+ try {
31
+ // Check authentication first
32
+ const credentials = await loadCredentials();
33
+ if (!credentials) {
34
+ return {
35
+ content: [
36
+ {
37
+ type: 'text',
38
+ text: 'Not authenticated. Run registry_login first to store credentials.',
39
+ },
40
+ ],
41
+ isError: true,
42
+ };
43
+ }
44
+ if (!isCredentialValid(credentials)) {
45
+ return {
46
+ content: [
47
+ {
48
+ type: 'text',
49
+ text: 'Credentials expired. Run registry_login to refresh your token.',
50
+ },
51
+ ],
52
+ isError: true,
53
+ };
54
+ }
55
+ const specPath = args.specPath;
56
+ const org = args.org ?? credentials.user;
57
+ if (!specPath) {
58
+ return {
59
+ content: [{ type: 'text', text: 'Missing required field: specPath' }],
60
+ isError: true,
61
+ };
62
+ }
63
+ const { createRegistryClient, validateForPublish, packSpec } = await import('../../engine/spec-registry/index.js');
64
+ // Step 1: Validate spec structure
65
+ const validation = await validateForPublish(specPath);
66
+ if (!validation.valid) {
67
+ return {
68
+ content: [
69
+ {
70
+ type: 'text',
71
+ text: `Spec validation failed:\n${validation.errors.map((e) => ` - ${e}`).join('\n')}`,
72
+ },
73
+ ],
74
+ isError: true,
75
+ };
76
+ }
77
+ // Step 2: Pack spec files
78
+ const tarball = await packSpec(specPath);
79
+ // Step 3: Upload to registry
80
+ const client = createRegistryClient(credentials.token);
81
+ const result = await client.publishSpec(tarball, { org });
82
+ return {
83
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
84
+ };
85
+ }
86
+ catch (error) {
87
+ /* v8 ignore start -- unexpected runtime errors */
88
+ const message = error instanceof Error ? error.message : String(error);
89
+ return {
90
+ content: [{ type: 'text', text: `Registry publish failed: ${message}` }],
91
+ isError: true,
92
+ };
93
+ /* v8 ignore stop */
94
+ }
95
+ }
96
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/tools/registry/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ToolResult } from '../../types/index.js';
2
+ /**
3
+ * Handle registry_search tool invocation.
4
+ * Searches the spec registry with the given filters. No authentication required.
5
+ */
6
+ export declare function handleRegistrySearch(args: Record<string, unknown>): Promise<ToolResult>;
7
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/registry/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,sBAAsB,CAAC;AAyD9B;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CA8B7F"}
@@ -0,0 +1,79 @@
1
+ // tools/registry/search.ts — AC-5: Search specs in the registry (no auth required)
2
+ /** Format a single search item for display. */
3
+ function formatSearchItem(item) {
4
+ return {
5
+ name: item.name,
6
+ description: item.description,
7
+ stack: item.stack,
8
+ difficulty: item.difficulty,
9
+ downloads: item.downloads,
10
+ rating: item.rating,
11
+ version: item.version,
12
+ category: item.category,
13
+ completenessScore: item.completenessScore,
14
+ };
15
+ }
16
+ /** Build search filters from raw tool args. */
17
+ /* v8 ignore start -- optional filter branches tested via integration */
18
+ function buildFilters(args) {
19
+ const filters = {};
20
+ if (typeof args.query === 'string') {
21
+ filters.query = args.query;
22
+ }
23
+ if (typeof args.stack === 'string') {
24
+ filters.stack = args.stack;
25
+ }
26
+ if (typeof args.category === 'string') {
27
+ filters.category = args.category;
28
+ }
29
+ if (typeof args.sort === 'string') {
30
+ filters.sort = args.sort;
31
+ }
32
+ if (typeof args.page === 'number') {
33
+ filters.page = args.page;
34
+ }
35
+ if (typeof args.limit === 'number') {
36
+ filters.limit = args.limit;
37
+ }
38
+ if (args.difficulty !== null &&
39
+ args.difficulty !== undefined &&
40
+ typeof args.difficulty === 'object') {
41
+ const d = args.difficulty;
42
+ filters.difficulty = {
43
+ min: typeof d.min === 'number' ? d.min : undefined,
44
+ max: typeof d.max === 'number' ? d.max : undefined,
45
+ };
46
+ }
47
+ return filters;
48
+ }
49
+ /* v8 ignore stop */
50
+ /**
51
+ * Handle registry_search tool invocation.
52
+ * Searches the spec registry with the given filters. No authentication required.
53
+ */
54
+ export async function handleRegistrySearch(args) {
55
+ try {
56
+ // Dynamic import — engine module may be created by another agent
57
+ const { createRegistryClient } = (await import('../../engine/spec-registry/index.js'));
58
+ const filters = buildFilters(args);
59
+ const client = createRegistryClient();
60
+ const result = await client.searchSpecs(filters);
61
+ const formatted = {
62
+ specs: result.data.map(formatSearchItem),
63
+ pagination: result.meta,
64
+ };
65
+ return {
66
+ content: [{ type: 'text', text: JSON.stringify(formatted, null, 2) }],
67
+ };
68
+ }
69
+ catch (error) {
70
+ /* v8 ignore start -- unexpected runtime errors */
71
+ const message = error instanceof Error ? error.message : String(error);
72
+ return {
73
+ content: [{ type: 'text', text: `Registry search failed: ${message}` }],
74
+ isError: true,
75
+ };
76
+ /* v8 ignore stop */
77
+ }
78
+ }
79
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/registry/search.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { AgentPlatformEnum, SubAgentFrameworkEnum } from './agents.js';
4
4
  export { DocumentationTypeEnum, GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum, PMActionEnum, } from './lifecycle.js';
5
5
  export { OrchestrateActionEnum, ManageContextActionEnum, ContextBudgetActionEnum, } from './infra.js';
6
6
  export { CheckSpecAccuracySchema, UpdateRegistrySchema } from './registry.js';
7
+ export { RegistrySearchInputSchema, RegistryInstallInputSchema, RegistryPublishInputSchema, RegistryLoginInputSchema, RegistryLogoutInputSchema, RegistryWhoamiInputSchema, } from './spec-registry-schemas.js';
7
8
  export { SessionFormatEnum, RestoreSessionSchema, ListSessionsSchema, ExportSessionSchema, } from './session.js';
8
9
  export { IdeTargetEnum, IdeConfigScopeEnum, generateIdeConfigSchema } from './ide-config.js';
9
10
  export { DeleteActionEnum, DeleteItemTypeEnum, TrashActionEnum } from './delete.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -5,6 +5,7 @@ export { AgentPlatformEnum, SubAgentFrameworkEnum } from './agents.js';
5
5
  export { DocumentationTypeEnum, GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum, PMActionEnum, } from './lifecycle.js';
6
6
  export { OrchestrateActionEnum, ManageContextActionEnum, ContextBudgetActionEnum, } from './infra.js';
7
7
  export { CheckSpecAccuracySchema, UpdateRegistrySchema } from './registry.js';
8
+ export { RegistrySearchInputSchema, RegistryInstallInputSchema, RegistryPublishInputSchema, RegistryLoginInputSchema, RegistryLogoutInputSchema, RegistryWhoamiInputSchema, } from './spec-registry-schemas.js';
8
9
  export { SessionFormatEnum, RestoreSessionSchema, ListSessionsSchema, ExportSessionSchema, } from './session.js';
9
10
  export { IdeTargetEnum, IdeConfigScopeEnum, generateIdeConfigSchema } from './ide-config.js';
10
11
  export { DeleteActionEnum, DeleteItemTypeEnum, TrashActionEnum } from './delete.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ /** Input schema for registry_search tool. */
3
+ export declare const RegistrySearchInputSchema: z.ZodObject<{
4
+ query: z.ZodString;
5
+ stack: z.ZodOptional<z.ZodString>;
6
+ category: z.ZodOptional<z.ZodString>;
7
+ difficulty: z.ZodOptional<z.ZodObject<{
8
+ min: z.ZodOptional<z.ZodNumber>;
9
+ max: z.ZodOptional<z.ZodNumber>;
10
+ }, z.core.$strip>>;
11
+ sort: z.ZodOptional<z.ZodEnum<{
12
+ downloads: "downloads";
13
+ rating: "rating";
14
+ recent: "recent";
15
+ }>>;
16
+ page: z.ZodDefault<z.ZodNumber>;
17
+ limit: z.ZodDefault<z.ZodNumber>;
18
+ }, z.core.$strip>;
19
+ /** Input schema for registry_install tool. */
20
+ export declare const RegistryInstallInputSchema: z.ZodObject<{
21
+ specName: z.ZodString;
22
+ version: z.ZodOptional<z.ZodString>;
23
+ projectPath: z.ZodString;
24
+ adapt: z.ZodDefault<z.ZodBoolean>;
25
+ }, z.core.$strip>;
26
+ /** Input schema for registry_publish tool. */
27
+ export declare const RegistryPublishInputSchema: z.ZodObject<{
28
+ specDir: z.ZodString;
29
+ projectPath: z.ZodString;
30
+ }, z.core.$strip>;
31
+ /** Input schema for registry_login tool. */
32
+ export declare const RegistryLoginInputSchema: z.ZodObject<{
33
+ token: z.ZodString;
34
+ }, z.core.$strip>;
35
+ /** Input schema for registry_logout tool. */
36
+ export declare const RegistryLogoutInputSchema: z.ZodObject<{}, z.core.$strip>;
37
+ /** Input schema for registry_whoami tool. */
38
+ export declare const RegistryWhoamiInputSchema: z.ZodObject<{}, z.core.$strip>;
39
+ //# sourceMappingURL=spec-registry-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-registry-schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/spec-registry-schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAgCpC,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B;;;;;iBAkBrC,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B;;;iBASrC,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB,gCAAe,CAAC;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB,gCAAe,CAAC"}
@@ -0,0 +1,72 @@
1
+ // schemas/spec-registry-schemas.ts — Zod schemas for SPEC-127 registry tools
2
+ import { z } from 'zod';
3
+ /** Input schema for registry_search tool. */
4
+ export const RegistrySearchInputSchema = z.object({
5
+ query: z
6
+ .string()
7
+ .max(500)
8
+ .describe('Free-text search query to find specs (e.g. "auth next.js", "stripe payments")'),
9
+ stack: z
10
+ .string()
11
+ .max(200)
12
+ .optional()
13
+ .describe('Filter by stack ID: next.js | express | fastapi | django | rails | spring-boot | laravel | gin | actix-web | phoenix | sveltekit | nuxt | remix | astro'),
14
+ category: z
15
+ .string()
16
+ .max(200)
17
+ .optional()
18
+ .describe('Filter by category ID: auth | payments | crud | api | database | testing | ci-cd | deployment | monitoring | notifications | file-upload | search | caching | i18n | seo | analytics | security | performance'),
19
+ difficulty: z
20
+ .object({
21
+ min: z.number().min(1).max(5).optional().describe('Minimum difficulty level (1-5)'),
22
+ max: z.number().min(1).max(5).optional().describe('Maximum difficulty level (1-5)'),
23
+ })
24
+ .optional()
25
+ .describe('Filter by difficulty range (1 = beginner, 5 = expert)'),
26
+ sort: z
27
+ .enum(['downloads', 'rating', 'recent'])
28
+ .optional()
29
+ .describe('Sort order: downloads | rating | recent'),
30
+ page: z.number().min(1).default(1).describe('Page number, 1-based (default: 1)'),
31
+ limit: z.number().min(1).max(100).default(20).describe('Results per page, max 100 (default: 20)'),
32
+ });
33
+ /** Input schema for registry_install tool. */
34
+ export const RegistryInstallInputSchema = z.object({
35
+ specName: z
36
+ .string()
37
+ .max(500)
38
+ .describe('Spec identifier in org/name format (e.g. "planu/auth-nextjs")'),
39
+ version: z
40
+ .string()
41
+ .max(100)
42
+ .optional()
43
+ .describe('Specific semver version to install (default: latest)'),
44
+ projectPath: z
45
+ .string()
46
+ .max(2000)
47
+ .describe('Absolute path to the target project where the spec will be installed'),
48
+ adapt: z
49
+ .boolean()
50
+ .default(true)
51
+ .describe('Whether to adapt the spec to the detected project stack (default: true)'),
52
+ });
53
+ /** Input schema for registry_publish tool. */
54
+ export const RegistryPublishInputSchema = z.object({
55
+ specDir: z
56
+ .string()
57
+ .max(2000)
58
+ .describe('Absolute path to the spec directory containing planu-registry.json'),
59
+ projectPath: z
60
+ .string()
61
+ .max(2000)
62
+ .describe('Absolute path to the project root (used for context resolution)'),
63
+ });
64
+ /** Input schema for registry_login tool. */
65
+ export const RegistryLoginInputSchema = z.object({
66
+ token: z.string().max(1000).describe('API token obtained from planu.dev account settings'),
67
+ });
68
+ /** Input schema for registry_logout tool. */
69
+ export const RegistryLogoutInputSchema = z.object({});
70
+ /** Input schema for registry_whoami tool. */
71
+ export const RegistryWhoamiInputSchema = z.object({});
72
+ //# sourceMappingURL=spec-registry-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-registry-schemas.js","sourceRoot":"","sources":["../../../src/tools/schemas/spec-registry-schemas.ts"],"names":[],"mappings":"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"}
@@ -78,4 +78,5 @@ export * from './source-resolution.js';
78
78
  export * from './living-spec.js';
79
79
  export * from './cli.js';
80
80
  export * from './file-hooks.js';
81
+ export * from './spec-registry.js';
81
82
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -79,4 +79,5 @@ export * from './source-resolution.js';
79
79
  export * from './living-spec.js';
80
80
  export * from './cli.js';
81
81
  export * from './file-hooks.js';
82
+ export * from './spec-registry.js';
82
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}