@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
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@soddong/agentic-runtime",
|
|
3
|
+
"version": "0.16.0",
|
|
4
|
+
"description": "Agentic Platform local execution runtime and CLI",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"agentic": "dist/cli.js"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"README.md",
|
|
15
|
+
"CHANGELOG.md",
|
|
16
|
+
".tbls.yml",
|
|
17
|
+
"docs",
|
|
18
|
+
"src/database/migrations"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.json",
|
|
22
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"better-sqlite3": "^12.11.1",
|
|
27
|
+
"@soddong/agentic-capability-agent-client": "^0.4.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/better-sqlite3": "^7.6.13"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- runtime DB 식별과 runtime-level metadata를 관리한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS agentic_runtime_metadata (
|
|
5
|
+
-- metadata 항목 식별자
|
|
6
|
+
metadata_key VARCHAR(128) PRIMARY KEY,
|
|
7
|
+
|
|
8
|
+
-- metadata 값
|
|
9
|
+
metadata_value TEXT NOT NULL,
|
|
10
|
+
|
|
11
|
+
-- metadata 값의 논리 타입
|
|
12
|
+
value_type VARCHAR(16) NOT NULL DEFAULT 'string'
|
|
13
|
+
CHECK (value_type IN ('string', 'integer', 'boolean', 'json')),
|
|
14
|
+
|
|
15
|
+
-- metadata 항목 설명
|
|
16
|
+
metadata_description TEXT,
|
|
17
|
+
|
|
18
|
+
-- metadata 최종 수정 시각
|
|
19
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
-- runtime 및 각 패키지의 SQLite schema migration 적용 이력을 관리한다.
|
|
23
|
+
CREATE TABLE IF NOT EXISTS agentic_schema_migrations (
|
|
24
|
+
-- migration을 제공한 패키지명
|
|
25
|
+
package_name VARCHAR(214) NOT NULL,
|
|
26
|
+
|
|
27
|
+
-- migration 식별자
|
|
28
|
+
migration_id VARCHAR(128) NOT NULL,
|
|
29
|
+
|
|
30
|
+
-- migration 파일 내용 검증용 SHA-256 checksum
|
|
31
|
+
checksum_sha256 CHAR(64)
|
|
32
|
+
CHECK (checksum_sha256 IS NULL OR length(checksum_sha256) = 64),
|
|
33
|
+
|
|
34
|
+
-- migration을 적용한 runtime version
|
|
35
|
+
applied_by_runtime_version VARCHAR(64),
|
|
36
|
+
|
|
37
|
+
-- migration 적용 시각
|
|
38
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
39
|
+
|
|
40
|
+
PRIMARY KEY (package_name, migration_id)
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
-- 현재 실행 프로젝트에 등록된 Agentic package 상태를 관리한다.
|
|
44
|
+
CREATE TABLE IF NOT EXISTS agentic_project_modules (
|
|
45
|
+
-- Agentic package 이름
|
|
46
|
+
package_name VARCHAR(214) PRIMARY KEY,
|
|
47
|
+
|
|
48
|
+
-- 등록된 package version
|
|
49
|
+
package_version VARCHAR(64) NOT NULL,
|
|
50
|
+
|
|
51
|
+
-- runtime, domain, capability, application, support 등 패키지 계층
|
|
52
|
+
module_layer VARCHAR(32)
|
|
53
|
+
CHECK (
|
|
54
|
+
module_layer IS NULL OR
|
|
55
|
+
module_layer IN ('runtime', 'domain', 'capability', 'application', 'support')
|
|
56
|
+
),
|
|
57
|
+
|
|
58
|
+
-- package manifest snapshot
|
|
59
|
+
manifest_json JSON NOT NULL DEFAULT '{}'
|
|
60
|
+
CHECK (json_valid(manifest_json)),
|
|
61
|
+
|
|
62
|
+
-- 프로젝트 내 활성화 여부. 1은 활성, 0은 비활성
|
|
63
|
+
is_enabled INTEGER NOT NULL DEFAULT 1
|
|
64
|
+
CHECK (is_enabled IN (0, 1)),
|
|
65
|
+
|
|
66
|
+
-- 프로젝트에 등록된 시각
|
|
67
|
+
registered_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
68
|
+
|
|
69
|
+
-- 등록 상태 최종 수정 시각
|
|
70
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
-- 사용자 지시 원문과 접수 정보를 관리한다.
|
|
74
|
+
CREATE TABLE IF NOT EXISTS agentic_user_requests (
|
|
75
|
+
-- 사용자 지시 식별자
|
|
76
|
+
request_id CHAR(36) PRIMARY KEY
|
|
77
|
+
CHECK (length(request_id) = 36),
|
|
78
|
+
|
|
79
|
+
-- 사용자 지시 원문
|
|
80
|
+
request_text TEXT NOT NULL,
|
|
81
|
+
|
|
82
|
+
-- 지시 유입 경로. cli, api, test 등
|
|
83
|
+
request_source VARCHAR(32) NOT NULL DEFAULT 'cli'
|
|
84
|
+
CHECK (request_source IN ('cli', 'api', 'test', 'system')),
|
|
85
|
+
|
|
86
|
+
-- 지시 context snapshot
|
|
87
|
+
context_json JSON
|
|
88
|
+
CHECK (context_json IS NULL OR json_valid(context_json)),
|
|
89
|
+
|
|
90
|
+
-- 지시 접수 시각
|
|
91
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
-- 사용자 지시 또는 runtime command의 실행 단위를 관리한다.
|
|
95
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_runs (
|
|
96
|
+
-- 실행 식별자
|
|
97
|
+
run_id CHAR(36) PRIMARY KEY
|
|
98
|
+
CHECK (length(run_id) = 36),
|
|
99
|
+
|
|
100
|
+
-- 사용자 지시 식별자. 명령형 실행은 없을 수 있다.
|
|
101
|
+
request_id CHAR(36)
|
|
102
|
+
CHECK (request_id IS NULL OR length(request_id) = 36),
|
|
103
|
+
|
|
104
|
+
-- 실행을 담당한 package 이름
|
|
105
|
+
package_name VARCHAR(214),
|
|
106
|
+
|
|
107
|
+
-- 실행된 command 또는 agent 식별자
|
|
108
|
+
command_name VARCHAR(128),
|
|
109
|
+
|
|
110
|
+
-- 실행 종류
|
|
111
|
+
run_type VARCHAR(32) NOT NULL
|
|
112
|
+
CHECK (run_type IN ('command', 'agent', 'workflow', 'migration', 'validation')),
|
|
113
|
+
|
|
114
|
+
-- 실행 상태
|
|
115
|
+
run_status VARCHAR(32) NOT NULL DEFAULT 'pending'
|
|
116
|
+
CHECK (run_status IN ('pending', 'running', 'succeeded', 'failed', 'cancelled')),
|
|
117
|
+
|
|
118
|
+
-- 실행 시작 시각
|
|
119
|
+
started_at DATETIME,
|
|
120
|
+
|
|
121
|
+
-- 실행 종료 시각
|
|
122
|
+
ended_at DATETIME,
|
|
123
|
+
|
|
124
|
+
-- 실행 소요 시간
|
|
125
|
+
duration_ms INTEGER
|
|
126
|
+
CHECK (duration_ms IS NULL OR duration_ms >= 0),
|
|
127
|
+
|
|
128
|
+
-- process exit code
|
|
129
|
+
exit_code INTEGER,
|
|
130
|
+
|
|
131
|
+
-- 실패 또는 취소 사유
|
|
132
|
+
error_message TEXT,
|
|
133
|
+
|
|
134
|
+
-- 실행 option snapshot
|
|
135
|
+
run_options_json JSON
|
|
136
|
+
CHECK (run_options_json IS NULL OR json_valid(run_options_json)),
|
|
137
|
+
|
|
138
|
+
-- 실행 생성 시각
|
|
139
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
140
|
+
|
|
141
|
+
FOREIGN KEY (request_id)
|
|
142
|
+
REFERENCES agentic_user_requests (request_id)
|
|
143
|
+
ON DELETE SET NULL
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
-- 실행 중 발생한 로그와 이벤트를 순서대로 관리한다.
|
|
147
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_logs (
|
|
148
|
+
-- 로그 식별자
|
|
149
|
+
log_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
150
|
+
|
|
151
|
+
-- 실행 식별자
|
|
152
|
+
run_id CHAR(36) NOT NULL
|
|
153
|
+
CHECK (length(run_id) = 36),
|
|
154
|
+
|
|
155
|
+
-- 실행 내 로그 순번
|
|
156
|
+
sequence_no INTEGER NOT NULL
|
|
157
|
+
CHECK (sequence_no >= 0),
|
|
158
|
+
|
|
159
|
+
-- 로그 레벨
|
|
160
|
+
log_level VARCHAR(16) NOT NULL
|
|
161
|
+
CHECK (log_level IN ('trace', 'debug', 'info', 'warn', 'error')),
|
|
162
|
+
|
|
163
|
+
-- 로그 종류
|
|
164
|
+
log_type VARCHAR(32) NOT NULL DEFAULT 'event'
|
|
165
|
+
CHECK (log_type IN ('event', 'stdout', 'stderr', 'tool', 'system')),
|
|
166
|
+
|
|
167
|
+
-- 로그 메시지
|
|
168
|
+
message TEXT NOT NULL,
|
|
169
|
+
|
|
170
|
+
-- 구조화 로그 payload
|
|
171
|
+
payload_json JSON
|
|
172
|
+
CHECK (payload_json IS NULL OR json_valid(payload_json)),
|
|
173
|
+
|
|
174
|
+
-- 로그 생성 시각
|
|
175
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
176
|
+
|
|
177
|
+
FOREIGN KEY (run_id)
|
|
178
|
+
REFERENCES agentic_execution_runs (run_id)
|
|
179
|
+
ON DELETE CASCADE,
|
|
180
|
+
|
|
181
|
+
UNIQUE (run_id, sequence_no)
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
-- 실행 결과를 구조화하여 관리한다.
|
|
185
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_outputs (
|
|
186
|
+
-- 실행 결과 식별자
|
|
187
|
+
output_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
188
|
+
|
|
189
|
+
-- 실행 식별자
|
|
190
|
+
run_id CHAR(36) NOT NULL
|
|
191
|
+
CHECK (length(run_id) = 36),
|
|
192
|
+
|
|
193
|
+
-- 결과 종류
|
|
194
|
+
output_type VARCHAR(32) NOT NULL
|
|
195
|
+
CHECK (output_type IN ('text', 'json', 'file', 'artifact')),
|
|
196
|
+
|
|
197
|
+
-- text 결과
|
|
198
|
+
content_text TEXT,
|
|
199
|
+
|
|
200
|
+
-- JSON 결과
|
|
201
|
+
content_json JSON
|
|
202
|
+
CHECK (content_json IS NULL OR json_valid(content_json)),
|
|
203
|
+
|
|
204
|
+
-- 파일 결과 경로
|
|
205
|
+
file_path TEXT,
|
|
206
|
+
|
|
207
|
+
-- 결과 생성 시각
|
|
208
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
209
|
+
|
|
210
|
+
FOREIGN KEY (run_id)
|
|
211
|
+
REFERENCES agentic_execution_runs (run_id)
|
|
212
|
+
ON DELETE CASCADE,
|
|
213
|
+
|
|
214
|
+
CHECK (
|
|
215
|
+
content_text IS NOT NULL OR
|
|
216
|
+
content_json IS NOT NULL OR
|
|
217
|
+
file_path IS NOT NULL
|
|
218
|
+
)
|
|
219
|
+
);
|
|
220
|
+
|
|
221
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_runs_request_id
|
|
222
|
+
ON agentic_execution_runs (request_id);
|
|
223
|
+
|
|
224
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_runs_status
|
|
225
|
+
ON agentic_execution_runs (run_status);
|
|
226
|
+
|
|
227
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_logs_run_id
|
|
228
|
+
ON agentic_execution_logs (run_id);
|
|
229
|
+
|
|
230
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_outputs_run_id
|
|
231
|
+
ON agentic_execution_outputs (run_id);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- 현재 실행 프로젝트에 설치된 methodology/seed bundle 상태를 관리한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS agentic_project_bundles (
|
|
5
|
+
-- bundle 설치 식별자
|
|
6
|
+
bundle_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
|
|
8
|
+
-- bundle을 제공한 Agentic package 이름
|
|
9
|
+
package_name VARCHAR(214) NOT NULL,
|
|
10
|
+
|
|
11
|
+
-- bundle 설치 시점의 package version
|
|
12
|
+
package_version VARCHAR(64) NOT NULL,
|
|
13
|
+
|
|
14
|
+
-- package 내부 bundle 식별자
|
|
15
|
+
bundle_code VARCHAR(128) NOT NULL,
|
|
16
|
+
|
|
17
|
+
-- bundle 자체 version
|
|
18
|
+
bundle_version VARCHAR(64) NOT NULL,
|
|
19
|
+
|
|
20
|
+
-- bundle이 제공하는 methodology code
|
|
21
|
+
methodology_code VARCHAR(128),
|
|
22
|
+
|
|
23
|
+
-- 사용자 표시용 bundle 이름
|
|
24
|
+
display_name VARCHAR(255),
|
|
25
|
+
|
|
26
|
+
-- bundle 설명
|
|
27
|
+
description TEXT,
|
|
28
|
+
|
|
29
|
+
-- bundle manifest snapshot
|
|
30
|
+
bundle_manifest_json JSON NOT NULL
|
|
31
|
+
CHECK (json_valid(bundle_manifest_json)),
|
|
32
|
+
|
|
33
|
+
-- bundle validation result snapshot
|
|
34
|
+
validation_result_json JSON NOT NULL
|
|
35
|
+
CHECK (json_valid(validation_result_json)),
|
|
36
|
+
|
|
37
|
+
-- 프로젝트 내 활성화 여부. 1은 활성, 0은 비활성
|
|
38
|
+
is_enabled INTEGER NOT NULL DEFAULT 1
|
|
39
|
+
CHECK (is_enabled IN (0, 1)),
|
|
40
|
+
|
|
41
|
+
-- 프로젝트에 bundle이 설치된 시각
|
|
42
|
+
installed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
43
|
+
|
|
44
|
+
-- 설치 상태 최종 수정 시각
|
|
45
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
46
|
+
|
|
47
|
+
UNIQUE (package_name, bundle_code),
|
|
48
|
+
|
|
49
|
+
FOREIGN KEY (package_name)
|
|
50
|
+
REFERENCES agentic_project_modules (package_name)
|
|
51
|
+
ON DELETE CASCADE
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_project_bundles_package_name
|
|
55
|
+
ON agentic_project_bundles (package_name);
|
|
56
|
+
|
|
57
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_project_bundles_bundle_code
|
|
58
|
+
ON agentic_project_bundles (bundle_code);
|
|
59
|
+
|
|
60
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_project_bundles_enabled
|
|
61
|
+
ON agentic_project_bundles (is_enabled);
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- seed bundle import 계획과 dry-run 결과를 run 단위로 관리한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS agentic_seed_import_runs (
|
|
5
|
+
-- seed import run 식별자
|
|
6
|
+
seed_import_run_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
|
|
8
|
+
-- import 대상 project bundle 식별자
|
|
9
|
+
bundle_id INTEGER NOT NULL,
|
|
10
|
+
|
|
11
|
+
-- bundle provider package 이름
|
|
12
|
+
package_name VARCHAR(214) NOT NULL,
|
|
13
|
+
|
|
14
|
+
-- bundle provider package version
|
|
15
|
+
package_version VARCHAR(64) NOT NULL,
|
|
16
|
+
|
|
17
|
+
-- package 내부 bundle 식별자
|
|
18
|
+
bundle_code VARCHAR(128) NOT NULL,
|
|
19
|
+
|
|
20
|
+
-- bundle 자체 version
|
|
21
|
+
bundle_version VARCHAR(64) NOT NULL,
|
|
22
|
+
|
|
23
|
+
-- bundle이 제공하는 methodology code
|
|
24
|
+
methodology_code VARCHAR(128),
|
|
25
|
+
|
|
26
|
+
-- import 실행 mode
|
|
27
|
+
import_mode VARCHAR(16) NOT NULL DEFAULT 'dry_run'
|
|
28
|
+
CHECK (import_mode IN ('dry_run', 'apply')),
|
|
29
|
+
|
|
30
|
+
-- import 계획 상태
|
|
31
|
+
import_status VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
32
|
+
CHECK (import_status IN ('planned', 'blocked', 'failed', 'applied')),
|
|
33
|
+
|
|
34
|
+
-- import plan summary snapshot
|
|
35
|
+
summary_json JSON NOT NULL DEFAULT '{}'
|
|
36
|
+
CHECK (json_valid(summary_json)),
|
|
37
|
+
|
|
38
|
+
-- bundle validation result snapshot
|
|
39
|
+
validation_result_json JSON NOT NULL DEFAULT '{}'
|
|
40
|
+
CHECK (json_valid(validation_result_json)),
|
|
41
|
+
|
|
42
|
+
-- run 생성 시각
|
|
43
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
44
|
+
|
|
45
|
+
-- run 상태 최종 수정 시각
|
|
46
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
47
|
+
|
|
48
|
+
FOREIGN KEY (bundle_id)
|
|
49
|
+
REFERENCES agentic_project_bundles (bundle_id)
|
|
50
|
+
ON DELETE CASCADE
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
-- seed bundle import 계획을 target package/section 단위 item으로 관리한다.
|
|
54
|
+
CREATE TABLE IF NOT EXISTS agentic_seed_import_items (
|
|
55
|
+
-- seed import item 식별자
|
|
56
|
+
seed_import_item_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
57
|
+
|
|
58
|
+
-- seed import run 식별자
|
|
59
|
+
seed_import_run_id INTEGER NOT NULL,
|
|
60
|
+
|
|
61
|
+
-- run 내 item 순서
|
|
62
|
+
item_order INTEGER NOT NULL
|
|
63
|
+
CHECK (item_order >= 0),
|
|
64
|
+
|
|
65
|
+
-- bundle 내 source section
|
|
66
|
+
source_section VARCHAR(64) NOT NULL,
|
|
67
|
+
|
|
68
|
+
-- import target package 이름
|
|
69
|
+
target_package VARCHAR(214) NOT NULL,
|
|
70
|
+
|
|
71
|
+
-- import target domain 이름
|
|
72
|
+
target_domain VARCHAR(64),
|
|
73
|
+
|
|
74
|
+
-- seed apply에서 사용할 target operation 이름
|
|
75
|
+
target_operation VARCHAR(128) NOT NULL,
|
|
76
|
+
|
|
77
|
+
-- item 식별 key
|
|
78
|
+
item_key VARCHAR(255),
|
|
79
|
+
|
|
80
|
+
-- section 내 seed item 수
|
|
81
|
+
item_count INTEGER NOT NULL DEFAULT 0
|
|
82
|
+
CHECK (item_count >= 0),
|
|
83
|
+
|
|
84
|
+
-- item 계획 상태
|
|
85
|
+
item_status VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
86
|
+
CHECK (item_status IN ('planned', 'blocked', 'warning', 'skipped', 'applied')),
|
|
87
|
+
|
|
88
|
+
-- blocked/warning/skipped 사유 code
|
|
89
|
+
reason_code VARCHAR(128),
|
|
90
|
+
|
|
91
|
+
-- blocked/warning/skipped 사유 설명
|
|
92
|
+
reason_message TEXT,
|
|
93
|
+
|
|
94
|
+
-- import 대상 seed payload snapshot
|
|
95
|
+
item_payload_json JSON
|
|
96
|
+
CHECK (item_payload_json IS NULL OR json_valid(item_payload_json)),
|
|
97
|
+
|
|
98
|
+
-- item 생성 시각
|
|
99
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
100
|
+
|
|
101
|
+
FOREIGN KEY (seed_import_run_id)
|
|
102
|
+
REFERENCES agentic_seed_import_runs (seed_import_run_id)
|
|
103
|
+
ON DELETE CASCADE,
|
|
104
|
+
|
|
105
|
+
UNIQUE (seed_import_run_id, item_order)
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_runs_bundle_id
|
|
109
|
+
ON agentic_seed_import_runs (bundle_id);
|
|
110
|
+
|
|
111
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_runs_status
|
|
112
|
+
ON agentic_seed_import_runs (import_status);
|
|
113
|
+
|
|
114
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_run_id
|
|
115
|
+
ON agentic_seed_import_items (seed_import_run_id);
|
|
116
|
+
|
|
117
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_target_package
|
|
118
|
+
ON agentic_seed_import_items (target_package);
|
|
119
|
+
|
|
120
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_status
|
|
121
|
+
ON agentic_seed_import_items (item_status);
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- seed apply 중 target handler 실패를 item 단위로 추적할 수 있도록 실패 상태를 추가한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS agentic_seed_import_items_next (
|
|
5
|
+
seed_import_item_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
6
|
+
seed_import_run_id INTEGER NOT NULL,
|
|
7
|
+
item_order INTEGER NOT NULL
|
|
8
|
+
CHECK (item_order >= 0),
|
|
9
|
+
source_section VARCHAR(64) NOT NULL,
|
|
10
|
+
target_package VARCHAR(214) NOT NULL,
|
|
11
|
+
target_domain VARCHAR(64),
|
|
12
|
+
target_operation VARCHAR(128) NOT NULL,
|
|
13
|
+
item_key VARCHAR(255),
|
|
14
|
+
item_count INTEGER NOT NULL DEFAULT 0
|
|
15
|
+
CHECK (item_count >= 0),
|
|
16
|
+
item_status VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
17
|
+
CHECK (item_status IN ('planned', 'blocked', 'warning', 'skipped', 'applied', 'failed')),
|
|
18
|
+
reason_code VARCHAR(128),
|
|
19
|
+
reason_message TEXT,
|
|
20
|
+
item_payload_json JSON
|
|
21
|
+
CHECK (item_payload_json IS NULL OR json_valid(item_payload_json)),
|
|
22
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
23
|
+
|
|
24
|
+
FOREIGN KEY (seed_import_run_id)
|
|
25
|
+
REFERENCES agentic_seed_import_runs (seed_import_run_id)
|
|
26
|
+
ON DELETE CASCADE,
|
|
27
|
+
|
|
28
|
+
UNIQUE (seed_import_run_id, item_order)
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
INSERT INTO agentic_seed_import_items_next
|
|
32
|
+
(
|
|
33
|
+
seed_import_item_id,
|
|
34
|
+
seed_import_run_id,
|
|
35
|
+
item_order,
|
|
36
|
+
source_section,
|
|
37
|
+
target_package,
|
|
38
|
+
target_domain,
|
|
39
|
+
target_operation,
|
|
40
|
+
item_key,
|
|
41
|
+
item_count,
|
|
42
|
+
item_status,
|
|
43
|
+
reason_code,
|
|
44
|
+
reason_message,
|
|
45
|
+
item_payload_json,
|
|
46
|
+
created_at
|
|
47
|
+
)
|
|
48
|
+
SELECT seed_import_item_id,
|
|
49
|
+
seed_import_run_id,
|
|
50
|
+
item_order,
|
|
51
|
+
source_section,
|
|
52
|
+
target_package,
|
|
53
|
+
target_domain,
|
|
54
|
+
target_operation,
|
|
55
|
+
item_key,
|
|
56
|
+
item_count,
|
|
57
|
+
item_status,
|
|
58
|
+
reason_code,
|
|
59
|
+
reason_message,
|
|
60
|
+
item_payload_json,
|
|
61
|
+
created_at
|
|
62
|
+
FROM agentic_seed_import_items;
|
|
63
|
+
|
|
64
|
+
DROP TABLE agentic_seed_import_items;
|
|
65
|
+
|
|
66
|
+
ALTER TABLE agentic_seed_import_items_next
|
|
67
|
+
RENAME TO agentic_seed_import_items;
|
|
68
|
+
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_run_id
|
|
70
|
+
ON agentic_seed_import_items (seed_import_run_id);
|
|
71
|
+
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_target_package
|
|
73
|
+
ON agentic_seed_import_items (target_package);
|
|
74
|
+
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_seed_import_items_status
|
|
76
|
+
ON agentic_seed_import_items (item_status);
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- seed bundle을 기반으로 생성한 실행 프로젝트 인스턴스를 관리한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_projects (
|
|
5
|
+
execution_project_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
6
|
+
project_code VARCHAR(128) NOT NULL UNIQUE,
|
|
7
|
+
project_name VARCHAR(256) NOT NULL,
|
|
8
|
+
project_status_code VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
9
|
+
CHECK (project_status_code IN ('planned', 'in_progress', 'completed', 'blocked', 'skipped')),
|
|
10
|
+
bundle_id INTEGER NOT NULL,
|
|
11
|
+
package_name VARCHAR(214) NOT NULL,
|
|
12
|
+
package_version VARCHAR(64) NOT NULL,
|
|
13
|
+
bundle_code VARCHAR(128) NOT NULL,
|
|
14
|
+
bundle_version VARCHAR(64) NOT NULL,
|
|
15
|
+
methodology_code VARCHAR(128),
|
|
16
|
+
lifecycle_code VARCHAR(128),
|
|
17
|
+
phase_code VARCHAR(128),
|
|
18
|
+
process_code VARCHAR(128),
|
|
19
|
+
metadata_json JSON NOT NULL DEFAULT '{}'
|
|
20
|
+
CHECK (json_valid(metadata_json)),
|
|
21
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
22
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
23
|
+
|
|
24
|
+
FOREIGN KEY (bundle_id)
|
|
25
|
+
REFERENCES agentic_project_bundles (bundle_id)
|
|
26
|
+
ON DELETE RESTRICT
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
-- 실행 프로젝트 안의 Stage 상태 snapshot을 관리한다.
|
|
30
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_project_stages (
|
|
31
|
+
execution_project_stage_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
32
|
+
execution_project_id INTEGER NOT NULL,
|
|
33
|
+
stage_code VARCHAR(128) NOT NULL,
|
|
34
|
+
stage_name VARCHAR(256) NOT NULL,
|
|
35
|
+
stage_status_code VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
36
|
+
CHECK (stage_status_code IN ('planned', 'in_progress', 'completed', 'blocked', 'skipped')),
|
|
37
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
38
|
+
metadata_json JSON NOT NULL DEFAULT '{}'
|
|
39
|
+
CHECK (json_valid(metadata_json)),
|
|
40
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
41
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
42
|
+
|
|
43
|
+
FOREIGN KEY (execution_project_id)
|
|
44
|
+
REFERENCES agentic_execution_projects (execution_project_id)
|
|
45
|
+
ON DELETE CASCADE,
|
|
46
|
+
|
|
47
|
+
UNIQUE (execution_project_id, stage_code)
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
-- 실행 프로젝트 안의 Activity 상태 snapshot을 관리한다.
|
|
51
|
+
CREATE TABLE IF NOT EXISTS agentic_execution_project_activities (
|
|
52
|
+
execution_project_activity_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
53
|
+
execution_project_id INTEGER NOT NULL,
|
|
54
|
+
execution_project_stage_id INTEGER NOT NULL,
|
|
55
|
+
activity_code VARCHAR(128) NOT NULL,
|
|
56
|
+
activity_name VARCHAR(256) NOT NULL,
|
|
57
|
+
activity_status_code VARCHAR(32) NOT NULL DEFAULT 'planned'
|
|
58
|
+
CHECK (activity_status_code IN ('planned', 'in_progress', 'completed', 'blocked', 'skipped')),
|
|
59
|
+
primary_artifact_standard_code VARCHAR(128),
|
|
60
|
+
primary_artifact_standard_version VARCHAR(64),
|
|
61
|
+
artifact_instance_id VARCHAR(64),
|
|
62
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
63
|
+
metadata_json JSON NOT NULL DEFAULT '{}'
|
|
64
|
+
CHECK (json_valid(metadata_json)),
|
|
65
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
66
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
67
|
+
|
|
68
|
+
FOREIGN KEY (execution_project_id)
|
|
69
|
+
REFERENCES agentic_execution_projects (execution_project_id)
|
|
70
|
+
ON DELETE CASCADE,
|
|
71
|
+
|
|
72
|
+
FOREIGN KEY (execution_project_stage_id)
|
|
73
|
+
REFERENCES agentic_execution_project_stages (execution_project_stage_id)
|
|
74
|
+
ON DELETE CASCADE,
|
|
75
|
+
|
|
76
|
+
UNIQUE (execution_project_id, activity_code)
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_projects_bundle
|
|
80
|
+
ON agentic_execution_projects (bundle_code, bundle_version);
|
|
81
|
+
|
|
82
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_projects_status
|
|
83
|
+
ON agentic_execution_projects (project_status_code);
|
|
84
|
+
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_project_stages_project
|
|
86
|
+
ON agentic_execution_project_stages (execution_project_id);
|
|
87
|
+
|
|
88
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_project_activities_project
|
|
89
|
+
ON agentic_execution_project_activities (execution_project_id);
|
|
90
|
+
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_agentic_execution_project_activities_stage
|
|
92
|
+
ON agentic_execution_project_activities (execution_project_stage_id);
|