@planu/cli 0.44.0 → 0.45.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/dist/config/license-plans.json +8 -2
- package/dist/config/registry-categories.json +20 -0
- package/dist/config/registry-stacks.json +16 -0
- package/dist/engine/spec-registry/adapter.d.ts +9 -0
- package/dist/engine/spec-registry/adapter.d.ts.map +1 -0
- package/dist/engine/spec-registry/adapter.js +303 -0
- package/dist/engine/spec-registry/adapter.js.map +1 -0
- package/dist/engine/spec-registry/client.d.ts +8 -0
- package/dist/engine/spec-registry/client.d.ts.map +1 -0
- package/dist/engine/spec-registry/client.js +194 -0
- package/dist/engine/spec-registry/client.js.map +1 -0
- package/dist/engine/spec-registry/index.d.ts +7 -0
- package/dist/engine/spec-registry/index.d.ts.map +1 -0
- package/dist/engine/spec-registry/index.js +7 -0
- package/dist/engine/spec-registry/index.js.map +1 -0
- package/dist/engine/spec-registry/packager.d.ts +24 -0
- package/dist/engine/spec-registry/packager.d.ts.map +1 -0
- package/dist/engine/spec-registry/packager.js +122 -0
- package/dist/engine/spec-registry/packager.js.map +1 -0
- package/dist/engine/spec-registry/scorer.d.ts +10 -0
- package/dist/engine/spec-registry/scorer.d.ts.map +1 -0
- package/dist/engine/spec-registry/scorer.js +151 -0
- package/dist/engine/spec-registry/scorer.js.map +1 -0
- package/dist/engine/spec-registry/validator.d.ts +11 -0
- package/dist/engine/spec-registry/validator.d.ts.map +1 -0
- package/dist/engine/spec-registry/validator.js +144 -0
- package/dist/engine/spec-registry/validator.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/register-spec-registry-tools.d.ts +3 -0
- package/dist/tools/register-spec-registry-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-registry-tools.js +91 -0
- package/dist/tools/register-spec-registry-tools.js.map +1 -0
- package/dist/tools/registry/auth.d.ts +17 -0
- package/dist/tools/registry/auth.d.ts.map +1 -0
- package/dist/tools/registry/auth.js +132 -0
- package/dist/tools/registry/auth.js.map +1 -0
- package/dist/tools/registry/index.d.ts +5 -0
- package/dist/tools/registry/index.d.ts.map +1 -0
- package/dist/tools/registry/index.js +6 -0
- package/dist/tools/registry/index.js.map +1 -0
- package/dist/tools/registry/install.d.ts +7 -0
- package/dist/tools/registry/install.d.ts.map +1 -0
- package/dist/tools/registry/install.js +125 -0
- package/dist/tools/registry/install.js.map +1 -0
- package/dist/tools/registry/publish.d.ts +7 -0
- package/dist/tools/registry/publish.d.ts.map +1 -0
- package/dist/tools/registry/publish.js +96 -0
- package/dist/tools/registry/publish.js.map +1 -0
- package/dist/tools/registry/search.d.ts +7 -0
- package/dist/tools/registry/search.d.ts.map +1 -0
- package/dist/tools/registry/search.js +79 -0
- package/dist/tools/registry/search.js.map +1 -0
- package/dist/tools/schemas/index.d.ts +1 -0
- package/dist/tools/schemas/index.d.ts.map +1 -1
- package/dist/tools/schemas/index.js +1 -0
- package/dist/tools/schemas/index.js.map +1 -1
- package/dist/tools/schemas/spec-registry-schemas.d.ts +39 -0
- package/dist/tools/schemas/spec-registry-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/spec-registry-schemas.js +72 -0
- package/dist/tools/schemas/spec-registry-schemas.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/spec-registry.d.ts +194 -0
- package/dist/types/spec-registry.d.ts.map +1 -0
- package/dist/types/spec-registry.js +3 -0
- package/dist/types/spec-registry.js.map +1 -0
- package/package.json +1 -1
- package/src/config/license-plans.json +8 -2
- package/src/config/registry-categories.json +20 -0
- package/src/config/registry-stacks.json +16 -0
|
@@ -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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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/** Metadata for a published spec in the registry. */
|
|
2
|
+
export interface RegistrySpecMeta {
|
|
3
|
+
/** Unique name in org/name format. */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Organization or user that published the spec. */
|
|
6
|
+
org: string;
|
|
7
|
+
/** Semver version string. */
|
|
8
|
+
version: string;
|
|
9
|
+
/** Short description of what the spec does. */
|
|
10
|
+
description: string;
|
|
11
|
+
/** Category ID from registry-categories.json. */
|
|
12
|
+
category: string;
|
|
13
|
+
/** Technology stack tags (e.g. ["next.js", "prisma"]). */
|
|
14
|
+
stack: string[];
|
|
15
|
+
/** Difficulty level 1-5. */
|
|
16
|
+
difficulty: number;
|
|
17
|
+
/** Estimated implementation hours. */
|
|
18
|
+
estimatedHours: number;
|
|
19
|
+
/** Searchable tags. */
|
|
20
|
+
tags: string[];
|
|
21
|
+
/** Total download count. */
|
|
22
|
+
downloads: number;
|
|
23
|
+
/** Average rating (0-5). */
|
|
24
|
+
rating: number;
|
|
25
|
+
/** Number of ratings received. */
|
|
26
|
+
ratingCount: number;
|
|
27
|
+
/** ISO 8601 creation timestamp. */
|
|
28
|
+
createdAt: string;
|
|
29
|
+
/** ISO 8601 last update timestamp. */
|
|
30
|
+
updatedAt: string;
|
|
31
|
+
/** Whether this spec is deprecated. */
|
|
32
|
+
deprecated?: boolean;
|
|
33
|
+
/** Message explaining why the spec was deprecated. */
|
|
34
|
+
deprecationMessage?: string;
|
|
35
|
+
}
|
|
36
|
+
/** A single item in search results, extends meta with completeness score. */
|
|
37
|
+
export interface RegistrySearchItem extends RegistrySpecMeta {
|
|
38
|
+
/** Completeness score 0-100 based on spec quality metrics. */
|
|
39
|
+
completenessScore: number;
|
|
40
|
+
}
|
|
41
|
+
/** Paginated search result from the registry. */
|
|
42
|
+
export interface RegistrySearchResult {
|
|
43
|
+
/** Array of matching specs. */
|
|
44
|
+
data: RegistrySearchItem[];
|
|
45
|
+
/** Pagination metadata. */
|
|
46
|
+
meta: {
|
|
47
|
+
page: number;
|
|
48
|
+
limit: number;
|
|
49
|
+
total: number;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Result of installing a spec from the registry. */
|
|
53
|
+
export interface RegistryInstallResult {
|
|
54
|
+
/** Local spec ID assigned after install. */
|
|
55
|
+
specId: string;
|
|
56
|
+
/** Slug used for the local spec directory. */
|
|
57
|
+
slug: string;
|
|
58
|
+
/** Absolute path to the installed spec directory. */
|
|
59
|
+
specDir: string;
|
|
60
|
+
/** Source identifier (org/name). */
|
|
61
|
+
source: string;
|
|
62
|
+
/** Installed version. */
|
|
63
|
+
version: string;
|
|
64
|
+
/** Whether stack adaptation was applied. */
|
|
65
|
+
adapted: boolean;
|
|
66
|
+
}
|
|
67
|
+
/** Result of publishing a spec to the registry. */
|
|
68
|
+
export interface RegistryPublishResult {
|
|
69
|
+
/** Whether the publish succeeded. */
|
|
70
|
+
success: boolean;
|
|
71
|
+
/** Organization the spec was published under. */
|
|
72
|
+
org: string;
|
|
73
|
+
/** Spec name in the registry. */
|
|
74
|
+
name: string;
|
|
75
|
+
/** Published version. */
|
|
76
|
+
version: string;
|
|
77
|
+
/** URL to view the published spec. */
|
|
78
|
+
url: string;
|
|
79
|
+
}
|
|
80
|
+
/** Stored credentials for registry authentication. */
|
|
81
|
+
export interface RegistryCredentials {
|
|
82
|
+
/** API token for registry access. */
|
|
83
|
+
token: string;
|
|
84
|
+
/** Username associated with the token. */
|
|
85
|
+
user: string;
|
|
86
|
+
/** Email associated with the account. */
|
|
87
|
+
email: string;
|
|
88
|
+
/** License plan level. */
|
|
89
|
+
plan: 'free' | 'pro';
|
|
90
|
+
/** ISO 8601 token expiration timestamp. */
|
|
91
|
+
expiresAt: string;
|
|
92
|
+
}
|
|
93
|
+
/** Shape of the planu-registry.json manifest file included in published specs. */
|
|
94
|
+
export interface RegistryPackageManifest {
|
|
95
|
+
/** Spec name (without org prefix). */
|
|
96
|
+
name: string;
|
|
97
|
+
/** Organization or user. */
|
|
98
|
+
org: string;
|
|
99
|
+
/** Semver version. */
|
|
100
|
+
version: string;
|
|
101
|
+
/** Short description. */
|
|
102
|
+
description: string;
|
|
103
|
+
/** Category ID. */
|
|
104
|
+
category: string;
|
|
105
|
+
/** Technology stack tags. */
|
|
106
|
+
stack: string[];
|
|
107
|
+
/** Difficulty level 1-5. */
|
|
108
|
+
difficulty: number;
|
|
109
|
+
/** Estimated implementation hours. */
|
|
110
|
+
estimatedHours: number;
|
|
111
|
+
/** Searchable tags. */
|
|
112
|
+
tags: string[];
|
|
113
|
+
/** Stack-specific adaptations: { marker: { targetValue: replacement } }. */
|
|
114
|
+
adaptable?: Record<string, Record<string, string>>;
|
|
115
|
+
}
|
|
116
|
+
/** Filters for searching the registry. */
|
|
117
|
+
export interface RegistrySearchFilters {
|
|
118
|
+
/** Free-text search query. */
|
|
119
|
+
query?: string;
|
|
120
|
+
/** Filter by stack (e.g. "next.js"). */
|
|
121
|
+
stack?: string;
|
|
122
|
+
/** Filter by category ID. */
|
|
123
|
+
category?: string;
|
|
124
|
+
/** Filter by difficulty range. */
|
|
125
|
+
difficulty?: {
|
|
126
|
+
min?: number;
|
|
127
|
+
max?: number;
|
|
128
|
+
};
|
|
129
|
+
/** Sort order for results. */
|
|
130
|
+
sort?: 'downloads' | 'rating' | 'recent';
|
|
131
|
+
/** Page number (1-based). */
|
|
132
|
+
page?: number;
|
|
133
|
+
/** Results per page. */
|
|
134
|
+
limit?: number;
|
|
135
|
+
}
|
|
136
|
+
/** Result of detecting the project's technology stack. */
|
|
137
|
+
export interface StackDetectionResult {
|
|
138
|
+
/** Primary programming language. */
|
|
139
|
+
language: string;
|
|
140
|
+
/** Primary framework. */
|
|
141
|
+
framework: string;
|
|
142
|
+
/** ORM or database library, if detected. */
|
|
143
|
+
orm?: string;
|
|
144
|
+
/** Test runner, if detected. */
|
|
145
|
+
testRunner?: string;
|
|
146
|
+
/** Build tool, if detected. */
|
|
147
|
+
buildTool?: string;
|
|
148
|
+
/** Package manager, if detected. */
|
|
149
|
+
packageManager?: string;
|
|
150
|
+
}
|
|
151
|
+
/** Options for creating a registry API client. */
|
|
152
|
+
export interface RegistryClientOptions {
|
|
153
|
+
token?: string;
|
|
154
|
+
baseUrl?: string;
|
|
155
|
+
}
|
|
156
|
+
/** Registry API client interface returned by createRegistryClient. */
|
|
157
|
+
export interface RegistryClient {
|
|
158
|
+
searchSpecs(filters: RegistrySearchFilters): Promise<RegistrySearchResult>;
|
|
159
|
+
getSpec(org: string, name: string, version?: string): Promise<RegistrySpecMeta>;
|
|
160
|
+
downloadSpec(org: string, name: string, version: string): Promise<Buffer>;
|
|
161
|
+
publishSpec(tarball: Buffer, meta: Record<string, unknown>): Promise<RegistryPublishResult>;
|
|
162
|
+
rateSpec(org: string, name: string, rating: number): Promise<void>;
|
|
163
|
+
}
|
|
164
|
+
/** Internal archive format: JSON with file contents keyed by relative path. */
|
|
165
|
+
export interface SpecArchive {
|
|
166
|
+
files: Record<string, string>;
|
|
167
|
+
}
|
|
168
|
+
/** A single file adaptation applied during spec install. */
|
|
169
|
+
export interface StackAdaptation {
|
|
170
|
+
/** File path relative to spec directory. */
|
|
171
|
+
file: string;
|
|
172
|
+
/** Original content before adaptation. */
|
|
173
|
+
original: string;
|
|
174
|
+
/** Adapted content after stack replacement. */
|
|
175
|
+
adapted: string;
|
|
176
|
+
/** Adaptation marker that was matched. */
|
|
177
|
+
marker?: string;
|
|
178
|
+
}
|
|
179
|
+
/** Breakdown of a spec's completeness score by category. */
|
|
180
|
+
export interface ScoreBreakdown {
|
|
181
|
+
/** Score for acceptance criteria (0-20). */
|
|
182
|
+
acceptanceCriteria: number;
|
|
183
|
+
/** Score for risk documentation (0-15). */
|
|
184
|
+
risksDocumented: number;
|
|
185
|
+
/** Score for testing strategy (0-15). */
|
|
186
|
+
testingStrategy: number;
|
|
187
|
+
/** Score for key files listing (0-15). */
|
|
188
|
+
keyFiles: number;
|
|
189
|
+
/** Score for technical.md completeness (0-20). */
|
|
190
|
+
technicalCompleteness: number;
|
|
191
|
+
/** Score for frontmatter fields (0-15). */
|
|
192
|
+
frontmatterFields: number;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=spec-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-registry.d.ts","sourceRoot":"","sources":["../../src/types/spec-registry.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,2BAA2B;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,8BAA8B;IAC9B,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5F,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-registry.js","sourceRoot":"","sources":["../../src/types/spec-registry.ts"],"names":[],"mappings":"AAAA,8EAA8E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planu/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,7 +47,9 @@
|
|
|
47
47
|
"manage_trash",
|
|
48
48
|
"worker_status",
|
|
49
49
|
"token_usage",
|
|
50
|
-
"pr_status"
|
|
50
|
+
"pr_status",
|
|
51
|
+
"registry_search",
|
|
52
|
+
"registry_install"
|
|
51
53
|
],
|
|
52
54
|
"proTools": [
|
|
53
55
|
"audit",
|
|
@@ -140,7 +142,11 @@
|
|
|
140
142
|
"living_spec_coverage",
|
|
141
143
|
"sync_spec_to_code",
|
|
142
144
|
"sync_code_to_spec",
|
|
143
|
-
"resolve_sync_conflict"
|
|
145
|
+
"resolve_sync_conflict",
|
|
146
|
+
"registry_publish",
|
|
147
|
+
"registry_login",
|
|
148
|
+
"registry_logout",
|
|
149
|
+
"registry_whoami"
|
|
144
150
|
],
|
|
145
151
|
"alwaysAllowed": [
|
|
146
152
|
"activate_license",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
{ "id": "auth", "label": "Authentication", "description": "Login, signup, OAuth, SSO, session management" },
|
|
3
|
+
{ "id": "payments", "label": "Payments", "description": "Stripe, PayPal, billing, subscriptions, invoicing" },
|
|
4
|
+
{ "id": "crud", "label": "CRUD", "description": "Create-read-update-delete resource management" },
|
|
5
|
+
{ "id": "api", "label": "API Design", "description": "REST, GraphQL, tRPC, API gateway patterns" },
|
|
6
|
+
{ "id": "database", "label": "Database", "description": "Schema design, migrations, seeding, indexing" },
|
|
7
|
+
{ "id": "testing", "label": "Testing", "description": "Unit, integration, E2E, load testing strategies" },
|
|
8
|
+
{ "id": "ci-cd", "label": "CI/CD", "description": "Continuous integration, deployment pipelines" },
|
|
9
|
+
{ "id": "deployment", "label": "Deployment", "description": "Docker, Kubernetes, serverless, platform configs" },
|
|
10
|
+
{ "id": "monitoring", "label": "Monitoring", "description": "Logging, alerting, APM, health checks" },
|
|
11
|
+
{ "id": "notifications", "label": "Notifications", "description": "Email, push, SMS, in-app notification systems" },
|
|
12
|
+
{ "id": "file-upload", "label": "File Upload", "description": "Upload, storage, CDN, image processing" },
|
|
13
|
+
{ "id": "search", "label": "Search", "description": "Full-text search, Elasticsearch, Algolia, filters" },
|
|
14
|
+
{ "id": "caching", "label": "Caching", "description": "Redis, Memcached, CDN caching, invalidation" },
|
|
15
|
+
{ "id": "i18n", "label": "Internationalization", "description": "Multi-language support, locale management" },
|
|
16
|
+
{ "id": "seo", "label": "SEO", "description": "Meta tags, sitemap, structured data, Open Graph" },
|
|
17
|
+
{ "id": "analytics", "label": "Analytics", "description": "Event tracking, dashboards, user analytics" },
|
|
18
|
+
{ "id": "security", "label": "Security", "description": "CSRF, XSS prevention, rate limiting, RBAC" },
|
|
19
|
+
{ "id": "performance", "label": "Performance", "description": "Optimization, lazy loading, bundle analysis" }
|
|
20
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[
|
|
2
|
+
{ "id": "next.js", "label": "Next.js", "ecosystem": "typescript" },
|
|
3
|
+
{ "id": "express", "label": "Express", "ecosystem": "typescript" },
|
|
4
|
+
{ "id": "fastapi", "label": "FastAPI", "ecosystem": "python" },
|
|
5
|
+
{ "id": "django", "label": "Django", "ecosystem": "python" },
|
|
6
|
+
{ "id": "rails", "label": "Ruby on Rails", "ecosystem": "ruby" },
|
|
7
|
+
{ "id": "spring-boot", "label": "Spring Boot", "ecosystem": "java" },
|
|
8
|
+
{ "id": "laravel", "label": "Laravel", "ecosystem": "php" },
|
|
9
|
+
{ "id": "gin", "label": "Gin", "ecosystem": "go" },
|
|
10
|
+
{ "id": "actix-web", "label": "Actix Web", "ecosystem": "rust" },
|
|
11
|
+
{ "id": "phoenix", "label": "Phoenix", "ecosystem": "elixir" },
|
|
12
|
+
{ "id": "sveltekit", "label": "SvelteKit", "ecosystem": "typescript" },
|
|
13
|
+
{ "id": "nuxt", "label": "Nuxt", "ecosystem": "typescript" },
|
|
14
|
+
{ "id": "remix", "label": "Remix", "ecosystem": "typescript" },
|
|
15
|
+
{ "id": "astro", "label": "Astro", "ecosystem": "typescript" }
|
|
16
|
+
]
|