@goondan/runtime 0.0.3-alpha1

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 (137) hide show
  1. package/dist/config/bundle-loader.d.ts +30 -0
  2. package/dist/config/bundle-loader.d.ts.map +1 -0
  3. package/dist/config/bundle-loader.js +504 -0
  4. package/dist/config/bundle-loader.js.map +1 -0
  5. package/dist/config/object-ref.d.ts +8 -0
  6. package/dist/config/object-ref.d.ts.map +1 -0
  7. package/dist/config/object-ref.js +60 -0
  8. package/dist/config/object-ref.js.map +1 -0
  9. package/dist/config/resources.d.ts +18 -0
  10. package/dist/config/resources.d.ts.map +1 -0
  11. package/dist/config/resources.js +575 -0
  12. package/dist/config/resources.js.map +1 -0
  13. package/dist/config/simple-yaml.d.ts +5 -0
  14. package/dist/config/simple-yaml.d.ts.map +1 -0
  15. package/dist/config/simple-yaml.js +250 -0
  16. package/dist/config/simple-yaml.js.map +1 -0
  17. package/dist/conversation/state.d.ts +38 -0
  18. package/dist/conversation/state.d.ts.map +1 -0
  19. package/dist/conversation/state.js +157 -0
  20. package/dist/conversation/state.js.map +1 -0
  21. package/dist/events/runtime-events.d.ts +87 -0
  22. package/dist/events/runtime-events.d.ts.map +1 -0
  23. package/dist/events/runtime-events.js +32 -0
  24. package/dist/events/runtime-events.js.map +1 -0
  25. package/dist/extension/api-impl.d.ts +28 -0
  26. package/dist/extension/api-impl.d.ts.map +1 -0
  27. package/dist/extension/api-impl.js +59 -0
  28. package/dist/extension/api-impl.js.map +1 -0
  29. package/dist/extension/api-impl.test.d.ts +2 -0
  30. package/dist/extension/api-impl.test.d.ts.map +1 -0
  31. package/dist/extension/api-impl.test.js +97 -0
  32. package/dist/extension/api-impl.test.js.map +1 -0
  33. package/dist/extension/index.d.ts +4 -0
  34. package/dist/extension/index.d.ts.map +1 -0
  35. package/dist/extension/index.js +4 -0
  36. package/dist/extension/index.js.map +1 -0
  37. package/dist/extension/integration.test.d.ts +2 -0
  38. package/dist/extension/integration.test.d.ts.map +1 -0
  39. package/dist/extension/integration.test.js +224 -0
  40. package/dist/extension/integration.test.js.map +1 -0
  41. package/dist/extension/loader.d.ts +17 -0
  42. package/dist/extension/loader.d.ts.map +1 -0
  43. package/dist/extension/loader.js +50 -0
  44. package/dist/extension/loader.js.map +1 -0
  45. package/dist/extension/loader.test.d.ts +2 -0
  46. package/dist/extension/loader.test.d.ts.map +1 -0
  47. package/dist/extension/loader.test.js +180 -0
  48. package/dist/extension/loader.test.js.map +1 -0
  49. package/dist/extension/state-manager.d.ts +21 -0
  50. package/dist/extension/state-manager.d.ts.map +1 -0
  51. package/dist/extension/state-manager.js +43 -0
  52. package/dist/extension/state-manager.js.map +1 -0
  53. package/dist/extension/state-manager.test.d.ts +2 -0
  54. package/dist/extension/state-manager.test.d.ts.map +1 -0
  55. package/dist/extension/state-manager.test.js +100 -0
  56. package/dist/extension/state-manager.test.js.map +1 -0
  57. package/dist/index.d.ts +19 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +19 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/orchestrator/event-queue.d.ts +15 -0
  62. package/dist/orchestrator/event-queue.d.ts.map +1 -0
  63. package/dist/orchestrator/event-queue.js +20 -0
  64. package/dist/orchestrator/event-queue.js.map +1 -0
  65. package/dist/orchestrator/orchestrator.d.ts +41 -0
  66. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  67. package/dist/orchestrator/orchestrator.js +409 -0
  68. package/dist/orchestrator/orchestrator.js.map +1 -0
  69. package/dist/orchestrator/types.d.ts +72 -0
  70. package/dist/orchestrator/types.d.ts.map +1 -0
  71. package/dist/orchestrator/types.js +2 -0
  72. package/dist/orchestrator/types.js.map +1 -0
  73. package/dist/pipeline/registry.d.ts +60 -0
  74. package/dist/pipeline/registry.d.ts.map +1 -0
  75. package/dist/pipeline/registry.js +362 -0
  76. package/dist/pipeline/registry.js.map +1 -0
  77. package/dist/runner/conversation-state.d.ts +8 -0
  78. package/dist/runner/conversation-state.d.ts.map +1 -0
  79. package/dist/runner/conversation-state.js +52 -0
  80. package/dist/runner/conversation-state.js.map +1 -0
  81. package/dist/runner/index.d.ts +4 -0
  82. package/dist/runner/index.d.ts.map +1 -0
  83. package/dist/runner/index.js +18 -0
  84. package/dist/runner/index.js.map +1 -0
  85. package/dist/runner/runtime-restart-signal.d.ts +6 -0
  86. package/dist/runner/runtime-restart-signal.d.ts.map +1 -0
  87. package/dist/runner/runtime-restart-signal.js +18 -0
  88. package/dist/runner/runtime-restart-signal.js.map +1 -0
  89. package/dist/runner/runtime-routing.d.ts +41 -0
  90. package/dist/runner/runtime-routing.d.ts.map +1 -0
  91. package/dist/runner/runtime-routing.js +154 -0
  92. package/dist/runner/runtime-routing.js.map +1 -0
  93. package/dist/runner/runtime-runner-connector-child.d.ts +2 -0
  94. package/dist/runner/runtime-runner-connector-child.d.ts.map +1 -0
  95. package/dist/runner/runtime-runner-connector-child.js +188 -0
  96. package/dist/runner/runtime-runner-connector-child.js.map +1 -0
  97. package/dist/runner/runtime-runner-protocol.d.ts +13 -0
  98. package/dist/runner/runtime-runner-protocol.d.ts.map +1 -0
  99. package/dist/runner/runtime-runner-protocol.js +14 -0
  100. package/dist/runner/runtime-runner-protocol.js.map +1 -0
  101. package/dist/runner/runtime-runner.d.ts +2 -0
  102. package/dist/runner/runtime-runner.d.ts.map +1 -0
  103. package/dist/runner/runtime-runner.js +2738 -0
  104. package/dist/runner/runtime-runner.js.map +1 -0
  105. package/dist/runner/turn-policy.d.ts +8 -0
  106. package/dist/runner/turn-policy.d.ts.map +1 -0
  107. package/dist/runner/turn-policy.js +13 -0
  108. package/dist/runner/turn-policy.js.map +1 -0
  109. package/dist/tools/executor.d.ts +29 -0
  110. package/dist/tools/executor.d.ts.map +1 -0
  111. package/dist/tools/executor.js +124 -0
  112. package/dist/tools/executor.js.map +1 -0
  113. package/dist/tools/naming.d.ts +7 -0
  114. package/dist/tools/naming.d.ts.map +1 -0
  115. package/dist/tools/naming.js +31 -0
  116. package/dist/tools/naming.js.map +1 -0
  117. package/dist/tools/registry.d.ts +18 -0
  118. package/dist/tools/registry.d.ts.map +1 -0
  119. package/dist/tools/registry.js +66 -0
  120. package/dist/tools/registry.js.map +1 -0
  121. package/dist/types.d.ts +388 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +38 -0
  124. package/dist/types.js.map +1 -0
  125. package/dist/workspace/instance-manager.d.ts +19 -0
  126. package/dist/workspace/instance-manager.d.ts.map +1 -0
  127. package/dist/workspace/instance-manager.js +72 -0
  128. package/dist/workspace/instance-manager.js.map +1 -0
  129. package/dist/workspace/paths.d.ts +28 -0
  130. package/dist/workspace/paths.d.ts.map +1 -0
  131. package/dist/workspace/paths.js +108 -0
  132. package/dist/workspace/paths.js.map +1 -0
  133. package/dist/workspace/storage.d.ts +45 -0
  134. package/dist/workspace/storage.d.ts.map +1 -0
  135. package/dist/workspace/storage.js +377 -0
  136. package/dist/workspace/storage.js.map +1 -0
  137. package/package.json +32 -0
@@ -0,0 +1,575 @@
1
+ import { isJsonObject, isKnownKind } from "../types.js";
2
+ import { isObjectRefLikeString, normalizeObjectRef } from "./object-ref.js";
3
+ const SUPPORTED_API_VERSION = "goondan.ai/v1";
4
+ export const LOCAL_PACKAGE_SCOPE = "__local__";
5
+ function resourcePackageScope(resource) {
6
+ return resource.__package ?? LOCAL_PACKAGE_SCOPE;
7
+ }
8
+ export function toScopedResourceIdentity(packageName, kind, name) {
9
+ return `${packageName}|${kind}/${name}`;
10
+ }
11
+ export function validateResources(resources) {
12
+ const errors = [];
13
+ const seenNames = new Set();
14
+ resources.forEach((resource) => {
15
+ const resourcePath = `${resource.__file}#${resource.__docIndex}`;
16
+ const packageScope = resourcePackageScope(resource);
17
+ if (resource.apiVersion !== SUPPORTED_API_VERSION) {
18
+ errors.push({
19
+ code: "E_CONFIG_UNSUPPORTED_API_VERSION",
20
+ message: `Unsupported apiVersion '${resource.apiVersion}'.`,
21
+ path: `${resourcePath}.apiVersion`,
22
+ suggestion: "apiVersion을 goondan.ai/v1로 수정하세요.",
23
+ });
24
+ }
25
+ if (!isKnownKind(resource.kind)) {
26
+ errors.push({
27
+ code: "E_CONFIG_UNKNOWN_KIND",
28
+ message: `Unsupported kind '${resource.kind}'.`,
29
+ path: `${resourcePath}.kind`,
30
+ suggestion: "지원되는 kind(8종)인지 확인하세요.",
31
+ });
32
+ }
33
+ if (resource.metadata.name.trim().length === 0) {
34
+ errors.push({
35
+ code: "E_CONFIG_INVALID_NAME",
36
+ message: "metadata.name must not be empty.",
37
+ path: `${resourcePath}.metadata.name`,
38
+ });
39
+ }
40
+ const identity = toScopedResourceIdentity(packageScope, resource.kind, resource.metadata.name);
41
+ if (seenNames.has(identity)) {
42
+ errors.push({
43
+ code: "E_CONFIG_DUPLICATE_NAME",
44
+ message: `Duplicate resource identity '${resource.kind}/${resource.metadata.name}' in package '${packageScope}'.`,
45
+ path: `${resourcePath}.metadata.name`,
46
+ suggestion: "동일 kind 내 name 고유성을 보장하세요.",
47
+ });
48
+ }
49
+ seenNames.add(identity);
50
+ });
51
+ errors.push(...validatePackageDocumentPlacement(resources));
52
+ const existing = new Set(resources.map((resource) => toScopedResourceIdentity(resourcePackageScope(resource), resource.kind, resource.metadata.name)));
53
+ resources.forEach((resource) => {
54
+ const rootPath = `${resource.__file}#${resource.__docIndex}.spec`;
55
+ const refs = collectObjectRefCandidates(resource.spec, rootPath);
56
+ const fallbackPackage = resourcePackageScope(resource);
57
+ refs.forEach((candidate) => {
58
+ try {
59
+ const normalized = typeof candidate.value === "string"
60
+ ? normalizeObjectRef(candidate.value)
61
+ : normalizeObjectRef(candidate.value);
62
+ const targetPackage = normalized.package ?? fallbackPackage;
63
+ const identity = toScopedResourceIdentity(targetPackage, normalized.kind, normalized.name);
64
+ if (!existing.has(identity)) {
65
+ errors.push({
66
+ code: "E_CONFIG_REF_NOT_FOUND",
67
+ message: `${normalized.kind}/${normalized.name} 참조를 찾을 수 없습니다. (package=${targetPackage})`,
68
+ path: candidate.path,
69
+ suggestion: "kind/name 또는 package 범위를 확인하세요.",
70
+ });
71
+ }
72
+ }
73
+ catch (error) {
74
+ const message = error instanceof Error ? error.message : "Invalid ObjectRef";
75
+ errors.push({
76
+ code: "E_CONFIG_INVALID_REF",
77
+ message,
78
+ path: candidate.path,
79
+ suggestion: "ObjectRef는 Kind/name 또는 { kind, name } 형식이어야 합니다.",
80
+ });
81
+ }
82
+ });
83
+ errors.push(...validateKindMinimal(resource));
84
+ });
85
+ return errors;
86
+ }
87
+ function validateKindMinimal(resource) {
88
+ const errors = [];
89
+ const pathPrefix = `${resource.__file}#${resource.__docIndex}.spec`;
90
+ if (resource.kind === "Tool") {
91
+ if (!isJsonObject(resource.spec) || typeof resource.spec.entry !== "string") {
92
+ errors.push({
93
+ code: "E_CONFIG_SCHEMA_INVALID",
94
+ message: "Tool.spec.entry is required.",
95
+ path: `${pathPrefix}.entry`,
96
+ });
97
+ }
98
+ if (resource.metadata.name.includes("__")) {
99
+ errors.push({
100
+ code: "E_CONFIG_SCHEMA_INVALID",
101
+ message: "Tool metadata.name must not contain '__'.",
102
+ path: `${resource.__file}#${resource.__docIndex}.metadata.name`,
103
+ });
104
+ }
105
+ if (!isJsonObject(resource.spec) || !Array.isArray(resource.spec.exports) || resource.spec.exports.length === 0) {
106
+ errors.push({
107
+ code: "E_CONFIG_SCHEMA_INVALID",
108
+ message: "Tool.spec.exports must have at least one item.",
109
+ path: `${pathPrefix}.exports`,
110
+ });
111
+ }
112
+ else {
113
+ const seenExportNames = new Set();
114
+ resource.spec.exports.forEach((value, index) => {
115
+ if (!isJsonObject(value)) {
116
+ errors.push({
117
+ code: "E_CONFIG_SCHEMA_INVALID",
118
+ message: "Tool.spec.exports[] must be an object.",
119
+ path: `${pathPrefix}.exports[${index}]`,
120
+ });
121
+ return;
122
+ }
123
+ const exportName = value.name;
124
+ if (typeof exportName !== "string" || exportName.trim().length === 0) {
125
+ errors.push({
126
+ code: "E_CONFIG_SCHEMA_INVALID",
127
+ message: "Tool.spec.exports[].name is required.",
128
+ path: `${pathPrefix}.exports[${index}].name`,
129
+ });
130
+ return;
131
+ }
132
+ if (exportName.includes("__")) {
133
+ errors.push({
134
+ code: "E_CONFIG_SCHEMA_INVALID",
135
+ message: "Tool export name must not contain '__'.",
136
+ path: `${pathPrefix}.exports[${index}].name`,
137
+ });
138
+ }
139
+ if (seenExportNames.has(exportName)) {
140
+ errors.push({
141
+ code: "E_CONFIG_SCHEMA_INVALID",
142
+ message: `Duplicate Tool export name '${exportName}'.`,
143
+ path: `${pathPrefix}.exports[${index}].name`,
144
+ });
145
+ }
146
+ seenExportNames.add(exportName);
147
+ if (typeof value.description !== "string" || value.description.trim().length === 0) {
148
+ errors.push({
149
+ code: "E_CONFIG_SCHEMA_INVALID",
150
+ message: "Tool.spec.exports[].description is required.",
151
+ path: `${pathPrefix}.exports[${index}].description`,
152
+ });
153
+ }
154
+ if (!isJsonObject(value.parameters)) {
155
+ errors.push({
156
+ code: "E_CONFIG_SCHEMA_INVALID",
157
+ message: "Tool.spec.exports[].parameters must be an object schema.",
158
+ path: `${pathPrefix}.exports[${index}].parameters`,
159
+ });
160
+ }
161
+ });
162
+ }
163
+ }
164
+ if (resource.kind === "Agent") {
165
+ if (!isJsonObject(resource.spec)) {
166
+ errors.push({
167
+ code: "E_CONFIG_SCHEMA_INVALID",
168
+ message: "Agent.spec must be an object.",
169
+ path: pathPrefix,
170
+ });
171
+ return errors;
172
+ }
173
+ const modelConfig = resource.spec.modelConfig;
174
+ if (!isJsonObject(modelConfig) || !hasObjectRefLike(modelConfig.modelRef)) {
175
+ errors.push({
176
+ code: "E_CONFIG_SCHEMA_INVALID",
177
+ message: "Agent.spec.modelConfig.modelRef is required.",
178
+ path: `${pathPrefix}.modelConfig.modelRef`,
179
+ });
180
+ }
181
+ const prompts = resource.spec.prompts;
182
+ if (!isJsonObject(prompts)) {
183
+ errors.push({
184
+ code: "E_CONFIG_SCHEMA_INVALID",
185
+ message: "Agent.spec.prompts is required.",
186
+ path: `${pathPrefix}.prompts`,
187
+ });
188
+ }
189
+ else {
190
+ const hasSystemPrompt = typeof prompts.systemPrompt === "string" && prompts.systemPrompt.trim().length > 0;
191
+ const hasSystemRef = typeof prompts.systemRef === "string" && prompts.systemRef.trim().length > 0;
192
+ if (!hasSystemPrompt && !hasSystemRef) {
193
+ errors.push({
194
+ code: "E_CONFIG_SCHEMA_INVALID",
195
+ message: "Agent.spec.prompts.systemPrompt or systemRef is required.",
196
+ path: `${pathPrefix}.prompts`,
197
+ });
198
+ }
199
+ }
200
+ const requiredTools = resource.spec.requiredTools;
201
+ if (requiredTools !== undefined) {
202
+ if (!Array.isArray(requiredTools)) {
203
+ errors.push({
204
+ code: "E_CONFIG_SCHEMA_INVALID",
205
+ message: "Agent.spec.requiredTools must be an array of tool names.",
206
+ path: `${pathPrefix}.requiredTools`,
207
+ });
208
+ }
209
+ else {
210
+ const seenRequired = new Set();
211
+ requiredTools.forEach((value, index) => {
212
+ if (typeof value !== "string" || value.trim().length === 0) {
213
+ errors.push({
214
+ code: "E_CONFIG_SCHEMA_INVALID",
215
+ message: "Agent.spec.requiredTools[] must be a non-empty string.",
216
+ path: `${pathPrefix}.requiredTools[${index}]`,
217
+ });
218
+ return;
219
+ }
220
+ const normalized = value.trim();
221
+ if (seenRequired.has(normalized)) {
222
+ errors.push({
223
+ code: "E_CONFIG_SCHEMA_INVALID",
224
+ message: `Duplicate Agent.spec.requiredTools item '${normalized}'.`,
225
+ path: `${pathPrefix}.requiredTools[${index}]`,
226
+ });
227
+ return;
228
+ }
229
+ seenRequired.add(normalized);
230
+ });
231
+ }
232
+ }
233
+ }
234
+ if (resource.kind === "Swarm") {
235
+ if (!isJsonObject(resource.spec)) {
236
+ errors.push({
237
+ code: "E_CONFIG_SCHEMA_INVALID",
238
+ message: "Swarm.spec must be an object.",
239
+ path: pathPrefix,
240
+ });
241
+ return errors;
242
+ }
243
+ if (!hasObjectRefLike(resource.spec.entryAgent)) {
244
+ errors.push({
245
+ code: "E_CONFIG_SCHEMA_INVALID",
246
+ message: "Swarm.spec.entryAgent is required.",
247
+ path: `${pathPrefix}.entryAgent`,
248
+ });
249
+ }
250
+ if (!Array.isArray(resource.spec.agents) || resource.spec.agents.length === 0) {
251
+ errors.push({
252
+ code: "E_CONFIG_SCHEMA_INVALID",
253
+ message: "Swarm.spec.agents must have at least one item.",
254
+ path: `${pathPrefix}.agents`,
255
+ });
256
+ return errors;
257
+ }
258
+ const entryAgentRef = extractNormalizedObjectRef(resource.spec.entryAgent);
259
+ const agentRefs = resource.spec.agents.map((value, index) => ({
260
+ ref: extractNormalizedObjectRef(value),
261
+ path: `${pathPrefix}.agents[${index}]`,
262
+ }));
263
+ agentRefs.forEach((value) => {
264
+ if (!value.ref) {
265
+ errors.push({
266
+ code: "E_CONFIG_SCHEMA_INVALID",
267
+ message: "Swarm.spec.agents[] must be an ObjectRef-like value.",
268
+ path: value.path,
269
+ });
270
+ }
271
+ });
272
+ if (entryAgentRef?.kind === "Agent") {
273
+ const included = agentRefs.some((value) => value.ref ? isSameAgentRef(entryAgentRef, value.ref) : false);
274
+ if (!included) {
275
+ errors.push({
276
+ code: "E_CONFIG_SCHEMA_INVALID",
277
+ message: "Swarm.spec.entryAgent must be included in Swarm.spec.agents.",
278
+ path: `${pathPrefix}.entryAgent`,
279
+ });
280
+ }
281
+ }
282
+ }
283
+ if (resource.kind === "Extension") {
284
+ if (!isJsonObject(resource.spec) || typeof resource.spec.entry !== "string") {
285
+ errors.push({
286
+ code: "E_CONFIG_SCHEMA_INVALID",
287
+ message: "Extension.spec.entry is required.",
288
+ path: `${pathPrefix}.entry`,
289
+ });
290
+ }
291
+ }
292
+ if (resource.kind === "Connector") {
293
+ if (!isJsonObject(resource.spec) || typeof resource.spec.entry !== "string") {
294
+ errors.push({
295
+ code: "E_CONFIG_SCHEMA_INVALID",
296
+ message: "Connector.spec.entry is required.",
297
+ path: `${pathPrefix}.entry`,
298
+ });
299
+ }
300
+ if (!isJsonObject(resource.spec) || !Array.isArray(resource.spec.events) || resource.spec.events.length === 0) {
301
+ errors.push({
302
+ code: "E_CONFIG_SCHEMA_INVALID",
303
+ message: "Connector.spec.events must have at least one item.",
304
+ path: `${pathPrefix}.events`,
305
+ });
306
+ }
307
+ else {
308
+ const seenEventNames = new Set();
309
+ resource.spec.events.forEach((value, index) => {
310
+ if (!isJsonObject(value) || typeof value.name !== "string" || value.name.trim().length === 0) {
311
+ errors.push({
312
+ code: "E_CONFIG_SCHEMA_INVALID",
313
+ message: "Connector.spec.events[].name is required.",
314
+ path: `${pathPrefix}.events[${index}].name`,
315
+ });
316
+ return;
317
+ }
318
+ if (seenEventNames.has(value.name)) {
319
+ errors.push({
320
+ code: "E_CONFIG_SCHEMA_INVALID",
321
+ message: `Duplicate Connector event name '${value.name}'.`,
322
+ path: `${pathPrefix}.events[${index}].name`,
323
+ });
324
+ }
325
+ seenEventNames.add(value.name);
326
+ });
327
+ }
328
+ }
329
+ if (resource.kind === "Connection") {
330
+ if (!isJsonObject(resource.spec) || !hasObjectRefLike(resource.spec.connectorRef)) {
331
+ errors.push({
332
+ code: "E_CONFIG_SCHEMA_INVALID",
333
+ message: "Connection.spec.connectorRef is required.",
334
+ path: `${pathPrefix}.connectorRef`,
335
+ });
336
+ }
337
+ }
338
+ return errors;
339
+ }
340
+ function validatePackageDocumentPlacement(resources) {
341
+ const errors = [];
342
+ const grouped = new Map();
343
+ resources
344
+ .filter((resource) => resource.kind === "Package")
345
+ .forEach((resource) => {
346
+ const scopeKey = resourcePackageScope(resource);
347
+ const groupKey = `${scopeKey}::${resource.__file}`;
348
+ const list = grouped.get(groupKey) ?? [];
349
+ list.push(resource);
350
+ grouped.set(groupKey, list);
351
+ });
352
+ grouped.forEach((group) => {
353
+ if (group.length > 1) {
354
+ group.forEach((resource) => {
355
+ errors.push({
356
+ code: "E_CONFIG_PACKAGE_DOC_DUPLICATED",
357
+ message: "Package document must appear at most once per file.",
358
+ path: `${resource.__file}#${resource.__docIndex}.kind`,
359
+ suggestion: "kind: Package 문서를 하나만 유지하세요.",
360
+ });
361
+ });
362
+ }
363
+ group.forEach((resource) => {
364
+ if (resource.__docIndex !== 0) {
365
+ errors.push({
366
+ code: "E_CONFIG_PACKAGE_DOC_POSITION",
367
+ message: "Package document must be the first YAML document in goondan.yaml.",
368
+ path: `${resource.__file}#${resource.__docIndex}.kind`,
369
+ suggestion: "kind: Package 문서를 첫 번째 문서로 이동하세요.",
370
+ });
371
+ }
372
+ });
373
+ });
374
+ return errors;
375
+ }
376
+ function hasObjectRefLike(value) {
377
+ if (typeof value === "string") {
378
+ return isObjectRefLikeString(value);
379
+ }
380
+ if (!isJsonObject(value)) {
381
+ return false;
382
+ }
383
+ return typeof value.kind === "string" && typeof value.name === "string";
384
+ }
385
+ function extractNormalizedObjectRef(value) {
386
+ if (typeof value === "string") {
387
+ if (!isObjectRefLikeString(value)) {
388
+ return null;
389
+ }
390
+ try {
391
+ return normalizeObjectRef(value);
392
+ }
393
+ catch {
394
+ return null;
395
+ }
396
+ }
397
+ if (!isJsonObject(value)) {
398
+ return null;
399
+ }
400
+ if ("ref" in value) {
401
+ return extractNormalizedObjectRef(value.ref);
402
+ }
403
+ if (typeof value.kind === "string" && typeof value.name === "string") {
404
+ try {
405
+ return normalizeObjectRef({
406
+ kind: value.kind,
407
+ name: value.name,
408
+ package: typeof value.package === "string" ? value.package : undefined,
409
+ });
410
+ }
411
+ catch {
412
+ return null;
413
+ }
414
+ }
415
+ return null;
416
+ }
417
+ function isSameAgentRef(left, right) {
418
+ if (left.kind !== "Agent" || right.kind !== "Agent") {
419
+ return false;
420
+ }
421
+ if (left.name !== right.name) {
422
+ return false;
423
+ }
424
+ if (left.package && right.package) {
425
+ return left.package === right.package;
426
+ }
427
+ return true;
428
+ }
429
+ function collectObjectRefCandidates(value, path, parentKey = "") {
430
+ const refs = [];
431
+ if (Array.isArray(value)) {
432
+ value.forEach((item, index) => {
433
+ const itemPath = `${path}[${index}]`;
434
+ if (parentKey === "tools" || parentKey === "extensions" || parentKey === "agents") {
435
+ if (typeof item === "string" && isObjectRefLikeString(item)) {
436
+ refs.push({ value: item, path: itemPath });
437
+ return;
438
+ }
439
+ }
440
+ refs.push(...collectObjectRefCandidates(item, itemPath, parentKey));
441
+ });
442
+ return refs;
443
+ }
444
+ if (!isJsonObject(value)) {
445
+ return refs;
446
+ }
447
+ const record = value;
448
+ for (const [key, child] of Object.entries(record)) {
449
+ const childPath = `${path}.${key}`;
450
+ if (key === "ref") {
451
+ if (typeof child === "string" && isObjectRefLikeString(child)) {
452
+ refs.push({ value: child, path: childPath });
453
+ }
454
+ else if (isJsonObject(child) && typeof child.kind === "string" && typeof child.name === "string") {
455
+ const objectRef = {
456
+ kind: child.kind,
457
+ name: child.name,
458
+ package: typeof child.package === "string" ? child.package : undefined,
459
+ };
460
+ refs.push({ value: objectRef, path: childPath });
461
+ }
462
+ continue;
463
+ }
464
+ if (key.endsWith("Ref")) {
465
+ if (typeof child === "string" && isObjectRefLikeString(child)) {
466
+ refs.push({ value: child, path: childPath });
467
+ }
468
+ else if (isJsonObject(child) && typeof child.kind === "string" && typeof child.name === "string") {
469
+ const objectRef = {
470
+ kind: child.kind,
471
+ name: child.name,
472
+ package: typeof child.package === "string" ? child.package : undefined,
473
+ };
474
+ refs.push({ value: objectRef, path: childPath });
475
+ }
476
+ continue;
477
+ }
478
+ refs.push(...collectObjectRefCandidates(child, childPath, key));
479
+ }
480
+ return refs;
481
+ }
482
+ export function toRuntimeResource(input) {
483
+ const maybeObject = input.value;
484
+ if (!isJsonObject(maybeObject)) {
485
+ return null;
486
+ }
487
+ const apiVersion = maybeObject.apiVersion;
488
+ const kind = maybeObject.kind;
489
+ const metadata = maybeObject.metadata;
490
+ const spec = maybeObject.spec;
491
+ if (typeof kind !== "string") {
492
+ return null;
493
+ }
494
+ if (!isJsonObject(metadata) || typeof metadata.name !== "string") {
495
+ return null;
496
+ }
497
+ const labels = metadata.labels;
498
+ const annotations = metadata.annotations;
499
+ if (labels !== undefined && !isStringRecord(labels)) {
500
+ return null;
501
+ }
502
+ if (annotations !== undefined && !isStringRecord(annotations)) {
503
+ return null;
504
+ }
505
+ if (typeof apiVersion !== "string") {
506
+ return {
507
+ apiVersion: "",
508
+ kind: isKnownKind(kind) ? kind : "Model",
509
+ metadata: {
510
+ name: metadata.name,
511
+ },
512
+ spec,
513
+ __file: input.file,
514
+ __docIndex: input.docIndex,
515
+ __package: input.packageName,
516
+ __rootDir: input.rootDir,
517
+ };
518
+ }
519
+ if (!isKnownKind(kind)) {
520
+ return {
521
+ apiVersion,
522
+ kind: "Model",
523
+ metadata: {
524
+ name: metadata.name,
525
+ },
526
+ spec,
527
+ __file: input.file,
528
+ __docIndex: input.docIndex,
529
+ __package: input.packageName,
530
+ __rootDir: input.rootDir,
531
+ };
532
+ }
533
+ return {
534
+ apiVersion,
535
+ kind,
536
+ metadata: {
537
+ name: metadata.name,
538
+ labels,
539
+ annotations,
540
+ },
541
+ spec,
542
+ __file: input.file,
543
+ __docIndex: input.docIndex,
544
+ __package: input.packageName,
545
+ __rootDir: input.rootDir,
546
+ };
547
+ }
548
+ function isStringRecord(value) {
549
+ if (!isJsonObject(value)) {
550
+ return false;
551
+ }
552
+ return Object.values(value).every((entry) => typeof entry === "string");
553
+ }
554
+ export function buildResourceIndex(resources) {
555
+ const byIdentity = new Map();
556
+ const byScopedIdentity = new Map();
557
+ const byKind = new Map();
558
+ resources.forEach((resource) => {
559
+ const identity = `${resource.kind}/${resource.metadata.name}`;
560
+ if (!byIdentity.has(identity)) {
561
+ byIdentity.set(identity, resource);
562
+ }
563
+ const scopedIdentity = toScopedResourceIdentity(resourcePackageScope(resource), resource.kind, resource.metadata.name);
564
+ byScopedIdentity.set(scopedIdentity, resource);
565
+ const list = byKind.get(resource.kind) ?? [];
566
+ list.push(resource);
567
+ byKind.set(resource.kind, list);
568
+ });
569
+ return {
570
+ byIdentity,
571
+ byScopedIdentity,
572
+ byKind,
573
+ };
574
+ }
575
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/config/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function splitYamlDocuments(input: string): string[];
2
+ export declare function parseYamlDocument(input: string): unknown;
3
+ export declare function parseYamlDocuments(input: string): unknown[];
4
+ export declare function ensureObject(value: unknown, message: string): Record<string, unknown>;
5
+ //# sourceMappingURL=simple-yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-yaml.d.ts","sourceRoot":"","sources":["../../src/config/simple-yaml.ts"],"names":[],"mappings":"AAaA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB1D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAsBxD;AAoPD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAG3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMrF"}