@soddong/agentic-runtime 0.16.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/.tbls.yml +103 -0
- package/CHANGELOG.md +229 -0
- package/README.md +707 -0
- package/dist/agent-router.d.ts +39 -0
- package/dist/agent-router.d.ts.map +1 -0
- package/dist/agent-router.js +175 -0
- package/dist/agent-router.js.map +1 -0
- package/dist/bundle-installer.d.ts +25 -0
- package/dist/bundle-installer.d.ts.map +1 -0
- package/dist/bundle-installer.js +149 -0
- package/dist/bundle-installer.js.map +1 -0
- package/dist/bundle-registry.d.ts +30 -0
- package/dist/bundle-registry.d.ts.map +1 -0
- package/dist/bundle-registry.js +102 -0
- package/dist/bundle-registry.js.map +1 -0
- package/dist/claude-code-adapter.d.ts +27 -0
- package/dist/claude-code-adapter.d.ts.map +1 -0
- package/dist/claude-code-adapter.js +177 -0
- package/dist/claude-code-adapter.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1731 -0
- package/dist/cli.js.map +1 -0
- package/dist/codex-adapter.d.ts +23 -0
- package/dist/codex-adapter.d.ts.map +1 -0
- package/dist/codex-adapter.js +264 -0
- package/dist/codex-adapter.js.map +1 -0
- package/dist/database.d.ts +22 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +184 -0
- package/dist/database.js.map +1 -0
- package/dist/execution-projects.d.ts +71 -0
- package/dist/execution-projects.d.ts.map +1 -0
- package/dist/execution-projects.js +333 -0
- package/dist/execution-projects.js.map +1 -0
- package/dist/execution-query.d.ts +73 -0
- package/dist/execution-query.d.ts.map +1 -0
- package/dist/execution-query.js +370 -0
- package/dist/execution-query.js.map +1 -0
- package/dist/execution.d.ts +47 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +153 -0
- package/dist/execution.js.map +1 -0
- package/dist/hook-command.d.ts +3 -0
- package/dist/hook-command.d.ts.map +1 -0
- package/dist/hook-command.js +13 -0
- package/dist/hook-command.js.map +1 -0
- package/dist/hook-record.d.ts +16 -0
- package/dist/hook-record.d.ts.map +1 -0
- package/dist/hook-record.js +427 -0
- package/dist/hook-record.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/kiro-adapter.d.ts +38 -0
- package/dist/kiro-adapter.d.ts.map +1 -0
- package/dist/kiro-adapter.js +374 -0
- package/dist/kiro-adapter.js.map +1 -0
- package/dist/module-registry.d.ts +21 -0
- package/dist/module-registry.d.ts.map +1 -0
- package/dist/module-registry.js +75 -0
- package/dist/module-registry.js.map +1 -0
- package/dist/runtime-info.d.ts +8 -0
- package/dist/runtime-info.d.ts.map +1 -0
- package/dist/runtime-info.js +15 -0
- package/dist/runtime-info.js.map +1 -0
- package/dist/seed-importer.d.ts +77 -0
- package/dist/seed-importer.d.ts.map +1 -0
- package/dist/seed-importer.js +570 -0
- package/dist/seed-importer.js.map +1 -0
- package/docs/build.md +129 -0
- package/docs/configuration.md +61 -0
- package/docs/delivery.md +90 -0
- package/docs/operations.md +112 -0
- package/docs/publishing.md +196 -0
- package/docs/schema/generated/README.md +31 -0
- package/docs/schema/generated/agentic_execution_logs.md +90 -0
- package/docs/schema/generated/agentic_execution_logs.svg +52 -0
- package/docs/schema/generated/agentic_execution_outputs.md +85 -0
- package/docs/schema/generated/agentic_execution_outputs.svg +52 -0
- package/docs/schema/generated/agentic_execution_project_activities.md +83 -0
- package/docs/schema/generated/agentic_execution_project_activities.svg +71 -0
- package/docs/schema/generated/agentic_execution_project_stages.md +69 -0
- package/docs/schema/generated/agentic_execution_project_stages.svg +71 -0
- package/docs/schema/generated/agentic_execution_projects.md +82 -0
- package/docs/schema/generated/agentic_execution_projects.svg +92 -0
- package/docs/schema/generated/agentic_execution_runs.md +111 -0
- package/docs/schema/generated/agentic_execution_runs.svg +92 -0
- package/docs/schema/generated/agentic_project_bundles.md +106 -0
- package/docs/schema/generated/agentic_project_bundles.svg +91 -0
- package/docs/schema/generated/agentic_project_modules.md +77 -0
- package/docs/schema/generated/agentic_project_modules.svg +49 -0
- package/docs/schema/generated/agentic_runtime_metadata.md +62 -0
- package/docs/schema/generated/agentic_runtime_metadata.svg +28 -0
- package/docs/schema/generated/agentic_schema_migrations.md +65 -0
- package/docs/schema/generated/agentic_schema_migrations.svg +32 -0
- package/docs/schema/generated/agentic_seed_import_items.md +85 -0
- package/docs/schema/generated/agentic_seed_import_items.svg +47 -0
- package/docs/schema/generated/agentic_seed_import_runs.md +103 -0
- package/docs/schema/generated/agentic_seed_import_runs.svg +68 -0
- package/docs/schema/generated/agentic_user_requests.md +66 -0
- package/docs/schema/generated/agentic_user_requests.svg +52 -0
- package/docs/schema/generated/schema.json +1976 -0
- package/docs/schema/generated/schema.mmd +167 -0
- package/docs/schema/generated/schema.svg +266 -0
- package/docs/schema/migrations.md +163 -0
- package/docs/usage.md +774 -0
- package/package.json +32 -0
- package/src/database/migrations/0001_runtime_base.sql +231 -0
- package/src/database/migrations/0002_runtime_bundles.sql +61 -0
- package/src/database/migrations/0003_runtime_seed_imports.sql +121 -0
- package/src/database/migrations/0004_runtime_seed_apply_status.sql +76 -0
- package/src/database/migrations/0005_runtime_execution_projects.sql +92 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type AgentContribution, type AgentContextAssembly, type AgentManifest, type AgentResourceBundle, type AgentRouteDecision, type AgentRouteRequest } from "@soddong/agentic-capability-agent-client";
|
|
2
|
+
import { type ProjectModule } from "./module-registry.js";
|
|
3
|
+
export interface RegisteredAgentManifest {
|
|
4
|
+
readonly module: ProjectModule;
|
|
5
|
+
readonly manifest: AgentManifest;
|
|
6
|
+
}
|
|
7
|
+
export interface RegisteredAgentContribution {
|
|
8
|
+
readonly module: ProjectModule;
|
|
9
|
+
readonly contribution: AgentContribution;
|
|
10
|
+
}
|
|
11
|
+
export interface RuntimeAgentRouteDecision extends AgentRouteDecision {
|
|
12
|
+
readonly selectedModule?: ProjectModule;
|
|
13
|
+
readonly selectedManifest?: AgentManifest;
|
|
14
|
+
readonly selectedContribution?: AgentContribution;
|
|
15
|
+
}
|
|
16
|
+
export interface RuntimeAgentResourceBundle extends AgentResourceBundle {
|
|
17
|
+
readonly selectedModule?: ProjectModule;
|
|
18
|
+
readonly selectedManifest?: AgentManifest;
|
|
19
|
+
readonly selectedContribution?: AgentContribution;
|
|
20
|
+
}
|
|
21
|
+
export interface RuntimeAgentContextAssembly extends AgentContextAssembly {
|
|
22
|
+
readonly selectedModule?: ProjectModule;
|
|
23
|
+
readonly selectedManifest?: AgentManifest;
|
|
24
|
+
readonly selectedContribution?: AgentContribution;
|
|
25
|
+
}
|
|
26
|
+
export interface RuntimeAgentContextAssemblyOptions {
|
|
27
|
+
readonly projectRoot?: string;
|
|
28
|
+
readonly packageRoots?: Readonly<Record<string, string>>;
|
|
29
|
+
}
|
|
30
|
+
export declare function isAgentManifest(value: unknown): value is AgentManifest;
|
|
31
|
+
export declare function isAgentContribution(value: unknown): value is AgentContribution;
|
|
32
|
+
export declare function listRegisteredAgentManifests(projectRoot?: string): readonly RegisteredAgentManifest[];
|
|
33
|
+
export declare function listRegisteredAgentContributions(projectRoot?: string): readonly RegisteredAgentContribution[];
|
|
34
|
+
export declare function registerAgentManifest(manifest: AgentManifest, projectRoot?: string): ProjectModule;
|
|
35
|
+
export declare function registerAgentContribution(contribution: AgentContribution, projectRoot?: string): ProjectModule;
|
|
36
|
+
export declare function routeRegisteredAgents(request: AgentRouteRequest, projectRoot?: string): RuntimeAgentRouteDecision;
|
|
37
|
+
export declare function selectRegisteredAgentResources(request: AgentRouteRequest, projectRoot?: string): RuntimeAgentResourceBundle | undefined;
|
|
38
|
+
export declare function assembleRegisteredAgentContext(request: AgentRouteRequest, options?: RuntimeAgentContextAssemblyOptions): RuntimeAgentContextAssembly | undefined;
|
|
39
|
+
//# sourceMappingURL=agent-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-router.d.ts","sourceRoot":"","sources":["../src/agent-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;CAC1C;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;CACnD;AAED,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;CACnD;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;CACnD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D;AAcD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAUtE;AA+DD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAa9E;AAcD,wBAAgB,4BAA4B,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,uBAAuB,EAAE,CAiBpH;AAED,wBAAgB,gCAAgC,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,2BAA2B,EAAE,CAe5H;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,GAAE,MAAsB,GAAG,aAAa,CAWjH;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,iBAAiB,EAC/B,WAAW,GAAE,MAAsB,GAClC,aAAa,CAWf;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,GAAE,MAAsB,GAClC,yBAAyB,CAoB3B;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,GAAE,MAAsB,GAClC,0BAA0B,GAAG,SAAS,CAiBxC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,kCAAuC,GAC/C,2BAA2B,GAAG,SAAS,CAuBzC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { assembleAgentContextFromBundle, routeByManifestScore, selectAgentResources } from "@soddong/agentic-capability-agent-client";
|
|
2
|
+
import { listProjectModules, registerProjectModule } from "./module-registry.js";
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return value !== null && typeof value === "object";
|
|
5
|
+
}
|
|
6
|
+
function isAgentCapability(value) {
|
|
7
|
+
return (isRecord(value) &&
|
|
8
|
+
typeof value.capabilityId === "string" &&
|
|
9
|
+
typeof value.description === "string");
|
|
10
|
+
}
|
|
11
|
+
export function isAgentManifest(value) {
|
|
12
|
+
return (isRecord(value) &&
|
|
13
|
+
typeof value.agentId === "string" &&
|
|
14
|
+
typeof value.packageName === "string" &&
|
|
15
|
+
typeof value.packageVersion === "string" &&
|
|
16
|
+
typeof value.moduleLayer === "string" &&
|
|
17
|
+
Array.isArray(value.capabilities) &&
|
|
18
|
+
value.capabilities.every(isAgentCapability));
|
|
19
|
+
}
|
|
20
|
+
function isResourceItem(value) {
|
|
21
|
+
return (isRecord(value) &&
|
|
22
|
+
typeof value.resourceId === "string" &&
|
|
23
|
+
typeof value.title === "string" &&
|
|
24
|
+
typeof value.kind === "string" &&
|
|
25
|
+
typeof value.path === "string");
|
|
26
|
+
}
|
|
27
|
+
function isResourceIndex(value) {
|
|
28
|
+
return (isRecord(value) &&
|
|
29
|
+
typeof value.resourceIndexId === "string" &&
|
|
30
|
+
typeof value.title === "string" &&
|
|
31
|
+
typeof value.version === "string" &&
|
|
32
|
+
Array.isArray(value.instructions) &&
|
|
33
|
+
value.instructions.every(isResourceItem) &&
|
|
34
|
+
(value.guides === undefined ||
|
|
35
|
+
(Array.isArray(value.guides) && value.guides.every(isResourceItem))) &&
|
|
36
|
+
(value.examples === undefined ||
|
|
37
|
+
(Array.isArray(value.examples) && value.examples.every(isResourceItem))) &&
|
|
38
|
+
(value.validationRules === undefined ||
|
|
39
|
+
(Array.isArray(value.validationRules) && value.validationRules.every(isResourceItem))) &&
|
|
40
|
+
(value.sources === undefined ||
|
|
41
|
+
(Array.isArray(value.sources) && value.sources.every(isResourceItem))));
|
|
42
|
+
}
|
|
43
|
+
function isResourceSelectionRule(value) {
|
|
44
|
+
return (isRecord(value) &&
|
|
45
|
+
typeof value.ruleId === "string" &&
|
|
46
|
+
(value.bundleType === undefined ||
|
|
47
|
+
typeof value.bundleType === "string") &&
|
|
48
|
+
Array.isArray(value.includeResourceIds) &&
|
|
49
|
+
value.includeResourceIds.every((resourceId) => typeof resourceId === "string"));
|
|
50
|
+
}
|
|
51
|
+
function isResourceSelection(value) {
|
|
52
|
+
return (isRecord(value) &&
|
|
53
|
+
typeof value.selectionId === "string" &&
|
|
54
|
+
typeof value.title === "string" &&
|
|
55
|
+
typeof value.version === "string" &&
|
|
56
|
+
Array.isArray(value.rules) &&
|
|
57
|
+
value.rules.every(isResourceSelectionRule));
|
|
58
|
+
}
|
|
59
|
+
export function isAgentContribution(value) {
|
|
60
|
+
return (isRecord(value) &&
|
|
61
|
+
isAgentManifest(value.manifest) &&
|
|
62
|
+
(value.resourceIndex === undefined ||
|
|
63
|
+
isResourceIndex(value.resourceIndex)) &&
|
|
64
|
+
(value.resourceSelection === undefined ||
|
|
65
|
+
isResourceSelection(value.resourceSelection)));
|
|
66
|
+
}
|
|
67
|
+
function extractAgentManifest(value) {
|
|
68
|
+
if (isAgentManifest(value)) {
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
if (isAgentContribution(value)) {
|
|
72
|
+
return value.manifest;
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
export function listRegisteredAgentManifests(projectRoot = process.cwd()) {
|
|
77
|
+
return listProjectModules(projectRoot)
|
|
78
|
+
.filter((module) => module.enabled)
|
|
79
|
+
.flatMap((module) => {
|
|
80
|
+
const manifest = extractAgentManifest(module.manifest);
|
|
81
|
+
if (manifest === undefined) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
return [
|
|
85
|
+
{
|
|
86
|
+
module,
|
|
87
|
+
manifest
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function listRegisteredAgentContributions(projectRoot = process.cwd()) {
|
|
93
|
+
return listProjectModules(projectRoot)
|
|
94
|
+
.filter((module) => module.enabled)
|
|
95
|
+
.flatMap((module) => {
|
|
96
|
+
if (!isAgentContribution(module.manifest)) {
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
return [
|
|
100
|
+
{
|
|
101
|
+
module,
|
|
102
|
+
contribution: module.manifest
|
|
103
|
+
}
|
|
104
|
+
];
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
export function registerAgentManifest(manifest, projectRoot = process.cwd()) {
|
|
108
|
+
return registerProjectModule({
|
|
109
|
+
packageName: manifest.packageName,
|
|
110
|
+
packageVersion: manifest.packageVersion,
|
|
111
|
+
moduleLayer: manifest.moduleLayer,
|
|
112
|
+
manifest,
|
|
113
|
+
enabled: true
|
|
114
|
+
}, projectRoot);
|
|
115
|
+
}
|
|
116
|
+
export function registerAgentContribution(contribution, projectRoot = process.cwd()) {
|
|
117
|
+
return registerProjectModule({
|
|
118
|
+
packageName: contribution.manifest.packageName,
|
|
119
|
+
packageVersion: contribution.manifest.packageVersion,
|
|
120
|
+
moduleLayer: contribution.manifest.moduleLayer,
|
|
121
|
+
manifest: contribution,
|
|
122
|
+
enabled: true
|
|
123
|
+
}, projectRoot);
|
|
124
|
+
}
|
|
125
|
+
export function routeRegisteredAgents(request, projectRoot = process.cwd()) {
|
|
126
|
+
const registeredAgents = listRegisteredAgentManifests(projectRoot);
|
|
127
|
+
const decision = routeByManifestScore(registeredAgents.map((registeredAgent) => registeredAgent.manifest), request);
|
|
128
|
+
const selected = decision.selectedAgentId === undefined
|
|
129
|
+
? undefined
|
|
130
|
+
: registeredAgents.find((registeredAgent) => registeredAgent.manifest.agentId === decision.selectedAgentId);
|
|
131
|
+
const selectedContribution = selected !== undefined && isAgentContribution(selected.module.manifest)
|
|
132
|
+
? selected.module.manifest
|
|
133
|
+
: undefined;
|
|
134
|
+
return {
|
|
135
|
+
...decision,
|
|
136
|
+
selectedModule: selected?.module,
|
|
137
|
+
selectedManifest: selected?.manifest,
|
|
138
|
+
selectedContribution
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export function selectRegisteredAgentResources(request, projectRoot = process.cwd()) {
|
|
142
|
+
const decision = routeRegisteredAgents(request, projectRoot);
|
|
143
|
+
if (decision.selectedContribution === undefined) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
const bundle = selectAgentResources(decision.selectedContribution, {
|
|
147
|
+
requestText: request.requestText
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
...bundle,
|
|
151
|
+
selectedModule: decision.selectedModule,
|
|
152
|
+
selectedManifest: decision.selectedManifest,
|
|
153
|
+
selectedContribution: decision.selectedContribution
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
export function assembleRegisteredAgentContext(request, options = {}) {
|
|
157
|
+
const bundle = selectRegisteredAgentResources(request, options.projectRoot ?? process.cwd());
|
|
158
|
+
if (bundle === undefined) {
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
const packageRoot = options.packageRoots?.[bundle.packageName];
|
|
162
|
+
if (packageRoot === undefined) {
|
|
163
|
+
throw new Error(`Package root is required to assemble agent context: ${bundle.packageName}`);
|
|
164
|
+
}
|
|
165
|
+
const assembly = assembleAgentContextFromBundle(bundle, {
|
|
166
|
+
packageRoot
|
|
167
|
+
});
|
|
168
|
+
return {
|
|
169
|
+
...assembly,
|
|
170
|
+
selectedModule: bundle.selectedModule,
|
|
171
|
+
selectedManifest: bundle.selectedManifest,
|
|
172
|
+
selectedContribution: bundle.selectedContribution
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=agent-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-router.js","sourceRoot":"","sources":["../src/agent-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ProjectBundle } from "./bundle-registry.js";
|
|
2
|
+
interface BundleValidationResultLike {
|
|
3
|
+
readonly valid?: boolean;
|
|
4
|
+
readonly issues?: readonly unknown[];
|
|
5
|
+
}
|
|
6
|
+
export interface InstallProjectBundleInput {
|
|
7
|
+
readonly packageName: string;
|
|
8
|
+
readonly bundleCode?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface InstalledProjectBundleResult {
|
|
11
|
+
readonly packageName: string;
|
|
12
|
+
readonly packageVersion: string;
|
|
13
|
+
readonly packageRoot: string;
|
|
14
|
+
readonly bundle: ProjectBundle;
|
|
15
|
+
readonly validation: BundleValidationResultLike;
|
|
16
|
+
readonly summary: {
|
|
17
|
+
readonly stageCount: number;
|
|
18
|
+
readonly activityCount: number;
|
|
19
|
+
readonly artifactRequirementCount: number;
|
|
20
|
+
readonly generatedOutputLinkCount: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare function installProjectBundle(input: InstallProjectBundleInput, projectRoot?: string): Promise<InstalledProjectBundleResult>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=bundle-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-installer.d.ts","sourceRoot":"","sources":["../src/bundle-installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyB1D,UAAU,0BAA0B;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACtC;AAMD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;QAC1C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;KAC3C,CAAC;CACH;AAkGD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,EAChC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,4BAA4B,CAAC,CAkFvC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
import { registerProjectBundle } from "./bundle-registry.js";
|
|
6
|
+
import { registerProjectModule } from "./module-registry.js";
|
|
7
|
+
const LIST_EXPORT_CANDIDATES = [
|
|
8
|
+
"listAgenticSeedBundles",
|
|
9
|
+
"listSeedBundles",
|
|
10
|
+
"listAiAgentSdlcBundles"
|
|
11
|
+
];
|
|
12
|
+
const LOAD_EXPORT_CANDIDATES = [
|
|
13
|
+
"loadAgenticSeedBundle",
|
|
14
|
+
"loadSeedBundle",
|
|
15
|
+
"loadAiAgentSdlcBundle"
|
|
16
|
+
];
|
|
17
|
+
const VALIDATE_EXPORT_CANDIDATES = [
|
|
18
|
+
"validateAgenticSeedBundle",
|
|
19
|
+
"validateSeedBundle",
|
|
20
|
+
"validateAiAgentSdlcBundle"
|
|
21
|
+
];
|
|
22
|
+
function isRecord(value) {
|
|
23
|
+
return typeof value === "object" && value !== null;
|
|
24
|
+
}
|
|
25
|
+
function findFunction(module, candidates) {
|
|
26
|
+
for (const candidate of candidates) {
|
|
27
|
+
const value = module[candidate];
|
|
28
|
+
if (typeof value === "function") {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
function findPackageJsonPath(packageName, projectRoot) {
|
|
35
|
+
const projectRequire = createRequire(join(projectRoot, "package.json"));
|
|
36
|
+
const packageJsonPath = projectRequire.resolve(join(packageName, "package.json"));
|
|
37
|
+
if (!existsSync(packageJsonPath)) {
|
|
38
|
+
throw new Error(`Package metadata not found: ${packageName}`);
|
|
39
|
+
}
|
|
40
|
+
return packageJsonPath;
|
|
41
|
+
}
|
|
42
|
+
function readPackageJson(packageJsonPath) {
|
|
43
|
+
return JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
44
|
+
}
|
|
45
|
+
async function importInstalledPackage(packageName, projectRoot) {
|
|
46
|
+
const projectRequire = createRequire(join(projectRoot, "package.json"));
|
|
47
|
+
const entryPath = projectRequire.resolve(packageName);
|
|
48
|
+
return await import(pathToFileURL(entryPath).href);
|
|
49
|
+
}
|
|
50
|
+
function normalizeBundleCodes(value) {
|
|
51
|
+
if (!Array.isArray(value)) {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
return value.filter((item) => typeof item === "string");
|
|
55
|
+
}
|
|
56
|
+
function normalizeBundle(value) {
|
|
57
|
+
if (!isRecord(value)) {
|
|
58
|
+
throw new Error("Bundle provider returned an invalid bundle object.");
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
function normalizeValidationResult(value) {
|
|
63
|
+
if (!isRecord(value)) {
|
|
64
|
+
return {
|
|
65
|
+
valid: true,
|
|
66
|
+
issues: []
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
function requireManifest(bundle) {
|
|
72
|
+
const manifest = bundle.manifest;
|
|
73
|
+
if (manifest?.bundleCode === undefined || manifest.bundleVersion === undefined) {
|
|
74
|
+
throw new Error("Bundle manifest must include bundleCode and bundleVersion.");
|
|
75
|
+
}
|
|
76
|
+
return manifest;
|
|
77
|
+
}
|
|
78
|
+
function countItems(items) {
|
|
79
|
+
return items?.length ?? 0;
|
|
80
|
+
}
|
|
81
|
+
export async function installProjectBundle(input, projectRoot = process.cwd()) {
|
|
82
|
+
const packageJsonPath = findPackageJsonPath(input.packageName, projectRoot);
|
|
83
|
+
const packageJson = readPackageJson(packageJsonPath);
|
|
84
|
+
const packageRoot = dirname(packageJsonPath);
|
|
85
|
+
const packageVersion = packageJson.version ?? "0.0.0";
|
|
86
|
+
const provider = await importInstalledPackage(input.packageName, projectRoot);
|
|
87
|
+
const listBundles = findFunction(provider, LIST_EXPORT_CANDIDATES);
|
|
88
|
+
const loadBundle = findFunction(provider, LOAD_EXPORT_CANDIDATES);
|
|
89
|
+
const validateBundle = findFunction(provider, VALIDATE_EXPORT_CANDIDATES);
|
|
90
|
+
if (loadBundle === undefined) {
|
|
91
|
+
throw new Error(`Package does not provide a supported seed bundle loader: ${input.packageName}`);
|
|
92
|
+
}
|
|
93
|
+
const availableBundleCodes = listBundles === undefined ? [] : normalizeBundleCodes(listBundles());
|
|
94
|
+
const bundleCode = input.bundleCode ?? availableBundleCodes[0];
|
|
95
|
+
if (bundleCode === undefined) {
|
|
96
|
+
throw new Error(`No seed bundle code was provided or discovered for package: ${input.packageName}`);
|
|
97
|
+
}
|
|
98
|
+
if (availableBundleCodes.length > 0 && !availableBundleCodes.includes(bundleCode)) {
|
|
99
|
+
throw new Error(`Bundle not found in package ${input.packageName}: ${bundleCode}`);
|
|
100
|
+
}
|
|
101
|
+
const bundle = normalizeBundle(await loadBundle(bundleCode));
|
|
102
|
+
const manifest = requireManifest(bundle);
|
|
103
|
+
const validation = validateBundle === undefined
|
|
104
|
+
? {
|
|
105
|
+
valid: true,
|
|
106
|
+
issues: []
|
|
107
|
+
}
|
|
108
|
+
: normalizeValidationResult(await validateBundle(bundle));
|
|
109
|
+
if (validation.valid === false) {
|
|
110
|
+
throw new Error(`Bundle validation failed: ${manifest.bundleCode}`);
|
|
111
|
+
}
|
|
112
|
+
registerProjectModule({
|
|
113
|
+
packageName: input.packageName,
|
|
114
|
+
packageVersion,
|
|
115
|
+
moduleLayer: "support",
|
|
116
|
+
manifest: {
|
|
117
|
+
packageName: input.packageName,
|
|
118
|
+
packageVersion,
|
|
119
|
+
packageRoot,
|
|
120
|
+
seedBundleProvider: true,
|
|
121
|
+
availableBundleCodes
|
|
122
|
+
}
|
|
123
|
+
}, projectRoot);
|
|
124
|
+
const registeredBundle = registerProjectBundle({
|
|
125
|
+
packageName: input.packageName,
|
|
126
|
+
packageVersion,
|
|
127
|
+
bundleCode: manifest.bundleCode,
|
|
128
|
+
bundleVersion: manifest.bundleVersion,
|
|
129
|
+
methodologyCode: manifest.methodologyCode,
|
|
130
|
+
displayName: manifest.displayName,
|
|
131
|
+
description: manifest.description,
|
|
132
|
+
bundleManifest: manifest,
|
|
133
|
+
validationResult: validation
|
|
134
|
+
}, projectRoot);
|
|
135
|
+
return {
|
|
136
|
+
packageName: input.packageName,
|
|
137
|
+
packageVersion,
|
|
138
|
+
packageRoot,
|
|
139
|
+
bundle: registeredBundle,
|
|
140
|
+
validation,
|
|
141
|
+
summary: {
|
|
142
|
+
stageCount: countItems(bundle.stages),
|
|
143
|
+
activityCount: countItems(bundle.activities),
|
|
144
|
+
artifactRequirementCount: countItems(bundle.activityArtifactRequirements),
|
|
145
|
+
generatedOutputLinkCount: countItems(bundle.generatedOutputLinks)
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=bundle-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-installer.js","sourceRoot":"","sources":["../src/bundle-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface RegisterProjectBundleInput {
|
|
2
|
+
readonly packageName: string;
|
|
3
|
+
readonly packageVersion: string;
|
|
4
|
+
readonly bundleCode: string;
|
|
5
|
+
readonly bundleVersion: string;
|
|
6
|
+
readonly methodologyCode?: string;
|
|
7
|
+
readonly displayName?: string;
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
readonly bundleManifest: unknown;
|
|
10
|
+
readonly validationResult: unknown;
|
|
11
|
+
readonly enabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ProjectBundle {
|
|
14
|
+
readonly bundleId: number;
|
|
15
|
+
readonly packageName: string;
|
|
16
|
+
readonly packageVersion: string;
|
|
17
|
+
readonly bundleCode: string;
|
|
18
|
+
readonly bundleVersion: string;
|
|
19
|
+
readonly methodologyCode?: string;
|
|
20
|
+
readonly displayName?: string;
|
|
21
|
+
readonly description?: string;
|
|
22
|
+
readonly bundleManifest: unknown;
|
|
23
|
+
readonly validationResult: unknown;
|
|
24
|
+
readonly enabled: boolean;
|
|
25
|
+
readonly installedAt: string;
|
|
26
|
+
readonly updatedAt: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function registerProjectBundle(input: RegisterProjectBundleInput, projectRoot?: string): ProjectBundle;
|
|
29
|
+
export declare function listProjectBundles(projectRoot?: string): readonly ProjectBundle[];
|
|
30
|
+
//# sourceMappingURL=bundle-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-registry.d.ts","sourceRoot":"","sources":["../src/bundle-registry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAuGD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,EACjC,WAAW,GAAE,MAAsB,GAClC,aAAa,CAOf;AAED,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,aAAa,EAAE,CA2BhG"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { openRuntimeDatabase } from "./database.js";
|
|
2
|
+
function mapProjectBundleRow(row) {
|
|
3
|
+
return {
|
|
4
|
+
bundleId: row.bundle_id,
|
|
5
|
+
packageName: row.package_name,
|
|
6
|
+
packageVersion: row.package_version,
|
|
7
|
+
bundleCode: row.bundle_code,
|
|
8
|
+
bundleVersion: row.bundle_version,
|
|
9
|
+
methodologyCode: row.methodology_code ?? undefined,
|
|
10
|
+
displayName: row.display_name ?? undefined,
|
|
11
|
+
description: row.description ?? undefined,
|
|
12
|
+
bundleManifest: JSON.parse(row.bundle_manifest_json),
|
|
13
|
+
validationResult: JSON.parse(row.validation_result_json),
|
|
14
|
+
enabled: row.is_enabled === 1,
|
|
15
|
+
installedAt: row.installed_at,
|
|
16
|
+
updatedAt: row.updated_at
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function upsertProjectBundle(db, input) {
|
|
20
|
+
const enabled = input.enabled ?? true;
|
|
21
|
+
db.prepare(`INSERT INTO agentic_project_bundles
|
|
22
|
+
(
|
|
23
|
+
package_name,
|
|
24
|
+
package_version,
|
|
25
|
+
bundle_code,
|
|
26
|
+
bundle_version,
|
|
27
|
+
methodology_code,
|
|
28
|
+
display_name,
|
|
29
|
+
description,
|
|
30
|
+
bundle_manifest_json,
|
|
31
|
+
validation_result_json,
|
|
32
|
+
is_enabled,
|
|
33
|
+
installed_at,
|
|
34
|
+
updated_at
|
|
35
|
+
)
|
|
36
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
37
|
+
ON CONFLICT(package_name, bundle_code) DO UPDATE SET
|
|
38
|
+
package_version = excluded.package_version,
|
|
39
|
+
bundle_version = excluded.bundle_version,
|
|
40
|
+
methodology_code = excluded.methodology_code,
|
|
41
|
+
display_name = excluded.display_name,
|
|
42
|
+
description = excluded.description,
|
|
43
|
+
bundle_manifest_json = excluded.bundle_manifest_json,
|
|
44
|
+
validation_result_json = excluded.validation_result_json,
|
|
45
|
+
is_enabled = excluded.is_enabled,
|
|
46
|
+
updated_at = excluded.updated_at`).run(input.packageName, input.packageVersion, input.bundleCode, input.bundleVersion, input.methodologyCode ?? null, input.displayName ?? null, input.description ?? null, JSON.stringify(input.bundleManifest), JSON.stringify(input.validationResult), enabled ? 1 : 0);
|
|
47
|
+
const row = db
|
|
48
|
+
.prepare(`SELECT bundle_id,
|
|
49
|
+
package_name,
|
|
50
|
+
package_version,
|
|
51
|
+
bundle_code,
|
|
52
|
+
bundle_version,
|
|
53
|
+
methodology_code,
|
|
54
|
+
display_name,
|
|
55
|
+
description,
|
|
56
|
+
bundle_manifest_json,
|
|
57
|
+
validation_result_json,
|
|
58
|
+
is_enabled,
|
|
59
|
+
installed_at,
|
|
60
|
+
updated_at
|
|
61
|
+
FROM agentic_project_bundles
|
|
62
|
+
WHERE package_name = ?
|
|
63
|
+
AND bundle_code = ?`)
|
|
64
|
+
.get(input.packageName, input.bundleCode);
|
|
65
|
+
return mapProjectBundleRow(row);
|
|
66
|
+
}
|
|
67
|
+
export function registerProjectBundle(input, projectRoot = process.cwd()) {
|
|
68
|
+
const db = openRuntimeDatabase(projectRoot);
|
|
69
|
+
try {
|
|
70
|
+
return upsertProjectBundle(db, input);
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
db.close();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function listProjectBundles(projectRoot = process.cwd()) {
|
|
77
|
+
const db = openRuntimeDatabase(projectRoot);
|
|
78
|
+
try {
|
|
79
|
+
const rows = db
|
|
80
|
+
.prepare(`SELECT bundle_id,
|
|
81
|
+
package_name,
|
|
82
|
+
package_version,
|
|
83
|
+
bundle_code,
|
|
84
|
+
bundle_version,
|
|
85
|
+
methodology_code,
|
|
86
|
+
display_name,
|
|
87
|
+
description,
|
|
88
|
+
bundle_manifest_json,
|
|
89
|
+
validation_result_json,
|
|
90
|
+
is_enabled,
|
|
91
|
+
installed_at,
|
|
92
|
+
updated_at
|
|
93
|
+
FROM agentic_project_bundles
|
|
94
|
+
ORDER BY package_name, bundle_code`)
|
|
95
|
+
.all();
|
|
96
|
+
return rows.map(mapProjectBundleRow);
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
db.close();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=bundle-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-registry.js","sourceRoot":"","sources":["../src/bundle-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA+CpD,SAAS,mBAAmB,CAAC,GAAqB;IAChD,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,eAAe,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;QAClD,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;QAC1C,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACzC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAY;QAC/D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAY;QACnE,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;QAC7B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB,EAAE,KAAiC;IACnF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;IAEtC,EAAE,CAAC,OAAO,CACR;;;;;;;;;;;;;;;;;;;;;;;;;wCAyBoC,CACrC,CAAC,GAAG,CACH,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACtC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChB,CAAC;IAEF,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;;;;;;;;;;;;;8BAewB,CACzB;SACA,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAqB,CAAC;IAEhE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAiC,EACjC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACpE,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN;;;;;;;;;;;;;;6CAcqC,CACtC;aACA,GAAG,EAAwB,CAAC;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ClaudeCodeAdapterInstallOptions {
|
|
2
|
+
readonly force?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface ClaudeCodeAdapterInstallResult {
|
|
5
|
+
readonly settingsPath: string;
|
|
6
|
+
readonly rulePath: string;
|
|
7
|
+
readonly filesWritten: readonly string[];
|
|
8
|
+
readonly claudeCliAvailable: boolean;
|
|
9
|
+
readonly hooksConfigured: boolean;
|
|
10
|
+
readonly messages: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
export interface ClaudeCodeAdapterStatus {
|
|
13
|
+
readonly settingsExists: boolean;
|
|
14
|
+
readonly ruleExists: boolean;
|
|
15
|
+
readonly claudeCliAvailable: boolean;
|
|
16
|
+
readonly userPromptHookConfigured: boolean;
|
|
17
|
+
readonly stopHookConfigured: boolean;
|
|
18
|
+
readonly notes: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function installClaudeCodeAdapter(projectRoot?: string, options?: ClaudeCodeAdapterInstallOptions): ClaudeCodeAdapterInstallResult;
|
|
21
|
+
export declare function getClaudeCodeAdapterStatus(projectRoot?: string): ClaudeCodeAdapterStatus;
|
|
22
|
+
export declare const claudeCodeAdapterCommands: {
|
|
23
|
+
readonly source: "claude-code";
|
|
24
|
+
readonly userPromptCommand: string;
|
|
25
|
+
readonly stopCommand: string;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=claude-code-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../src/claude-code-adapter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAwID,wBAAgB,wBAAwB,CACtC,WAAW,GAAE,MAAsB,EACnC,OAAO,GAAE,+BAAoC,GAC5C,8BAA8B,CA6ChC;AAED,wBAAgB,0BAA0B,CAAC,WAAW,GAAE,MAAsB,GAAG,uBAAuB,CA4BvG;AAED,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC"}
|