@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
package/README.md ADDED
@@ -0,0 +1,707 @@
1
+ # @soddong/agentic-runtime
2
+
3
+ `@soddong/agentic-runtime`은 Agentic Platform의 로컬 실행 기반(runtime) 및 CLI 패키지입니다.
4
+
5
+ 이 패키지는 `agentic` 명령을 제공하며, 설치된 domain, capability, application 패키지를 로컬 실행 프로젝트에서 조립하고 실행하기 위한 기반 역할을 합니다.
6
+
7
+ ## 사용자 관점 요약
8
+
9
+ | 항목 | 내용 |
10
+ | --- | --- |
11
+ | package | `@soddong/agentic-runtime` |
12
+ | CLI | `agentic` |
13
+ | 현재 지원 명령 | `agentic help`, `agentic version`, `agentic init`, `agentic setup`, `agentic docs`, `agentic config`, `agentic run`, `agentic execution list/latest/show/summary`, `agentic hook record`, `agentic db init/status`, `agentic adapter install/status`, `agentic module register/list`, `agentic bundle install/apply/list/status`, `agentic seed import/apply/status`, `agentic project create/status`, `agentic agent register/context` |
14
+ | 예정 명령 | `agentic validate`, `agentic render` |
15
+
16
+ ## Agent 실행 API
17
+
18
+ Agent module은 `AgentRuntimeClient` 형태로 `run()`을 제공하고, 실행 프로젝트 또는 router는 `runAgentRuntimeClient()`로 실행합니다.
19
+
20
+ 이 방식에서 Agent는 실제 업무 로직만 담당하고, `@soddong/agentic-runtime`은 실행 이력, 사용자 지시, 로그, 결과 저장을 표준화합니다.
21
+
22
+ ```ts
23
+ import { runAgentRuntimeClient } from "@soddong/agentic-runtime";
24
+
25
+ const agent = {
26
+ manifest: {
27
+ agentId: "sample-agent",
28
+ packageName: "sample-agent-package",
29
+ packageVersion: "0.1.0",
30
+ moduleLayer: "application",
31
+ capabilities: [
32
+ {
33
+ capabilityId: "sample.review",
34
+ description: "요구사항을 검토합니다.",
35
+ keywords: ["요구사항", "검토"]
36
+ }
37
+ ]
38
+ },
39
+ run(input, context) {
40
+ context.logger.info("Agent request received", {
41
+ requestText: input.requestText
42
+ });
43
+
44
+ return {
45
+ outputType: "json",
46
+ contentJson: {
47
+ ok: true,
48
+ requestText: input.requestText
49
+ }
50
+ };
51
+ }
52
+ };
53
+
54
+ const result = await runAgentRuntimeClient(agent, {
55
+ requestText: "요구사항을 검토해 주세요."
56
+ });
57
+
58
+ console.log(result.runId);
59
+ ```
60
+
61
+ ## Agent Routing API
62
+
63
+ `@soddong/agentic-runtime`은 concrete domain package를 직접 의존하지 않습니다. 각 agent package가 `@soddong/agentic-capability-agent-client`의 manifest contract를 제공하면, runtime은 등록된 manifest를 기준으로 route decision을 수행합니다.
64
+
65
+ ```ts
66
+ import {
67
+ registerAgentManifest,
68
+ routeRegisteredAgents
69
+ } from "@soddong/agentic-runtime";
70
+ import { createAgentManifest } from "@soddong/agentic-capability-agent-client";
71
+
72
+ const manifest = createAgentManifest({
73
+ agentId: "document-agent",
74
+ packageName: "@soddong/agentic-domain-document",
75
+ packageVersion: "0.1.0",
76
+ moduleLayer: "application",
77
+ capabilities: [
78
+ {
79
+ capabilityId: "document.create",
80
+ description: "문서 초안을 생성합니다.",
81
+ keywords: ["문서", "초안", "작성"]
82
+ }
83
+ ]
84
+ });
85
+
86
+ registerAgentManifest(manifest);
87
+
88
+ const decision = routeRegisteredAgents({
89
+ requestText: "요구사항 정의서 초안을 작성해줘"
90
+ });
91
+
92
+ console.log(decision.selectedAgentId);
93
+ ```
94
+
95
+ domain package가 agent resource index까지 함께 제공하는 경우에는 contribution을 등록합니다.
96
+
97
+ ```ts
98
+ import {
99
+ assembleRegisteredAgentContext,
100
+ registerAgentContribution,
101
+ routeRegisteredAgents,
102
+ selectRegisteredAgentResources
103
+ } from "@soddong/agentic-runtime";
104
+ import { documentAgentContribution } from "@soddong/agentic-domain-document";
105
+
106
+ registerAgentContribution(documentAgentContribution);
107
+
108
+ const decision = routeRegisteredAgents({
109
+ requestText: "문서 목차와 본문 초안을 작성해줘"
110
+ });
111
+
112
+ console.log(decision.selectedContribution?.resourceIndex?.title);
113
+
114
+ const bundle = selectRegisteredAgentResources({
115
+ requestText: "문서 표 컬럼 헤더를 설계해줘"
116
+ });
117
+
118
+ console.log(bundle?.bundleType);
119
+ console.log(bundle?.resourceIds);
120
+
121
+ const context = assembleRegisteredAgentContext(
122
+ {
123
+ requestText: "문서 표 컬럼 헤더를 설계해줘"
124
+ },
125
+ {
126
+ packageRoots: {
127
+ "@soddong/agentic-domain-document": "/path/to/node_modules/agentic-domain-document"
128
+ }
129
+ }
130
+ );
131
+
132
+ console.log(context?.contentText);
133
+ ```
134
+
135
+ 1차 routing은 keyword/example 기반 rule scoring입니다. LLM router와 embedding router는 후속 확장 대상입니다.
136
+
137
+ Agent resource selection도 1차에서는 선택된 contribution의 keyword rule을 실행하는 방식입니다. Runtime은 각 domain package의 파일 의미를 하드코딩하지 않고, 선택된 agent contribution의 `resource-selection.json` 계약만 실행합니다.
138
+
139
+ Agent context assembly는 선택된 resource file을 실제 Markdown context로 조립한다. Runtime은 package 설치 경로를 임의로 추정하지 않으므로 `packageRoots`를 호출자가 제공해야 한다.
140
+
141
+ Consumer 프로젝트에서 CLI로 agent contribution을 등록하고 context를 조립하려면 다음 명령을 사용합니다.
142
+
143
+ ```bash
144
+ npx agentic agent register @soddong/agentic-domain-document
145
+ npx agentic agent context "표 컬럼 헤더를 설계하고 3열은 설명으로 해줘"
146
+ npx agentic agent context "표 컬럼 헤더를 설계하고 3열은 설명으로 해줘" --format json
147
+ ```
148
+
149
+ CLI는 consumer 프로젝트의 `node_modules`에서 package root를 찾고, 등록된 module registry를 기준으로 context 조립에 필요한 package root를 연결합니다. 따라서 코드 API처럼 `packageRoots`를 직접 넘기지 않아도 됩니다.
150
+
151
+ 저장되는 주요 정보:
152
+
153
+ | 구분 | 테이블 | 내용 |
154
+ | --- | --- | --- |
155
+ | 사용자 지시 | `agentic_user_requests` | 지시 원문, 유입 경로, context snapshot |
156
+ | 실행 단위 | `agentic_execution_runs` | 실행 package, agent/command 식별자, 상태, 소요 시간 |
157
+ | 실행 로그 | `agentic_execution_logs` | Agent가 남긴 단계별 로그와 구조화 payload |
158
+ | 실행 결과 | `agentic_execution_outputs` | text/json/file/artifact 결과 |
159
+
160
+ ## 설치
161
+
162
+ 기본 registry는 공식 npm registry입니다.
163
+
164
+ ```bash
165
+ npm install @soddong/agentic-runtime@0.16.0
166
+ ```
167
+
168
+ 사용자 `~/.npmrc`에 별도 registry가 남아 있으면 공식 registry를 명시하거나 user config를 정리합니다.
169
+
170
+ ```bash
171
+ npm config set registry https://registry.npmjs.org/ --location=user
172
+ npm install @soddong/agentic-runtime@0.16.0 --registry=https://registry.npmjs.org/
173
+ ```
174
+
175
+ publish 권한이 필요한 사용자는 `~/.npmrc`에 npm token을 설정합니다. token 실값은 문서, source, CI log에 기록하지 않습니다.
176
+
177
+ ```text
178
+ //registry.npmjs.org/:_authToken=${NPM_TOKEN}
179
+ ```
180
+
181
+ ## 실행 확인
182
+
183
+ ```bash
184
+ npx agentic --version
185
+ npx agentic --help
186
+ ```
187
+
188
+ 기대 결과:
189
+
190
+ ```text
191
+ @soddong/agentic-runtime 0.16.0
192
+ ```
193
+
194
+ ## 프로젝트 초기화
195
+
196
+ 사용자 프로젝트에서 다음 명령을 실행하면 기본 설정 파일과 로컬 작업 디렉터리를 생성합니다.
197
+
198
+ ```bash
199
+ npx agentic init
200
+ ```
201
+
202
+ 생성 구조:
203
+
204
+ ```text
205
+ consumer-project/
206
+ agentic.config.json
207
+ .agentic/
208
+ AGENTS.md
209
+ README.md
210
+ bin/
211
+ agentic-hook.mjs
212
+ data/
213
+ logs/
214
+ modules/
215
+ ```
216
+
217
+ 설치된 패키지 문서 위치와 현재 프로젝트 설정 상태는 다음 명령으로 확인합니다.
218
+
219
+ ```bash
220
+ npx agentic docs
221
+ npx agentic config
222
+ ```
223
+
224
+ Codex, Kiro, Claude Code adapter까지 함께 준비하려면 통합 setup 명령을 사용합니다.
225
+
226
+ ```bash
227
+ npx agentic setup --adapter codex
228
+ npx agentic setup --adapter kiro
229
+ npx agentic setup --adapter claude-code
230
+ ```
231
+
232
+ `adapter install`을 먼저 실행해도 됩니다. 프로젝트가 아직 초기화되지 않았으면 `adapter install`이 내부에서 `init`과 `db init`을 먼저 수행한 뒤 adapter 설치까지 진행합니다.
233
+
234
+ ```bash
235
+ npx agentic adapter install kiro
236
+ ```
237
+
238
+ `.agentic/AGENTS.md`는 @soddong/agentic-runtime managed block으로 관리됩니다. `init`, `setup`, `adapter install` 실행 시 managed block의 runtime version을 확인하고, 기존 block version이 현재 runtime보다 낮으면 사용자 작성 영역은 유지한 채 managed block만 갱신합니다.
239
+
240
+ ```md
241
+ <!-- agentic-runtime:start version=0.16.0 -->
242
+ ...
243
+ <!-- agentic-runtime:end -->
244
+ ```
245
+
246
+ 사용자가 직접 작성한 지침은 managed block 밖에 둡니다.
247
+
248
+ Agent hook은 성능을 위해 `npx`를 매번 호출하지 않고 project-local wrapper를 사용합니다.
249
+
250
+ ```bash
251
+ node .agentic/bin/agentic-hook.mjs --source kiro --event PromptSubmit
252
+ ```
253
+
254
+ 파일만 생성하고 Codex CLI marketplace/plugin add는 건너뛰려면 다음을 사용합니다.
255
+
256
+ ```bash
257
+ npx agentic setup --adapter codex --prepare-only
258
+ ```
259
+
260
+ ## Runtime Execution 기록
261
+
262
+ 사용자 지시를 runtime execution으로 기록합니다.
263
+
264
+ ```bash
265
+ npx agentic run "요구사항을 검토해 주세요."
266
+ ```
267
+
268
+ 현재 `agentic run`은 router 또는 개별 Agent module 실행 전 단계의 공통 기록 기능입니다.
269
+
270
+ 저장되는 위치:
271
+
272
+ | 정보 | 테이블 |
273
+ | --- | --- |
274
+ | 사용자 지시 | `agentic_user_requests` |
275
+ | 실행 단위 | `agentic_execution_runs` |
276
+ | 실행 로그 | `agentic_execution_logs` |
277
+ | 실행 결과 | `agentic_execution_outputs` |
278
+
279
+ `agentic init`은 `.agentic/AGENTS.md` 템플릿을 생성합니다. consumer 프로젝트의 루트 `AGENTS.md`에는 이 내용을 반영해, Agentic Platform 관련 지시가 먼저 `npx agentic run "<사용자 지시문>"`으로 기록되도록 운영 정책을 둡니다.
280
+
281
+ ## Runtime Execution 이력 조회
282
+
283
+ 저장된 사용자 지시, 실행 상태, 로그, 결과는 다음 명령으로 조회합니다.
284
+
285
+ ```bash
286
+ npx agentic execution list --range today
287
+ npx agentic execution latest
288
+ npx agentic execution show <run-id>
289
+ npx agentic execution summary --range 7d
290
+ ```
291
+
292
+ Agent나 자동화 도구가 사용하기 쉬운 JSON 출력도 지원합니다.
293
+
294
+ ```bash
295
+ npx agentic execution list --range 7d --format json
296
+ npx agentic execution summary --range today --format json
297
+ npx agentic execution latest --range today --status succeeded --format json
298
+ ```
299
+
300
+ 이전 지시, 이전 결과, 마지막 완료 작업을 묻는 경우에는 현재 실행 중인 자기 run을 피하기 위해 `--status succeeded`를 우선 사용합니다.
301
+
302
+ 현재 실행 중인 작업을 묻는 경우에는 `--status running`, 실패 이력을 묻는 경우에는 `--status failed`를 사용합니다.
303
+
304
+ 주요 조회 옵션:
305
+
306
+ ```text
307
+ --range 1h|6h|24h|today|yesterday|7d|30d|this-week|last-week|this-month|last-month
308
+ --from YYYY-MM-DD
309
+ --to YYYY-MM-DD
310
+ --source codex|kiro|claude-code
311
+ --status succeeded
312
+ --limit 20
313
+ --format text|json
314
+ ```
315
+
316
+ Execution timestamp는 UTC 기준으로 저장합니다. SQLite `CURRENT_TIMESTAMP`로 저장된 timezone 없는 `DATETIME` 문자열도 UTC로 해석합니다.
317
+
318
+ 조회 range는 rolling range와 calendar range를 구분합니다.
319
+
320
+ | range | 기준 |
321
+ | --- | --- |
322
+ | `1h`, `6h`, `24h` | 현재 시각 기준 rolling range |
323
+ | `7d`, `30d` | 현재 시각 기준 rolling range |
324
+ | `today`, `yesterday` | KST calendar day |
325
+ | `this-week`, `last-week` | KST calendar week, 월요일 시작 |
326
+ | `this-month`, `last-month` | KST calendar month |
327
+
328
+ 예를 들어 `today`가 `2026-06-26 KST`이면 SQL 비교 boundary는 `2026-06-25 15:00:00 UTC`부터 `2026-06-26 15:00:00 UTC`까지입니다.
329
+
330
+ ## Codex Adapter
331
+
332
+ Codex adapter는 Codex `UserPromptSubmit`, `Stop` hook을 통해 사용자 지시와 turn 결과를 `@soddong/agentic-runtime` execution DB에 기록합니다.
333
+
334
+ Codex adapter는 전역 Codex plugin bridge를 사용합니다. 표준 selector는 `agentic-runtime-codex@agentic-runtime`이며, 실제 기록은 현재 작업 디렉터리에 `agentic.config.json`과 `.agentic/bin/agentic-hook.mjs`가 있는 프로젝트에서만 수행합니다.
335
+
336
+ 설치:
337
+
338
+ ```bash
339
+ npx agentic adapter install codex
340
+ ```
341
+
342
+ 상태 확인:
343
+
344
+ ```bash
345
+ npx agentic adapter status codex
346
+ ```
347
+
348
+ 이미 설치된 Codex adapter 파일을 현재 `@soddong/agentic-runtime` 버전 기준으로 갱신하려면 `--force`를 사용합니다.
349
+
350
+ ```bash
351
+ npx agentic adapter install codex --force
352
+ codex plugin list
353
+ ```
354
+
355
+ 생성 구조:
356
+
357
+ ```text
358
+ consumer-project/
359
+ plugins/
360
+ agentic-runtime-codex/
361
+ .codex-plugin/
362
+ plugin.json
363
+ hooks/
364
+ hooks.json
365
+ skills/
366
+ agentic-runtime-usage/
367
+ SKILL.md
368
+ .agents/
369
+ plugins/
370
+ marketplace.json
371
+ ```
372
+
373
+ Codex가 hook 신뢰 승인을 요구하면 사용자가 내용을 확인하고 승인해야 합니다.
374
+
375
+ Codex hook command는 프로젝트 로컬 wrapper인 `.agentic/bin/agentic-hook.mjs`가 있을 때만 기록을 수행합니다. wrapper가 없는 프로젝트에서는 성공 상태로 no-op 처리하므로, Codex plugin 등록이 남아 있어도 @soddong/agentic-runtime 미초기화 프로젝트의 turn이 hook 실패로 중단되지 않습니다.
376
+
377
+ 같은 `agentic-runtime-codex` plugin을 여러 marketplace에서 동시에 활성화하지 않습니다. 중복 등록이 있으면 hook이 중복 실행될 수 있으므로 `agentic-runtime-codex@agentic-runtime` 하나만 전역 bridge로 유지합니다.
378
+
379
+ ## Kiro Adapter
380
+
381
+ Kiro adapter는 Kiro CLI/IDE에서 사용자 지시와 Agent turn 종료를 `@soddong/agentic-runtime` execution DB에 기록하기 위한 설정을 생성합니다.
382
+
383
+ 지원 범위:
384
+
385
+ | 대상 | 생성/수정 파일 | 비고 |
386
+ | --- | --- | --- |
387
+ | Kiro CLI V3 Early Access | `.kiro/hooks/agentic-runtime.json` | standalone hook 파일, `UserPromptSubmit`/`Stop` trigger 사용 |
388
+ | Kiro CLI V2 | `.kiro/agents/kiro_with_hooks.json` | agent config의 embedded `hooks` 필드 사용 |
389
+ | Kiro IDE | `.kiro/hooks/*.kiro.hook` | IDE 호환용 보조 파일 |
390
+
391
+ 설치:
392
+
393
+ ```bash
394
+ npx agentic adapter install kiro
395
+ ```
396
+
397
+ 상태 확인:
398
+
399
+ ```bash
400
+ npx agentic adapter status kiro
401
+ ```
402
+
403
+ 이미 생성된 Kiro adapter 파일을 현재 `@soddong/agentic-runtime` 버전 기준으로 갱신하려면 `--force`를 사용합니다.
404
+
405
+ ```bash
406
+ npx agentic adapter install kiro --force
407
+ ```
408
+
409
+ Kiro CLI V2에서 hook agent를 기본값으로 지정하려면 `--set-default`를 명시합니다. 이 옵션은 사용자 Kiro 설정을 변경할 수 있으므로 기본 설치에서는 실행하지 않습니다.
410
+
411
+ ```bash
412
+ npx agentic adapter install kiro --set-default
413
+ ```
414
+
415
+ `--set-default`는 내부적으로 `kiro-cli agent set-default kiro_with_hooks`를 실행합니다. `kiro` 명령이 아니라 `kiro-cli` 명령이어야 하며, agent 이름은 `kito_with_hooks`가 아니라 `kiro_with_hooks`입니다.
416
+
417
+ 직접 확인:
418
+
419
+ ```bash
420
+ kiro-cli agent set-default kiro_with_hooks
421
+ kiro-cli --agent kiro_with_hooks
422
+ ```
423
+
424
+ 생성 구조:
425
+
426
+ ```text
427
+ consumer-project/
428
+ .kiro/
429
+ agents/
430
+ kiro_with_hooks.json
431
+ hooks/
432
+ agentic-runtime.json
433
+ agentic-runtime-prompt-submit.kiro.hook
434
+ agentic-runtime-agent-stop.kiro.hook
435
+ steering/
436
+ agentic-runtime.md
437
+ plugins/
438
+ agentic-runtime-kiro/
439
+ README.md
440
+ hooks/
441
+ kiro-hook-guide.md
442
+ ```
443
+
444
+ 등록되는 command:
445
+
446
+ | 구분 | Event/Trigger | Command |
447
+ | --- | --- | --- |
448
+ | Kiro CLI V3 | `UserPromptSubmit` | `node .agentic/bin/agentic-hook.mjs --source kiro --event PromptSubmit` |
449
+ | Kiro CLI V3 | `Stop` | `node .agentic/bin/agentic-hook.mjs --source kiro --event AgentStop` |
450
+ | Kiro CLI V2 | `userPromptSubmit` | `node .agentic/bin/agentic-hook.mjs --source kiro --event PromptSubmit` |
451
+ | Kiro CLI V2 | `stop` | `node .agentic/bin/agentic-hook.mjs --source kiro --event AgentStop` |
452
+ | Kiro IDE | Prompt Submit | `node .agentic/bin/agentic-hook.mjs --source kiro --event PromptSubmit` |
453
+ | Kiro IDE | Agent Stop | `node .agentic/bin/agentic-hook.mjs --source kiro --event AgentStop` |
454
+
455
+ Kiro CLI V3는 현재 Early Access이며 `kiro-cli --v3`로 opt-in 하는 구조입니다. CLI V2는 기존 agent config embedded hook을 사용합니다. Kiro IDE에서 `.kiro/hooks/*.kiro.hook` 파일을 인식하지 못하면 Kiro UI에서 생성된 파일 내용을 기준으로 hook 등록 상태를 확인합니다.
456
+
457
+ Kiro CLI V2에서 hook을 적용하려면 다음 중 하나로 실행합니다.
458
+
459
+ ```bash
460
+ kiro-cli --agent kiro_with_hooks
461
+ kiro-cli agent set-default kiro_with_hooks
462
+ ```
463
+
464
+ 상세한 Kiro CLI/IDE hook 설명은 consumer 프로젝트에 생성되는 다음 파일을 확인합니다.
465
+
466
+ ```bash
467
+ cat plugins/agentic-runtime-kiro/hooks/kiro-hook-guide.md
468
+ ```
469
+
470
+ 검증:
471
+
472
+ ```bash
473
+ npx agentic adapter status kiro
474
+ npx agentic execution latest --source kiro --format json
475
+ ```
476
+
477
+ ## Claude Code Adapter
478
+
479
+ Claude Code adapter는 `.claude/settings.json`에 `UserPromptSubmit`, `Stop` command hook을 자동 병합하여 사용자 지시와 turn 종료를 `@soddong/agentic-runtime` execution DB에 기록합니다.
480
+
481
+ 설치:
482
+
483
+ ```bash
484
+ npx agentic adapter install claude-code
485
+ ```
486
+
487
+ 상태 확인:
488
+
489
+ ```bash
490
+ npx agentic adapter status claude-code
491
+ ```
492
+
493
+ 이미 생성된 Claude Code adapter 파일을 현재 `@soddong/agentic-runtime` 버전 기준으로 갱신하려면 `--force`를 사용합니다.
494
+
495
+ ```bash
496
+ npx agentic adapter install claude-code --force
497
+ ```
498
+
499
+ 생성/수정 구조:
500
+
501
+ ```text
502
+ consumer-project/
503
+ .claude/
504
+ settings.json
505
+ rules/
506
+ agentic-runtime.md
507
+ plugins/
508
+ agentic-runtime-claude-code/
509
+ README.md
510
+ ```
511
+
512
+ 등록되는 hook:
513
+
514
+ | Claude Code hook | Command |
515
+ | --- | --- |
516
+ | UserPromptSubmit | `node .agentic/bin/agentic-hook.mjs --source claude-code --event UserPromptSubmit` |
517
+ | Stop | `node .agentic/bin/agentic-hook.mjs --source claude-code --event Stop` |
518
+
519
+ ## SQLite 초기화
520
+
521
+ 사용자 프로젝트의 로컬 실행 DB를 초기화합니다.
522
+
523
+ ```bash
524
+ npx agentic db init
525
+ npx agentic db status
526
+ ```
527
+
528
+ 기본 DB 파일:
529
+
530
+ ```text
531
+ .agentic/platform.sqlite
532
+ ```
533
+
534
+ ## Module Registry
535
+
536
+ 실행 프로젝트에서 사용할 Agentic package는 프로젝트 DB에 명시적으로 등록합니다.
537
+
538
+ ```bash
539
+ npx agentic module register sample-agent-package 0.0.1 application
540
+ npx agentic module list
541
+ ```
542
+
543
+ module layer 값:
544
+
545
+ ```text
546
+ runtime
547
+ domain
548
+ capability
549
+ application
550
+ support
551
+ ```
552
+
553
+ ## Project Bundle Registry
554
+
555
+ methodology seed bundle provider package가 설치되어 있으면 runtime에 bundle 설치 상태를 등록할 수 있습니다.
556
+
557
+ ```bash
558
+ npx agentic bundle install @soddong/agentic-methodology-ai-agent-sdlc --bundle ai-agent-sdlc-build-planning
559
+ npx agentic bundle apply @soddong/agentic-methodology-ai-agent-sdlc --bundle ai-agent-sdlc-build-planning
560
+ npx agentic bundle apply @soddong/agentic-methodology-ai-agent-sdlc --bundle ai-agent-sdlc-build-planning --install-required
561
+ npx agentic bundle list
562
+ npx agentic bundle status
563
+ ```
564
+
565
+ `bundle install`은 bundle manifest와 validation 결과를 runtime DB에 등록합니다. 실제 methodology, artifact, document domain DB 반영은 `seed import`로 계획을 만든 뒤 `seed apply`에서 target package handler를 통해 수행합니다.
566
+
567
+ `bundle apply`는 다음 단계를 한 번에 수행합니다.
568
+
569
+ ```text
570
+ - 프로젝트 runtime init/db init
571
+ - --install-required 지정 시 bundle provider package npm install
572
+ - bundle install
573
+ - --install-required 지정 시 bundle manifest의 requires.packages npm install
574
+ - bundle manifest의 requires.packages 자동 module register
575
+ - seed import
576
+ - seed apply
577
+ ```
578
+
579
+ 기본 `bundle apply`는 npm package를 자동 설치하지 않고, 이미 설치된 package만 등록/적용합니다. 사용자 편의 설치까지 포함하려면 `--install-required`를 사용합니다.
580
+
581
+ ```bash
582
+ npx agentic bundle apply @soddong/agentic-methodology-ai-agent-sdlc \
583
+ --bundle ai-agent-sdlc-build-planning \
584
+ --install-required
585
+ ```
586
+
587
+ 수동 설치를 선호하면 다음처럼 먼저 packages를 설치한 뒤 `bundle apply`를 실행할 수 있습니다.
588
+
589
+ ```bash
590
+ npm install @soddong/agentic-methodology-ai-agent-sdlc @soddong/agentic-domain-methodology @soddong/agentic-domain-artifact-standard @soddong/agentic-contract-validation @soddong/agentic-domain-artifact
591
+ npx agentic bundle apply @soddong/agentic-methodology-ai-agent-sdlc --bundle ai-agent-sdlc-build-planning
592
+ ```
593
+
594
+ ## Seed Import Plan
595
+
596
+ installed bundle을 기준으로 domain package 반영 계획을 dry-run으로 생성합니다.
597
+
598
+ ```bash
599
+ npx agentic seed import --bundle ai-agent-sdlc-build-planning
600
+ npx agentic seed apply --bundle ai-agent-sdlc-build-planning
601
+ npx agentic seed status
602
+ ```
603
+
604
+ `seed import`는 target package 준비 상태를 점검하고 `agentic_seed_import_runs`, `agentic_seed_import_items`에 import plan을 저장합니다. target package가 설치 또는 등록되지 않았으면 해당 item은 `blocked`로 표시합니다.
605
+
606
+ ```text
607
+ Bundle: ai-agent-sdlc-build-planning
608
+ Target: @soddong/agentic-domain-methodology
609
+ Status: blocked
610
+ Reason: package not installed or not registered
611
+ ```
612
+
613
+ `seed import` 단계는 dry-run이며 domain DB에는 쓰지 않습니다. `seed apply`는 생성된 import plan을 기준으로 target package의 `applyAgenticSeed` handler를 호출합니다. target package가 설치 또는 등록되지 않았거나 handler가 없으면 해당 item은 `blocked`로 남습니다.
614
+
615
+ ## Execution Project Lifecycle
616
+
617
+ `seed apply`가 성공한 bundle은 execution project로 생성할 수 있습니다. 1차 범위의 execution project는 workflow engine이 아니라, bundle의 stage/activity와 primary output artifact 기준을 runtime DB에 snapshot으로 등록하는 lifecycle scaffold입니다.
618
+
619
+ ```bash
620
+ npx agentic project create \
621
+ --bundle ai-agent-sdlc-build-planning \
622
+ --code my-build-planning \
623
+ --name "My Build Planning Project"
624
+ ```
625
+
626
+ 상태 조회:
627
+
628
+ ```bash
629
+ npx agentic project status --code my-build-planning
630
+ npx agentic project status --code my-build-planning --format json
631
+ ```
632
+
633
+ ## 문서 구분
634
+
635
+ 패키지 사용자는 필요한 문서만 보면 됩니다.
636
+
637
+ 공통 패키지 개발 기준은 구축 저장소의 `docs/standards/package-development-standard.md`를 따릅니다.
638
+
639
+ | 대상 | 문서 | 내용 |
640
+ | --- | --- | --- |
641
+ | 운영환경 사용자 | [docs/usage.md](./docs/usage.md) | 설치, 실행 확인, 기본 사용법 |
642
+ | 운영환경 사용자 | [docs/configuration.md](./docs/configuration.md) | 외부 실행 프로젝트의 환경 설정 원칙 |
643
+ | 운영환경 담당자 | [docs/operations.md](./docs/operations.md) | 운영환경 설치, 검증, 장애 확인 |
644
+ | 구축 담당자 | [docs/build.md](./docs/build.md) | 개발, 빌드, 로컬 검증 |
645
+ | 구축 담당자 | [docs/publishing.md](./docs/publishing.md) | npm pack, publish, publish 검증 |
646
+ | 구축 담당자 | [docs/delivery.md](./docs/delivery.md) | 구축 환경에서 운영환경으로 전달할 패키지별 기준 |
647
+ | 구축 담당자 | [docs/schema/generated/README.md](./docs/schema/generated/README.md) | `tbls`가 생성한 SQLite 테이블 설계 문서 |
648
+ | 구축 담당자 | [docs/schema/generated/schema.svg](./docs/schema/generated/schema.svg) | `tbls`가 생성한 SQLite 테이블 가시화 다이어그램 |
649
+ | 구축 담당자 | [docs/schema/migrations.md](./docs/schema/migrations.md) | SQLite migration 적용 순서와 의도 |
650
+
651
+ ## 환경 정보 제공 원칙
652
+
653
+ `@soddong/agentic-runtime`은 환경 정보를 직접 소유하지 않습니다.
654
+
655
+ registry, 인증, 네트워크, 중앙 DBMS, Agent profile 같은 환경 정보는 이 패키지를 설치해서 사용하는 외부 실행 프로젝트가 제공합니다.
656
+
657
+ ```text
658
+ @soddong/agentic-runtime
659
+ - 환경 정보의 형식과 로딩 규칙을 정의
660
+ - package 내부에 특정 환경 값을 고정하지 않음
661
+
662
+ consumer project
663
+ - .npmrc
664
+ - .env
665
+ - agentic.config.*
666
+ - CI/CD variables
667
+ - network/profile 설정
668
+ ```
669
+
670
+ ## 역할
671
+
672
+ ```text
673
+ @soddong/agentic-runtime
674
+ - CLI entrypoint
675
+ - package/module registry
676
+ - module composition
677
+ - lifecycle execution
678
+ - Codex adapter bootstrap
679
+ - SQLite migration composition
680
+ - execution project scaffold
681
+ - runtime context
682
+ ```
683
+
684
+ `@soddong/agentic-runtime`은 Agentic Platform 전체가 아닙니다. Agentic Platform은 전체 제품/체계명이고, `@soddong/agentic-runtime`은 로컬 실행 기반 패키지입니다.
685
+
686
+ ## MVP 범위
687
+
688
+ 초기 `@soddong/agentic-runtime`의 범위는 의도적으로 작게 유지합니다.
689
+
690
+ ```text
691
+ 1. workspace/package skeleton
692
+ 2. local CLI entrypoint
693
+ 3. project-local SQLite initialization
694
+ 4. package migration composition
695
+ 5. module registry
696
+ 6. execution project scaffold
697
+ ```
698
+
699
+ 다음 항목은 초기 runtime 패키지 범위에 포함하지 않습니다.
700
+
701
+ ```text
702
+ - full workflow engine
703
+ - PostgreSQL sync implementation
704
+ - multi-agent orchestration
705
+ - web UI
706
+ - DOCX/PPTX/PDF rendering
707
+ ```