@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.
Files changed (114) hide show
  1. package/.tbls.yml +103 -0
  2. package/CHANGELOG.md +229 -0
  3. package/README.md +707 -0
  4. package/dist/agent-router.d.ts +39 -0
  5. package/dist/agent-router.d.ts.map +1 -0
  6. package/dist/agent-router.js +175 -0
  7. package/dist/agent-router.js.map +1 -0
  8. package/dist/bundle-installer.d.ts +25 -0
  9. package/dist/bundle-installer.d.ts.map +1 -0
  10. package/dist/bundle-installer.js +149 -0
  11. package/dist/bundle-installer.js.map +1 -0
  12. package/dist/bundle-registry.d.ts +30 -0
  13. package/dist/bundle-registry.d.ts.map +1 -0
  14. package/dist/bundle-registry.js +102 -0
  15. package/dist/bundle-registry.js.map +1 -0
  16. package/dist/claude-code-adapter.d.ts +27 -0
  17. package/dist/claude-code-adapter.d.ts.map +1 -0
  18. package/dist/claude-code-adapter.js +177 -0
  19. package/dist/claude-code-adapter.js.map +1 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +1731 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/codex-adapter.d.ts +23 -0
  25. package/dist/codex-adapter.d.ts.map +1 -0
  26. package/dist/codex-adapter.js +264 -0
  27. package/dist/codex-adapter.js.map +1 -0
  28. package/dist/database.d.ts +22 -0
  29. package/dist/database.d.ts.map +1 -0
  30. package/dist/database.js +184 -0
  31. package/dist/database.js.map +1 -0
  32. package/dist/execution-projects.d.ts +71 -0
  33. package/dist/execution-projects.d.ts.map +1 -0
  34. package/dist/execution-projects.js +333 -0
  35. package/dist/execution-projects.js.map +1 -0
  36. package/dist/execution-query.d.ts +73 -0
  37. package/dist/execution-query.d.ts.map +1 -0
  38. package/dist/execution-query.js +370 -0
  39. package/dist/execution-query.js.map +1 -0
  40. package/dist/execution.d.ts +47 -0
  41. package/dist/execution.d.ts.map +1 -0
  42. package/dist/execution.js +153 -0
  43. package/dist/execution.js.map +1 -0
  44. package/dist/hook-command.d.ts +3 -0
  45. package/dist/hook-command.d.ts.map +1 -0
  46. package/dist/hook-command.js +13 -0
  47. package/dist/hook-command.js.map +1 -0
  48. package/dist/hook-record.d.ts +16 -0
  49. package/dist/hook-record.d.ts.map +1 -0
  50. package/dist/hook-record.js +427 -0
  51. package/dist/hook-record.js.map +1 -0
  52. package/dist/index.d.ts +29 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +15 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/kiro-adapter.d.ts +38 -0
  57. package/dist/kiro-adapter.d.ts.map +1 -0
  58. package/dist/kiro-adapter.js +374 -0
  59. package/dist/kiro-adapter.js.map +1 -0
  60. package/dist/module-registry.d.ts +21 -0
  61. package/dist/module-registry.d.ts.map +1 -0
  62. package/dist/module-registry.js +75 -0
  63. package/dist/module-registry.js.map +1 -0
  64. package/dist/runtime-info.d.ts +8 -0
  65. package/dist/runtime-info.d.ts.map +1 -0
  66. package/dist/runtime-info.js +15 -0
  67. package/dist/runtime-info.js.map +1 -0
  68. package/dist/seed-importer.d.ts +77 -0
  69. package/dist/seed-importer.d.ts.map +1 -0
  70. package/dist/seed-importer.js +570 -0
  71. package/dist/seed-importer.js.map +1 -0
  72. package/docs/build.md +129 -0
  73. package/docs/configuration.md +61 -0
  74. package/docs/delivery.md +90 -0
  75. package/docs/operations.md +112 -0
  76. package/docs/publishing.md +196 -0
  77. package/docs/schema/generated/README.md +31 -0
  78. package/docs/schema/generated/agentic_execution_logs.md +90 -0
  79. package/docs/schema/generated/agentic_execution_logs.svg +52 -0
  80. package/docs/schema/generated/agentic_execution_outputs.md +85 -0
  81. package/docs/schema/generated/agentic_execution_outputs.svg +52 -0
  82. package/docs/schema/generated/agentic_execution_project_activities.md +83 -0
  83. package/docs/schema/generated/agentic_execution_project_activities.svg +71 -0
  84. package/docs/schema/generated/agentic_execution_project_stages.md +69 -0
  85. package/docs/schema/generated/agentic_execution_project_stages.svg +71 -0
  86. package/docs/schema/generated/agentic_execution_projects.md +82 -0
  87. package/docs/schema/generated/agentic_execution_projects.svg +92 -0
  88. package/docs/schema/generated/agentic_execution_runs.md +111 -0
  89. package/docs/schema/generated/agentic_execution_runs.svg +92 -0
  90. package/docs/schema/generated/agentic_project_bundles.md +106 -0
  91. package/docs/schema/generated/agentic_project_bundles.svg +91 -0
  92. package/docs/schema/generated/agentic_project_modules.md +77 -0
  93. package/docs/schema/generated/agentic_project_modules.svg +49 -0
  94. package/docs/schema/generated/agentic_runtime_metadata.md +62 -0
  95. package/docs/schema/generated/agentic_runtime_metadata.svg +28 -0
  96. package/docs/schema/generated/agentic_schema_migrations.md +65 -0
  97. package/docs/schema/generated/agentic_schema_migrations.svg +32 -0
  98. package/docs/schema/generated/agentic_seed_import_items.md +85 -0
  99. package/docs/schema/generated/agentic_seed_import_items.svg +47 -0
  100. package/docs/schema/generated/agentic_seed_import_runs.md +103 -0
  101. package/docs/schema/generated/agentic_seed_import_runs.svg +68 -0
  102. package/docs/schema/generated/agentic_user_requests.md +66 -0
  103. package/docs/schema/generated/agentic_user_requests.svg +52 -0
  104. package/docs/schema/generated/schema.json +1976 -0
  105. package/docs/schema/generated/schema.mmd +167 -0
  106. package/docs/schema/generated/schema.svg +266 -0
  107. package/docs/schema/migrations.md +163 -0
  108. package/docs/usage.md +774 -0
  109. package/package.json +32 -0
  110. package/src/database/migrations/0001_runtime_base.sql +231 -0
  111. package/src/database/migrations/0002_runtime_bundles.sql +61 -0
  112. package/src/database/migrations/0003_runtime_seed_imports.sql +121 -0
  113. package/src/database/migrations/0004_runtime_seed_apply_status.sql +76 -0
  114. package/src/database/migrations/0005_runtime_execution_projects.sql +92 -0
@@ -0,0 +1,570 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { createRequire } from "node:module";
3
+ import { join } from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+ import { listProjectBundles } from "./bundle-registry.js";
6
+ import { openRuntimeDatabase } from "./database.js";
7
+ import { listProjectModules } from "./module-registry.js";
8
+ const LOAD_EXPORT_CANDIDATES = [
9
+ "loadAgenticSeedBundle",
10
+ "loadSeedBundle",
11
+ "loadAiAgentSdlcBundle"
12
+ ];
13
+ const VALIDATE_EXPORT_CANDIDATES = [
14
+ "validateAgenticSeedBundle",
15
+ "validateSeedBundle",
16
+ "validateAiAgentSdlcBundle"
17
+ ];
18
+ const APPLY_EXPORT_CANDIDATES = [
19
+ "applyAgenticSeed",
20
+ "applySeedBundleItem",
21
+ "applySeed"
22
+ ];
23
+ function isRecord(value) {
24
+ return typeof value === "object" && value !== null;
25
+ }
26
+ function findFunction(module, candidates) {
27
+ for (const candidate of candidates) {
28
+ const value = module[candidate];
29
+ if (typeof value === "function") {
30
+ return value;
31
+ }
32
+ }
33
+ return undefined;
34
+ }
35
+ function createProjectRequire(projectRoot) {
36
+ return createRequire(join(projectRoot, "package.json"));
37
+ }
38
+ function packageInstalled(projectRoot, packageName) {
39
+ return existsSync(join(projectRoot, "node_modules", packageName, "package.json"));
40
+ }
41
+ function readPackageVersion(projectRoot, packageName) {
42
+ try {
43
+ const packageJsonPath = join(projectRoot, "node_modules", packageName, "package.json");
44
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
45
+ return packageJson.version;
46
+ }
47
+ catch {
48
+ return undefined;
49
+ }
50
+ }
51
+ async function importBundleProvider(packageName, projectRoot) {
52
+ const entryPath = createProjectRequire(projectRoot).resolve(packageName);
53
+ return await import(pathToFileURL(entryPath).href);
54
+ }
55
+ async function importTargetPackage(packageName, projectRoot) {
56
+ const entryPath = createProjectRequire(projectRoot).resolve(packageName);
57
+ return await import(pathToFileURL(entryPath).href);
58
+ }
59
+ function findInstalledBundle(input, projectRoot) {
60
+ const matches = listProjectBundles(projectRoot).filter((bundle) => {
61
+ return bundle.enabled &&
62
+ bundle.bundleCode === input.bundleCode &&
63
+ (input.packageName === undefined || bundle.packageName === input.packageName);
64
+ });
65
+ if (matches.length === 0) {
66
+ throw new Error(`Installed bundle was not found: ${input.bundleCode}`);
67
+ }
68
+ if (matches.length > 1) {
69
+ throw new Error(`Multiple installed bundles matched. Specify --package: ${input.bundleCode}`);
70
+ }
71
+ return matches[0];
72
+ }
73
+ function normalizeValidationResult(value) {
74
+ if (!isRecord(value)) {
75
+ return {
76
+ valid: true,
77
+ issues: []
78
+ };
79
+ }
80
+ return value;
81
+ }
82
+ function getArray(bundle, key) {
83
+ const value = bundle[key];
84
+ return Array.isArray(value) ? value : [];
85
+ }
86
+ function getObject(bundle, key) {
87
+ const value = bundle[key];
88
+ return value === undefined ? undefined : value;
89
+ }
90
+ function getObjectKey(value, key) {
91
+ if (!isRecord(value)) {
92
+ return undefined;
93
+ }
94
+ const keyValue = value[key];
95
+ return typeof keyValue === "string" ? keyValue : undefined;
96
+ }
97
+ function createDraftItems(bundleValue) {
98
+ if (!isRecord(bundleValue)) {
99
+ throw new Error("Bundle provider returned an invalid bundle object.");
100
+ }
101
+ const methodology = getObject(bundleValue, "methodology");
102
+ const lifecycle = getObject(bundleValue, "lifecycle");
103
+ const sampleExecution = getObject(bundleValue, "sampleExecution");
104
+ const items = [];
105
+ if (methodology !== undefined) {
106
+ items.push({
107
+ sourceSection: "methodology",
108
+ targetPackage: "@soddong/agentic-domain-methodology",
109
+ targetDomain: "methodology",
110
+ targetOperation: "upsert_methodology",
111
+ itemKey: getObjectKey(methodology, "methodologyCode"),
112
+ itemCount: 1,
113
+ itemPayload: methodology
114
+ });
115
+ }
116
+ if (lifecycle !== undefined) {
117
+ items.push({
118
+ sourceSection: "lifecycle",
119
+ targetPackage: "@soddong/agentic-domain-methodology",
120
+ targetDomain: "methodology",
121
+ targetOperation: "upsert_lifecycle",
122
+ itemKey: getObjectKey(lifecycle, "lifecycleCode"),
123
+ itemCount: 1,
124
+ itemPayload: lifecycle
125
+ });
126
+ }
127
+ const methodologySections = [
128
+ ["phases", "upsert_phases"],
129
+ ["processes", "upsert_processes"],
130
+ ["stages", "upsert_stages"],
131
+ ["activities", "upsert_activities"],
132
+ ["activityArtifactRequirements", "upsert_activity_artifact_requirements"],
133
+ ["criteria", "upsert_criteria"],
134
+ ["handoffs", "upsert_handoffs"]
135
+ ];
136
+ for (const [sourceSection, targetOperation] of methodologySections) {
137
+ const payload = getArray(bundleValue, sourceSection);
138
+ if (payload.length > 0) {
139
+ items.push({
140
+ sourceSection,
141
+ targetPackage: "@soddong/agentic-domain-methodology",
142
+ targetDomain: "methodology",
143
+ targetOperation,
144
+ itemCount: payload.length,
145
+ itemPayload: payload
146
+ });
147
+ }
148
+ }
149
+ const generatedOutputLinks = getArray(bundleValue, "generatedOutputLinks");
150
+ if (generatedOutputLinks.length > 0) {
151
+ items.push({
152
+ sourceSection: "generatedOutputLinks",
153
+ targetPackage: "@soddong/agentic-domain-artifact-standard",
154
+ targetDomain: "artifact-standard",
155
+ targetOperation: "upsert_generated_output_links",
156
+ itemCount: generatedOutputLinks.length,
157
+ itemPayload: generatedOutputLinks
158
+ });
159
+ }
160
+ const validationProfiles = getArray(bundleValue, "validationProfiles");
161
+ if (validationProfiles.length > 0) {
162
+ items.push({
163
+ sourceSection: "validationProfiles",
164
+ targetPackage: "@soddong/agentic-contract-validation",
165
+ targetDomain: "validation",
166
+ targetOperation: "register_validation_profiles",
167
+ itemCount: validationProfiles.length,
168
+ itemPayload: validationProfiles
169
+ });
170
+ }
171
+ if (sampleExecution !== undefined) {
172
+ items.push({
173
+ sourceSection: "sampleExecution",
174
+ targetPackage: "@soddong/agentic-domain-artifact",
175
+ targetDomain: "artifact",
176
+ targetOperation: "prepare_sample_execution",
177
+ itemKey: getObjectKey(sampleExecution, "sampleCode"),
178
+ itemCount: 1,
179
+ itemPayload: sampleExecution
180
+ });
181
+ }
182
+ return items;
183
+ }
184
+ function packageReady(projectRoot, packageName) {
185
+ const installed = packageInstalled(projectRoot, packageName);
186
+ const registered = listProjectModules(projectRoot).some((module) => {
187
+ return module.enabled && module.packageName === packageName;
188
+ });
189
+ if (installed && registered) {
190
+ return {
191
+ ready: true
192
+ };
193
+ }
194
+ const missing = [
195
+ installed ? undefined : "installed package",
196
+ registered ? undefined : "registered module"
197
+ ].filter((value) => value !== undefined);
198
+ return {
199
+ ready: false,
200
+ reasonCode: "TARGET_PACKAGE_NOT_READY",
201
+ reasonMessage: `${packageName} is missing ${missing.join(" and ")}.`
202
+ };
203
+ }
204
+ function summarizeItems(items) {
205
+ return {
206
+ totalItems: items.length,
207
+ plannedItems: items.filter((item) => item.itemStatus === "planned").length,
208
+ blockedItems: items.filter((item) => item.itemStatus === "blocked").length,
209
+ warningItems: items.filter((item) => item.itemStatus === "warning").length,
210
+ skippedItems: items.filter((item) => item.itemStatus === "skipped").length,
211
+ appliedItems: items.filter((item) => item.itemStatus === "applied").length,
212
+ failedItems: items.filter((item) => item.itemStatus === "failed").length
213
+ };
214
+ }
215
+ function parseSeedImportSummary(value) {
216
+ const parsed = JSON.parse(value);
217
+ return {
218
+ totalItems: parsed.totalItems ?? 0,
219
+ plannedItems: parsed.plannedItems ?? 0,
220
+ blockedItems: parsed.blockedItems ?? 0,
221
+ warningItems: parsed.warningItems ?? 0,
222
+ skippedItems: parsed.skippedItems ?? 0,
223
+ appliedItems: parsed.appliedItems ?? 0,
224
+ failedItems: parsed.failedItems ?? 0
225
+ };
226
+ }
227
+ function mapRunRow(row) {
228
+ return {
229
+ seedImportRunId: row.seed_import_run_id,
230
+ bundleId: row.bundle_id,
231
+ packageName: row.package_name,
232
+ packageVersion: row.package_version,
233
+ bundleCode: row.bundle_code,
234
+ bundleVersion: row.bundle_version,
235
+ methodologyCode: row.methodology_code ?? undefined,
236
+ importMode: row.import_mode,
237
+ importStatus: row.import_status,
238
+ summary: parseSeedImportSummary(row.summary_json),
239
+ validationResult: JSON.parse(row.validation_result_json),
240
+ createdAt: row.created_at,
241
+ updatedAt: row.updated_at
242
+ };
243
+ }
244
+ function normalizeApplyResult(value) {
245
+ if (!isRecord(value)) {
246
+ return {
247
+ status: "applied"
248
+ };
249
+ }
250
+ const status = value.status;
251
+ if (status !== "applied" && status !== "skipped" && status !== "blocked" && status !== "failed") {
252
+ return {
253
+ status: "failed",
254
+ message: "Target package returned an invalid seed apply status.",
255
+ diagnostics: [value]
256
+ };
257
+ }
258
+ const targetRefs = Array.isArray(value.targetRefs)
259
+ ? value.targetRefs.filter((item) => typeof item === "string")
260
+ : undefined;
261
+ const diagnostics = Array.isArray(value.diagnostics) ? value.diagnostics : undefined;
262
+ return {
263
+ status,
264
+ targetRefs,
265
+ message: typeof value.message === "string" ? value.message : undefined,
266
+ diagnostics
267
+ };
268
+ }
269
+ function findSeedImportRunIdForApply(db, input) {
270
+ if (input.seedImportRunId !== undefined) {
271
+ return input.seedImportRunId;
272
+ }
273
+ if (input.bundleCode === undefined) {
274
+ throw new Error("Specify --run <seedImportRunId> or --bundle <bundle-code>.");
275
+ }
276
+ const row = db
277
+ .prepare(`SELECT seed_import_run_id
278
+ FROM agentic_seed_import_runs
279
+ WHERE bundle_code = ?
280
+ AND (? IS NULL OR package_name = ?)
281
+ ORDER BY seed_import_run_id DESC
282
+ LIMIT 1`)
283
+ .get(input.bundleCode, input.packageName ?? null, input.packageName ?? null);
284
+ if (row === undefined) {
285
+ throw new Error(`Seed import plan was not found for bundle: ${input.bundleCode}`);
286
+ }
287
+ return row.seed_import_run_id;
288
+ }
289
+ function updateSeedImportItem(db, itemId, status, reasonCode, reasonMessage) {
290
+ db.prepare(`UPDATE agentic_seed_import_items
291
+ SET item_status = ?,
292
+ reason_code = ?,
293
+ reason_message = ?
294
+ WHERE seed_import_item_id = ?`).run(status, reasonCode ?? null, reasonMessage ?? null, itemId);
295
+ }
296
+ function finalizeSeedImportRun(db, runId) {
297
+ const itemRows = db
298
+ .prepare(`SELECT item_status
299
+ FROM agentic_seed_import_items
300
+ WHERE seed_import_run_id = ?
301
+ ORDER BY item_order`)
302
+ .all(runId);
303
+ const items = itemRows.map((row) => ({
304
+ itemStatus: row.item_status
305
+ }));
306
+ const summary = summarizeItems(items);
307
+ const importStatus = summary.failedItems > 0
308
+ ? "failed"
309
+ : summary.blockedItems > 0
310
+ ? "blocked"
311
+ : "applied";
312
+ db.prepare(`UPDATE agentic_seed_import_runs
313
+ SET import_mode = 'apply',
314
+ import_status = ?,
315
+ summary_json = ?,
316
+ updated_at = CURRENT_TIMESTAMP
317
+ WHERE seed_import_run_id = ?`).run(importStatus, JSON.stringify(summary), runId);
318
+ }
319
+ function mapItemRow(row) {
320
+ return {
321
+ seedImportItemId: row.seed_import_item_id,
322
+ seedImportRunId: row.seed_import_run_id,
323
+ itemOrder: row.item_order,
324
+ sourceSection: row.source_section,
325
+ targetPackage: row.target_package,
326
+ targetDomain: row.target_domain ?? undefined,
327
+ targetOperation: row.target_operation,
328
+ itemKey: row.item_key ?? undefined,
329
+ itemCount: row.item_count,
330
+ itemStatus: row.item_status,
331
+ reasonCode: row.reason_code ?? undefined,
332
+ reasonMessage: row.reason_message ?? undefined,
333
+ itemPayload: row.item_payload_json === null ? undefined : JSON.parse(row.item_payload_json),
334
+ createdAt: row.created_at
335
+ };
336
+ }
337
+ function readSeedImportPlan(db, runId) {
338
+ const runRow = db
339
+ .prepare(`SELECT seed_import_run_id,
340
+ bundle_id,
341
+ package_name,
342
+ package_version,
343
+ bundle_code,
344
+ bundle_version,
345
+ methodology_code,
346
+ import_mode,
347
+ import_status,
348
+ summary_json,
349
+ validation_result_json,
350
+ created_at,
351
+ updated_at
352
+ FROM agentic_seed_import_runs
353
+ WHERE seed_import_run_id = ?`)
354
+ .get(runId);
355
+ const itemRows = db
356
+ .prepare(`SELECT seed_import_item_id,
357
+ seed_import_run_id,
358
+ item_order,
359
+ source_section,
360
+ target_package,
361
+ target_domain,
362
+ target_operation,
363
+ item_key,
364
+ item_count,
365
+ item_status,
366
+ reason_code,
367
+ reason_message,
368
+ item_payload_json,
369
+ created_at
370
+ FROM agentic_seed_import_items
371
+ WHERE seed_import_run_id = ?
372
+ ORDER BY item_order`)
373
+ .all(runId);
374
+ return {
375
+ run: mapRunRow(runRow),
376
+ items: itemRows.map(mapItemRow)
377
+ };
378
+ }
379
+ function updateSeedImportItemAndFinalize(projectRoot, runId, itemId, status, reasonCode, reasonMessage) {
380
+ const db = openRuntimeDatabase(projectRoot);
381
+ try {
382
+ updateSeedImportItem(db, itemId, status, reasonCode, reasonMessage);
383
+ finalizeSeedImportRun(db, runId);
384
+ return readSeedImportPlan(db, runId);
385
+ }
386
+ finally {
387
+ db.close();
388
+ }
389
+ }
390
+ function updateSeedImportItemStatus(projectRoot, itemId, status, reasonCode, reasonMessage) {
391
+ const db = openRuntimeDatabase(projectRoot);
392
+ try {
393
+ updateSeedImportItem(db, itemId, status, reasonCode, reasonMessage);
394
+ }
395
+ finally {
396
+ db.close();
397
+ }
398
+ }
399
+ function finalizeSeedImportRunById(projectRoot, runId) {
400
+ const db = openRuntimeDatabase(projectRoot);
401
+ try {
402
+ finalizeSeedImportRun(db, runId);
403
+ return readSeedImportPlan(db, runId);
404
+ }
405
+ finally {
406
+ db.close();
407
+ }
408
+ }
409
+ export async function createSeedImportPlan(input, projectRoot = process.cwd()) {
410
+ const installedBundle = findInstalledBundle(input, projectRoot);
411
+ const provider = await importBundleProvider(installedBundle.packageName, projectRoot);
412
+ const loadBundle = findFunction(provider, LOAD_EXPORT_CANDIDATES);
413
+ const validateBundle = findFunction(provider, VALIDATE_EXPORT_CANDIDATES);
414
+ if (loadBundle === undefined) {
415
+ throw new Error(`Package does not provide a supported seed bundle loader: ${installedBundle.packageName}`);
416
+ }
417
+ const bundleValue = await loadBundle(installedBundle.bundleCode);
418
+ const validation = validateBundle === undefined
419
+ ? {
420
+ valid: true,
421
+ issues: []
422
+ }
423
+ : normalizeValidationResult(await validateBundle(bundleValue));
424
+ const draftItems = createDraftItems(bundleValue);
425
+ const plannedItems = draftItems.map((item, index) => {
426
+ const ready = packageReady(projectRoot, item.targetPackage);
427
+ return {
428
+ ...item,
429
+ itemOrder: index,
430
+ itemStatus: ready.ready ? "planned" : "blocked",
431
+ reasonCode: ready.reasonCode,
432
+ reasonMessage: ready.reasonMessage
433
+ };
434
+ });
435
+ const summary = summarizeItems(plannedItems);
436
+ const importStatus = validation.valid === false
437
+ ? "failed"
438
+ : summary.blockedItems > 0
439
+ ? "blocked"
440
+ : "planned";
441
+ const packageVersion = readPackageVersion(projectRoot, installedBundle.packageName) ?? installedBundle.packageVersion;
442
+ const db = openRuntimeDatabase(projectRoot);
443
+ try {
444
+ const transaction = db.transaction(() => {
445
+ const runResult = db.prepare(`INSERT INTO agentic_seed_import_runs
446
+ (
447
+ bundle_id,
448
+ package_name,
449
+ package_version,
450
+ bundle_code,
451
+ bundle_version,
452
+ methodology_code,
453
+ import_mode,
454
+ import_status,
455
+ summary_json,
456
+ validation_result_json,
457
+ created_at,
458
+ updated_at
459
+ )
460
+ VALUES (?, ?, ?, ?, ?, ?, 'dry_run', ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)`).run(installedBundle.bundleId, installedBundle.packageName, packageVersion, installedBundle.bundleCode, installedBundle.bundleVersion, installedBundle.methodologyCode ?? null, importStatus, JSON.stringify(summary), JSON.stringify(validation));
461
+ const seedImportRunId = Number(runResult.lastInsertRowid);
462
+ const insertItem = db.prepare(`INSERT INTO agentic_seed_import_items
463
+ (
464
+ seed_import_run_id,
465
+ item_order,
466
+ source_section,
467
+ target_package,
468
+ target_domain,
469
+ target_operation,
470
+ item_key,
471
+ item_count,
472
+ item_status,
473
+ reason_code,
474
+ reason_message,
475
+ item_payload_json,
476
+ created_at
477
+ )
478
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)`);
479
+ for (const item of plannedItems) {
480
+ insertItem.run(seedImportRunId, item.itemOrder, item.sourceSection, item.targetPackage, item.targetDomain ?? null, item.targetOperation, item.itemKey ?? null, item.itemCount, item.itemStatus, item.reasonCode ?? null, item.reasonMessage ?? null, item.itemPayload === undefined ? null : JSON.stringify(item.itemPayload));
481
+ }
482
+ return seedImportRunId;
483
+ });
484
+ const runId = transaction();
485
+ return readSeedImportPlan(db, runId);
486
+ }
487
+ finally {
488
+ db.close();
489
+ }
490
+ }
491
+ export function listSeedImportPlans(projectRoot = process.cwd()) {
492
+ const db = openRuntimeDatabase(projectRoot);
493
+ try {
494
+ const rows = db
495
+ .prepare(`SELECT seed_import_run_id
496
+ FROM agentic_seed_import_runs
497
+ ORDER BY seed_import_run_id DESC`)
498
+ .all();
499
+ return rows.map((row) => readSeedImportPlan(db, row.seed_import_run_id));
500
+ }
501
+ finally {
502
+ db.close();
503
+ }
504
+ }
505
+ export async function applySeedImportPlan(input, projectRoot = process.cwd()) {
506
+ let runId;
507
+ let plan;
508
+ {
509
+ const db = openRuntimeDatabase(projectRoot);
510
+ try {
511
+ runId = findSeedImportRunIdForApply(db, input);
512
+ plan = readSeedImportPlan(db, runId);
513
+ }
514
+ finally {
515
+ db.close();
516
+ }
517
+ }
518
+ if (plan.run.importStatus === "failed" && !isValidationValid(plan.run.validationResult)) {
519
+ throw new Error(`Seed import plan validation failed: #${runId}`);
520
+ }
521
+ for (const item of plan.items) {
522
+ if (item.itemStatus === "applied" || item.itemStatus === "skipped") {
523
+ continue;
524
+ }
525
+ const ready = packageReady(projectRoot, item.targetPackage);
526
+ if (!ready.ready) {
527
+ return updateSeedImportItemAndFinalize(projectRoot, runId, item.seedImportItemId, "blocked", ready.reasonCode, ready.reasonMessage);
528
+ }
529
+ let targetPackage;
530
+ try {
531
+ targetPackage = await importTargetPackage(item.targetPackage, projectRoot);
532
+ }
533
+ catch (error) {
534
+ const message = error instanceof Error ? error.message : String(error);
535
+ return updateSeedImportItemAndFinalize(projectRoot, runId, item.seedImportItemId, "blocked", "TARGET_PACKAGE_IMPORT_FAILED", message);
536
+ }
537
+ const applyHandler = findFunction(targetPackage, APPLY_EXPORT_CANDIDATES);
538
+ if (applyHandler === undefined) {
539
+ return updateSeedImportItemAndFinalize(projectRoot, runId, item.seedImportItemId, "blocked", "APPLY_HANDLER_NOT_FOUND", `${item.targetPackage} does not export applyAgenticSeed.`);
540
+ }
541
+ try {
542
+ const result = normalizeApplyResult(await applyHandler({
543
+ sourcePackageName: plan.run.packageName,
544
+ sourcePackageVersion: plan.run.packageVersion,
545
+ bundleCode: plan.run.bundleCode,
546
+ bundleVersion: plan.run.bundleVersion,
547
+ methodologyCode: plan.run.methodologyCode,
548
+ sourceSection: item.sourceSection,
549
+ targetOperation: item.targetOperation,
550
+ itemKey: item.itemKey,
551
+ itemPayload: item.itemPayload,
552
+ mode: "apply"
553
+ }));
554
+ const reasonCode = result.status === "applied" ? undefined : `APPLY_${result.status.toUpperCase()}`;
555
+ updateSeedImportItemStatus(projectRoot, item.seedImportItemId, result.status, reasonCode, result.message);
556
+ }
557
+ catch (error) {
558
+ const message = error instanceof Error ? error.message : String(error);
559
+ return updateSeedImportItemAndFinalize(projectRoot, runId, item.seedImportItemId, "failed", "APPLY_HANDLER_ERROR", message);
560
+ }
561
+ }
562
+ return finalizeSeedImportRunById(projectRoot, runId);
563
+ }
564
+ function isValidationValid(value) {
565
+ return (typeof value !== "object" ||
566
+ value === null ||
567
+ !("valid" in value) ||
568
+ value.valid !== false);
569
+ }
570
+ //# sourceMappingURL=seed-importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-importer.js","sourceRoot":"","sources":["../src/seed-importer.ts"],"names":[],"mappings":"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"}