@inkeep/agents-cli 0.59.3 → 0.59.4

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 (88) hide show
  1. package/dist/agents-cli/package.js +1 -1
  2. package/dist/commands/pull-v4/collector-common.js +128 -0
  3. package/dist/commands/pull-v4/collector-common.js.map +1 -0
  4. package/dist/commands/pull-v4/collector-reference-helpers.js +323 -0
  5. package/dist/commands/pull-v4/collector-reference-helpers.js.map +1 -0
  6. package/dist/commands/pull-v4/component-parser.js +2 -1
  7. package/dist/commands/pull-v4/component-parser.js.map +1 -1
  8. package/dist/commands/pull-v4/file-scope.js +43 -0
  9. package/dist/commands/pull-v4/file-scope.js.map +1 -0
  10. package/dist/commands/pull-v4/generation-resolver.js +305 -0
  11. package/dist/commands/pull-v4/generation-resolver.js.map +1 -0
  12. package/dist/commands/pull-v4/generation-types.js +56 -0
  13. package/dist/commands/pull-v4/generation-types.js.map +1 -0
  14. package/dist/commands/pull-v4/generators/agent-generator.helpers.js +4 -10
  15. package/dist/commands/pull-v4/generators/agent-generator.helpers.js.map +1 -1
  16. package/dist/commands/pull-v4/generators/agent-generator.js +154 -81
  17. package/dist/commands/pull-v4/generators/agent-generator.js.map +1 -1
  18. package/dist/commands/pull-v4/generators/artifact-component-generator.js +48 -27
  19. package/dist/commands/pull-v4/generators/artifact-component-generator.js.map +1 -1
  20. package/dist/commands/pull-v4/generators/context-config-generator.js +147 -129
  21. package/dist/commands/pull-v4/generators/context-config-generator.js.map +1 -1
  22. package/dist/commands/pull-v4/generators/credential-generator.js +36 -14
  23. package/dist/commands/pull-v4/generators/credential-generator.js.map +1 -1
  24. package/dist/commands/pull-v4/generators/data-component-generator.js +55 -19
  25. package/dist/commands/pull-v4/generators/data-component-generator.js.map +1 -1
  26. package/dist/commands/pull-v4/generators/environment-generator.js +29 -33
  27. package/dist/commands/pull-v4/generators/environment-generator.js.map +1 -1
  28. package/dist/commands/pull-v4/generators/environment-settings-generator.js +57 -0
  29. package/dist/commands/pull-v4/generators/environment-settings-generator.js.map +1 -0
  30. package/dist/commands/pull-v4/generators/external-agent-generator.js +51 -23
  31. package/dist/commands/pull-v4/generators/external-agent-generator.js.map +1 -1
  32. package/dist/commands/pull-v4/generators/function-tool-generator.js +50 -14
  33. package/dist/commands/pull-v4/generators/function-tool-generator.js.map +1 -1
  34. package/dist/commands/pull-v4/generators/helpers/agent.js +129 -0
  35. package/dist/commands/pull-v4/generators/helpers/agent.js.map +1 -0
  36. package/dist/commands/pull-v4/generators/helpers/sub-agent.js +65 -0
  37. package/dist/commands/pull-v4/generators/helpers/sub-agent.js.map +1 -0
  38. package/dist/commands/pull-v4/generators/index.js +38 -0
  39. package/dist/commands/pull-v4/generators/index.js.map +1 -0
  40. package/dist/commands/pull-v4/generators/mcp-tool-generator.js +48 -27
  41. package/dist/commands/pull-v4/generators/mcp-tool-generator.js.map +1 -1
  42. package/dist/commands/pull-v4/generators/project-generator.js +144 -110
  43. package/dist/commands/pull-v4/generators/project-generator.js.map +1 -1
  44. package/dist/commands/pull-v4/generators/scheduled-trigger-generator.js +66 -0
  45. package/dist/commands/pull-v4/generators/scheduled-trigger-generator.js.map +1 -0
  46. package/dist/commands/pull-v4/generators/status-component-generator.js +55 -20
  47. package/dist/commands/pull-v4/generators/status-component-generator.js.map +1 -1
  48. package/dist/commands/pull-v4/generators/sub-agent-generator.helpers.js +4 -1
  49. package/dist/commands/pull-v4/generators/sub-agent-generator.helpers.js.map +1 -1
  50. package/dist/commands/pull-v4/generators/sub-agent-generator.js +282 -166
  51. package/dist/commands/pull-v4/generators/sub-agent-generator.js.map +1 -1
  52. package/dist/commands/pull-v4/generators/trigger-generator.js +62 -27
  53. package/dist/commands/pull-v4/generators/trigger-generator.js.map +1 -1
  54. package/dist/commands/pull-v4/import-plan.js +40 -0
  55. package/dist/commands/pull-v4/import-plan.js.map +1 -0
  56. package/dist/commands/pull-v4/introspect/index.js +11 -7
  57. package/dist/commands/pull-v4/introspect/index.js.map +1 -1
  58. package/dist/commands/pull-v4/introspect-generator.js +15 -1218
  59. package/dist/commands/pull-v4/introspect-generator.js.map +1 -1
  60. package/dist/commands/pull-v4/module-merge.js +14 -5
  61. package/dist/commands/pull-v4/module-merge.js.map +1 -1
  62. package/dist/commands/pull-v4/reference-resolution.js +111 -0
  63. package/dist/commands/pull-v4/reference-resolution.js.map +1 -0
  64. package/dist/commands/pull-v4/simple-factory-generator.js +54 -0
  65. package/dist/commands/pull-v4/simple-factory-generator.js.map +1 -0
  66. package/dist/commands/pull-v4/{generators/skill-generator.js → skill.js} +18 -6
  67. package/dist/commands/pull-v4/skill.js.map +1 -0
  68. package/dist/commands/pull-v4/typescript-file-writer.js +78 -0
  69. package/dist/commands/pull-v4/typescript-file-writer.js.map +1 -0
  70. package/dist/commands/pull-v4/utils/code-values.js +64 -0
  71. package/dist/commands/pull-v4/utils/code-values.js.map +1 -0
  72. package/dist/commands/pull-v4/utils/factory-writer.js +128 -0
  73. package/dist/commands/pull-v4/utils/factory-writer.js.map +1 -0
  74. package/dist/commands/pull-v4/utils/index.js +8 -0
  75. package/dist/commands/pull-v4/utils/naming.js +74 -0
  76. package/dist/commands/pull-v4/utils/naming.js.map +1 -0
  77. package/dist/commands/pull-v4/utils/schema-rendering.js +20 -0
  78. package/dist/commands/pull-v4/utils/schema-rendering.js.map +1 -0
  79. package/dist/commands/pull-v4/utils/shared.js +18 -0
  80. package/dist/commands/pull-v4/utils/shared.js.map +1 -0
  81. package/dist/commands/pull-v4/utils/templates.js +58 -0
  82. package/dist/commands/pull-v4/utils/templates.js.map +1 -0
  83. package/package.json +4 -4
  84. package/dist/commands/pull-v4/generators/skill-generator.js.map +0 -1
  85. package/dist/commands/pull-v4/scheduled-trigger-generator.js +0 -38
  86. package/dist/commands/pull-v4/scheduled-trigger-generator.js.map +0 -1
  87. package/dist/commands/pull-v4/utils.js +0 -320
  88. package/dist/commands/pull-v4/utils.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  //#region package.json
2
2
  var name = "@inkeep/agents-cli";
3
- var version = "0.59.3";
3
+ var version = "0.59.4";
4
4
 
5
5
  //#endregion
6
6
  export { name, version };
@@ -0,0 +1,128 @@
1
+ import { isPlainObject } from "./utils/shared.js";
2
+ import { collectTemplateVariableNames } from "./utils/templates.js";
3
+ import { toCamelCase } from "./utils/naming.js";
4
+ import "./utils/index.js";
5
+ import { Node } from "ts-morph";
6
+
7
+ //#region src/commands/pull-v4/collector-common.ts
8
+ function asRecord(value) {
9
+ if (!value || typeof value !== "object" || Array.isArray(value)) return;
10
+ return value;
11
+ }
12
+ function getObjectKeys(value) {
13
+ const record = asRecord(value);
14
+ if (!record) return [];
15
+ return Object.keys(record);
16
+ }
17
+ function stripExtension(fileName) {
18
+ return fileName.replace(/\.[^.]+$/, "");
19
+ }
20
+ function extractReferenceIds(value) {
21
+ if (Array.isArray(value)) return value.map((item) => {
22
+ if (typeof item === "string") return item;
23
+ const record$1 = asRecord(item);
24
+ if (record$1 && typeof record$1.id === "string") return record$1.id;
25
+ }).filter((id) => Boolean(id));
26
+ const record = asRecord(value);
27
+ if (!record) return [];
28
+ return Object.keys(record);
29
+ }
30
+ function resolveStatusComponentId(statusComponentData) {
31
+ if (typeof statusComponentData.id === "string") return statusComponentData.id;
32
+ if (typeof statusComponentData.type === "string") return statusComponentData.type;
33
+ if (typeof statusComponentData.name === "string") return statusComponentData.name;
34
+ }
35
+ function collectEnvironmentCredentialReferenceIds(project) {
36
+ const credentialReferenceIds = /* @__PURE__ */ new Set();
37
+ for (const toolData of Object.values(project.tools ?? {})) {
38
+ const toolRecord = asRecord(toolData);
39
+ const credentialReferenceId = toolRecord && typeof toolRecord.credentialReferenceId === "string" ? toolRecord.credentialReferenceId : void 0;
40
+ const hasInlineCredential = toolRecord?.credential !== void 0 && toolRecord?.credential !== null;
41
+ if (credentialReferenceId && !hasInlineCredential) credentialReferenceIds.add(credentialReferenceId);
42
+ }
43
+ return [...credentialReferenceIds];
44
+ }
45
+ function collectReferencedSubAgentComponentIds(context, componentProperty) {
46
+ const componentIds = /* @__PURE__ */ new Set();
47
+ for (const agentId of context.completeAgentIds) {
48
+ const agentData = context.project.agents?.[agentId];
49
+ const subAgents = asRecord(agentData?.subAgents);
50
+ if (!subAgents) continue;
51
+ for (const subAgentData of Object.values(subAgents)) {
52
+ const subAgentRecord = asRecord(subAgentData);
53
+ if (!subAgentRecord) continue;
54
+ for (const componentId of extractReferenceIds(subAgentRecord[componentProperty])) componentIds.add(componentId);
55
+ }
56
+ }
57
+ return [...componentIds];
58
+ }
59
+ function extractContextConfigData(agentData) {
60
+ const contextConfig = typeof agentData.contextConfig === "string" ? { id: agentData.contextConfig } : asRecord(agentData.contextConfig);
61
+ const contextConfigId = contextConfig && typeof contextConfig.id === "string" ? contextConfig.id : void 0;
62
+ if (!contextConfigId || !contextConfig) return;
63
+ return {
64
+ id: contextConfigId,
65
+ value: contextConfig
66
+ };
67
+ }
68
+ function inferHeadersReferenceFromContextConfig(contextConfig, contextConfigId) {
69
+ const headers = contextConfig.value.headers;
70
+ if (typeof headers === "string" && headers.length > 0) return toCamelCase(headers);
71
+ const headersRecord = asRecord(headers);
72
+ if (headersRecord) {
73
+ if (typeof headersRecord.id === "string" && headersRecord.id) return toCamelCase(headersRecord.id);
74
+ if (typeof headersRecord.name === "string" && headersRecord.name) return toCamelCase(headersRecord.name);
75
+ }
76
+ if (isPlainObject(contextConfig.value.headersSchema)) return `${toCamelCase(contextConfigId)}Headers`;
77
+ }
78
+ function collectTemplateVariablesFromValues(values) {
79
+ const variables = [];
80
+ for (const value of values) {
81
+ if (typeof value !== "string") continue;
82
+ variables.push(...collectTemplateVariableNames(value));
83
+ }
84
+ return variables;
85
+ }
86
+ function collectHeaderTemplateVariablesFromAgentPrompts(agentData) {
87
+ const variables = /* @__PURE__ */ new Set();
88
+ addHeaderTemplateVariablesFromString(typeof agentData.prompt === "string" ? agentData.prompt : void 0, variables);
89
+ const statusUpdates = asRecord(agentData.statusUpdates);
90
+ addHeaderTemplateVariablesFromString(typeof statusUpdates?.prompt === "string" ? statusUpdates.prompt : void 0, variables);
91
+ const subAgents = asRecord(agentData.subAgents);
92
+ if (!subAgents) return variables;
93
+ for (const subAgentData of Object.values(subAgents)) {
94
+ const subAgent = asRecord(subAgentData);
95
+ addHeaderTemplateVariablesFromString(typeof subAgent?.prompt === "string" ? subAgent.prompt : void 0, variables);
96
+ }
97
+ return variables;
98
+ }
99
+ function applyPromptHeaderTemplateSchema(contextConfig, headerTemplateVariables) {
100
+ if (!headerTemplateVariables.size) return contextConfig;
101
+ if (typeof contextConfig.headers === "string" || isPlainObject(contextConfig.headers) || isPlainObject(contextConfig.headersSchema)) return contextConfig;
102
+ const variableNames = [...headerTemplateVariables].sort();
103
+ const properties = Object.fromEntries(variableNames.map((variableName) => [variableName, { type: "string" }]));
104
+ return {
105
+ ...contextConfig,
106
+ headersSchema: {
107
+ type: "object",
108
+ properties,
109
+ required: variableNames,
110
+ additionalProperties: false
111
+ }
112
+ };
113
+ }
114
+ function addHeaderTemplateVariablesFromString(value, variables) {
115
+ if (typeof value !== "string") return;
116
+ for (const variableName of collectTemplateVariableNames(value)) {
117
+ if (!variableName.startsWith("headers.")) continue;
118
+ const headerPath = variableName.slice(8);
119
+ if (headerPath) variables.add(headerPath);
120
+ }
121
+ }
122
+ function isContextConfigInitializer(node) {
123
+ return Node.isCallExpression(node) && Node.isIdentifier(node.getExpression()) && node.getExpression().getText() === "contextConfig";
124
+ }
125
+
126
+ //#endregion
127
+ export { applyPromptHeaderTemplateSchema, asRecord, collectEnvironmentCredentialReferenceIds, collectHeaderTemplateVariablesFromAgentPrompts, collectReferencedSubAgentComponentIds, collectTemplateVariablesFromValues, extractContextConfigData, extractReferenceIds, getObjectKeys, inferHeadersReferenceFromContextConfig, isContextConfigInitializer, resolveStatusComponentId, stripExtension };
128
+ //# sourceMappingURL=collector-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector-common.js","names":["record"],"sources":["../../../src/commands/pull-v4/collector-common.ts"],"sourcesContent":["import { type CallExpression, Node } from 'ts-morph';\nimport type { GenerationContext } from './generation-types';\nimport { collectTemplateVariableNames, isPlainObject, toCamelCase } from './utils';\n\nexport function asRecord(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return;\n }\n return value as Record<string, unknown>;\n}\n\nexport function getObjectKeys(value: unknown): string[] {\n const record = asRecord(value);\n if (!record) {\n return [];\n }\n return Object.keys(record);\n}\n\nexport function stripExtension(fileName: string): string {\n return fileName.replace(/\\.[^.]+$/, '');\n}\n\nexport function extractReferenceIds(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value\n .map((item) => {\n if (typeof item === 'string') {\n return item;\n }\n const record = asRecord(item);\n if (record && typeof record.id === 'string') {\n return record.id;\n }\n return undefined;\n })\n .filter((id): id is string => Boolean(id));\n }\n\n const record = asRecord(value);\n if (!record) {\n return [];\n }\n\n return Object.keys(record);\n}\n\nexport function resolveStatusComponentId(\n statusComponentData: Record<string, unknown>\n): string | undefined {\n if (typeof statusComponentData.id === 'string') {\n return statusComponentData.id;\n }\n if (typeof statusComponentData.type === 'string') {\n return statusComponentData.type;\n }\n if (typeof statusComponentData.name === 'string') {\n return statusComponentData.name;\n }\n return undefined;\n}\n\nexport function collectEnvironmentCredentialReferenceIds(\n project: GenerationContext['project']\n): string[] {\n const credentialReferenceIds = new Set<string>();\n\n for (const toolData of Object.values(project.tools ?? {})) {\n const toolRecord = asRecord(toolData);\n const credentialReferenceId =\n toolRecord && typeof toolRecord.credentialReferenceId === 'string'\n ? toolRecord.credentialReferenceId\n : undefined;\n const hasInlineCredential =\n toolRecord?.credential !== undefined && toolRecord?.credential !== null;\n\n if (credentialReferenceId && !hasInlineCredential) {\n credentialReferenceIds.add(credentialReferenceId);\n }\n }\n\n return [...credentialReferenceIds];\n}\n\nexport function collectReferencedSubAgentComponentIds(\n context: GenerationContext,\n componentProperty: 'dataComponents' | 'artifactComponents'\n): string[] {\n const componentIds = new Set<string>();\n\n for (const agentId of context.completeAgentIds) {\n const agentData = context.project.agents?.[agentId];\n const subAgents = asRecord(agentData?.subAgents);\n if (!subAgents) {\n continue;\n }\n\n for (const subAgentData of Object.values(subAgents)) {\n const subAgentRecord = asRecord(subAgentData);\n if (!subAgentRecord) {\n continue;\n }\n\n for (const componentId of extractReferenceIds(subAgentRecord[componentProperty])) {\n componentIds.add(componentId);\n }\n }\n }\n\n return [...componentIds];\n}\n\nexport function extractContextConfigData(\n agentData: Record<string, unknown>\n): { id: string; value: Record<string, unknown> } | undefined {\n const contextConfig =\n typeof agentData.contextConfig === 'string'\n ? { id: agentData.contextConfig }\n : asRecord(agentData.contextConfig);\n const contextConfigId =\n contextConfig && typeof contextConfig.id === 'string' ? contextConfig.id : undefined;\n if (!contextConfigId || !contextConfig) {\n return;\n }\n\n return {\n id: contextConfigId,\n value: contextConfig,\n };\n}\n\nexport function inferHeadersReferenceFromContextConfig(\n contextConfig: { id: string; value: Record<string, unknown> },\n contextConfigId: string\n): string | undefined {\n const headers = contextConfig.value.headers;\n if (typeof headers === 'string' && headers.length > 0) {\n return toCamelCase(headers);\n }\n\n const headersRecord = asRecord(headers);\n if (headersRecord) {\n if (typeof headersRecord.id === 'string' && headersRecord.id) {\n return toCamelCase(headersRecord.id);\n }\n if (typeof headersRecord.name === 'string' && headersRecord.name) {\n return toCamelCase(headersRecord.name);\n }\n }\n\n if (isPlainObject(contextConfig.value.headersSchema)) {\n return `${toCamelCase(contextConfigId)}Headers`;\n }\n\n return;\n}\n\nexport function collectTemplateVariablesFromValues(values: Array<string | undefined>): string[] {\n const variables: string[] = [];\n for (const value of values) {\n if (typeof value !== 'string') {\n continue;\n }\n variables.push(...collectTemplateVariableNames(value));\n }\n return variables;\n}\n\nexport function collectHeaderTemplateVariablesFromAgentPrompts(\n agentData: Record<string, unknown>\n): Set<string> {\n const variables = new Set<string>();\n addHeaderTemplateVariablesFromString(\n typeof agentData.prompt === 'string' ? agentData.prompt : undefined,\n variables\n );\n\n const statusUpdates = asRecord(agentData.statusUpdates);\n addHeaderTemplateVariablesFromString(\n typeof statusUpdates?.prompt === 'string' ? statusUpdates.prompt : undefined,\n variables\n );\n\n const subAgents = asRecord(agentData.subAgents);\n if (!subAgents) {\n return variables;\n }\n\n for (const subAgentData of Object.values(subAgents)) {\n const subAgent = asRecord(subAgentData);\n addHeaderTemplateVariablesFromString(\n typeof subAgent?.prompt === 'string' ? subAgent.prompt : undefined,\n variables\n );\n }\n\n return variables;\n}\n\nexport function applyPromptHeaderTemplateSchema(\n contextConfig: Record<string, unknown>,\n headerTemplateVariables: Set<string>\n): Record<string, unknown> {\n if (!headerTemplateVariables.size) {\n return contextConfig;\n }\n\n const hasExplicitHeadersReference =\n typeof contextConfig.headers === 'string' || isPlainObject(contextConfig.headers);\n if (hasExplicitHeadersReference || isPlainObject(contextConfig.headersSchema)) {\n return contextConfig;\n }\n\n const variableNames = [...headerTemplateVariables].sort();\n const properties = Object.fromEntries(\n variableNames.map((variableName) => [variableName, { type: 'string' }])\n );\n\n return {\n ...contextConfig,\n headersSchema: {\n type: 'object',\n properties,\n required: variableNames,\n additionalProperties: false,\n },\n };\n}\n\nfunction addHeaderTemplateVariablesFromString(\n value: string | undefined,\n variables: Set<string>\n): void {\n if (typeof value !== 'string') {\n return;\n }\n\n for (const variableName of collectTemplateVariableNames(value)) {\n if (!variableName.startsWith('headers.')) {\n continue;\n }\n const headerPath = variableName.slice('headers.'.length);\n if (headerPath) {\n variables.add(headerPath);\n }\n }\n}\n\nexport function isContextConfigInitializer(node: Node): node is CallExpression {\n return (\n Node.isCallExpression(node) &&\n Node.isIdentifier(node.getExpression()) &&\n node.getExpression().getText() === 'contextConfig'\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,323 @@
1
+ import { buildComponentFileName, toCamelCase, toCredentialReferenceName, toKebabCase, toToolReferenceName } from "./utils/naming.js";
2
+ import "./utils/index.js";
3
+ import { asRecord, collectTemplateVariablesFromValues, extractContextConfigData, extractReferenceIds, getObjectKeys, inferHeadersReferenceFromContextConfig, isContextConfigInitializer, stripExtension } from "./collector-common.js";
4
+ import { normalizeFilePath, resolveProjectFilePath, resolveToolModulePath } from "./generation-resolver.js";
5
+ import { assignComponentReferenceOverrideForProject } from "./generation-types.js";
6
+ import { readFileScope } from "./file-scope.js";
7
+ import { basename, join } from "node:path";
8
+ import { Node } from "ts-morph";
9
+
10
+ //#region src/commands/pull-v4/collector-reference-helpers.ts
11
+ function collectContextConfigCredentialReferenceOverrides(context, contextConfigData) {
12
+ const contextVariables = asRecord(contextConfigData.contextVariables);
13
+ if (!contextVariables) return;
14
+ const overrides = {};
15
+ for (const contextVariable of Object.values(contextVariables)) {
16
+ const contextVariableRecord = asRecord(contextVariable);
17
+ const credentialReferenceId = contextVariableRecord && typeof contextVariableRecord.credentialReferenceId === "string" ? contextVariableRecord.credentialReferenceId : void 0;
18
+ if (!credentialReferenceId) continue;
19
+ const credentialReferenceName = context.resolver.getCredentialReferenceName(credentialReferenceId);
20
+ if (credentialReferenceName) overrides[credentialReferenceId] = credentialReferenceName;
21
+ }
22
+ return Object.keys(overrides).length ? overrides : void 0;
23
+ }
24
+ function collectContextConfigCredentialReferencePathOverrides(context, contextConfigData) {
25
+ const contextVariables = asRecord(contextConfigData.contextVariables);
26
+ if (!contextVariables) return;
27
+ const overrides = {};
28
+ for (const contextVariable of Object.values(contextVariables)) {
29
+ const contextVariableRecord = asRecord(contextVariable);
30
+ const credentialReferenceId = contextVariableRecord && typeof contextVariableRecord.credentialReferenceId === "string" ? contextVariableRecord.credentialReferenceId : void 0;
31
+ if (!credentialReferenceId) continue;
32
+ const credentialReferencePath = context.resolver.getCredentialReferencePath(credentialReferenceId);
33
+ if (credentialReferencePath) overrides[credentialReferenceId] = credentialReferencePath;
34
+ }
35
+ return Object.keys(overrides).length ? overrides : void 0;
36
+ }
37
+ function collectContextConfigHeadersReferenceOverride(context, contextConfigId, filePath) {
38
+ if (!context.existingComponentRegistry) return;
39
+ const fileScope = readFileScope(filePath);
40
+ if (!fileScope) return;
41
+ const { sourceFile } = fileScope;
42
+ for (const declaration of sourceFile.getVariableDeclarations()) {
43
+ const initializer = declaration.getInitializer();
44
+ if (!initializer || !isContextConfigInitializer(initializer)) continue;
45
+ const [configArg] = initializer.getArguments();
46
+ if (!configArg || !Node.isObjectLiteralExpression(configArg)) continue;
47
+ const idProperty = configArg.getProperty("id");
48
+ if (!idProperty || !Node.isPropertyAssignment(idProperty)) continue;
49
+ const idInitializer = idProperty.getInitializer();
50
+ if (!idInitializer || !Node.isStringLiteral(idInitializer)) continue;
51
+ if (idInitializer.getLiteralValue() !== contextConfigId) continue;
52
+ const headersProperty = configArg.getProperty("headers");
53
+ if (!headersProperty) return;
54
+ if (Node.isShorthandPropertyAssignment(headersProperty)) return headersProperty.getName();
55
+ if (!Node.isPropertyAssignment(headersProperty)) return;
56
+ const headersInitializer = headersProperty.getInitializer();
57
+ if (!headersInitializer) return;
58
+ if (Node.isIdentifier(headersInitializer)) return headersInitializer.getText();
59
+ if (Node.isAsExpression(headersInitializer)) {
60
+ const valueExpression = headersInitializer.getExpression();
61
+ if (Node.isIdentifier(valueExpression)) return valueExpression.getText();
62
+ }
63
+ return;
64
+ }
65
+ }
66
+ function collectSubAgentReferenceOverrides(context, agentData, agentFilePath) {
67
+ const subAgentIds = new Set(extractReferenceIds(agentData.subAgents));
68
+ if (typeof agentData.defaultSubAgentId === "string" && agentData.defaultSubAgentId.length > 0) subAgentIds.add(agentData.defaultSubAgentId);
69
+ if (!subAgentIds.size) return {};
70
+ const overrides = {};
71
+ for (const subAgentId of subAgentIds) {
72
+ const generatedReferenceName = context.resolver.getSubAgentReferenceName(subAgentId);
73
+ if (generatedReferenceName) overrides[subAgentId] = { name: generatedReferenceName };
74
+ const existingSubAgent = context.resolver.getExistingComponent(subAgentId, "subAgents");
75
+ if (!existingSubAgent?.name) continue;
76
+ overrides[subAgentId] = normalizeFilePath(resolveProjectFilePath(context.paths.projectRoot, existingSubAgent.filePath)) === normalizeFilePath(agentFilePath) ? {
77
+ name: existingSubAgent.name,
78
+ local: true
79
+ } : { name: existingSubAgent.name };
80
+ }
81
+ return overrides;
82
+ }
83
+ function collectSubAgentReferencePathOverrides(context, agentData) {
84
+ const subAgentIds = new Set(extractReferenceIds(agentData.subAgents));
85
+ if (typeof agentData.defaultSubAgentId === "string" && agentData.defaultSubAgentId.length > 0) subAgentIds.add(agentData.defaultSubAgentId);
86
+ if (!subAgentIds.size) return {};
87
+ const subAgents = asRecord(agentData.subAgents);
88
+ const overrides = {};
89
+ for (const subAgentId of subAgentIds) {
90
+ const fallbackReferencePath = context.resolver.getSubAgentReferencePath(subAgentId);
91
+ const subAgentData = asRecord(subAgents?.[subAgentId]);
92
+ const subAgentName = typeof subAgentData?.name === "string" ? subAgentData.name : void 0;
93
+ overrides[subAgentId] = stripExtension(basename(context.resolver.resolveOutputFilePath("subAgents", subAgentId, join(context.paths.agentsDir, "sub-agents", fallbackReferencePath ? `${fallbackReferencePath}.ts` : buildComponentFileName(subAgentId, subAgentName)))));
94
+ }
95
+ return overrides;
96
+ }
97
+ function collectContextTemplateReferences(context, agentData, targetFilePath, promptValues) {
98
+ const contextConfig = extractContextConfigData(agentData);
99
+ const contextConfigId = contextConfig?.id;
100
+ if (!contextConfigId) return;
101
+ const contextConfigFilePath = context.resolver.resolveOutputFilePath("contextConfigs", contextConfigId, join(context.paths.contextConfigsDir, `${contextConfigId}.ts`));
102
+ const isLocal = normalizeFilePath(contextConfigFilePath) === normalizeFilePath(targetFilePath);
103
+ const contextConfigReference = collectAgentContextConfigReferenceOverride(context, agentData, targetFilePath) ?? (isLocal ? {
104
+ name: toCamelCase(contextConfigId),
105
+ local: true
106
+ } : { name: toCamelCase(contextConfigId) });
107
+ const hasHeadersTemplateVariables = collectTemplateVariablesFromValues(promptValues).some((variableName) => variableName.startsWith("headers."));
108
+ let headersReferenceName = collectContextConfigHeadersReferenceOverride(context, contextConfigId, contextConfigFilePath) ?? inferHeadersReferenceFromContextConfig(contextConfig, contextConfigId);
109
+ if (!headersReferenceName && hasHeadersTemplateVariables) headersReferenceName = `${toCamelCase(contextConfigId)}Headers`;
110
+ return {
111
+ contextConfigId,
112
+ contextConfigReference,
113
+ ...headersReferenceName && { contextConfigHeadersReference: isLocal ? {
114
+ name: headersReferenceName,
115
+ local: true
116
+ } : { name: headersReferenceName } }
117
+ };
118
+ }
119
+ function collectSubAgentDependencyReferenceOverrides(context, subAgentData) {
120
+ const registry = context.existingComponentRegistry;
121
+ const referenceOverrides = {};
122
+ const referencePathOverrides = {};
123
+ const assignSubAgentReferenceOverrides = (subAgentId) => {
124
+ const subAgentReferenceName = context.resolver.getSubAgentReferenceName(subAgentId);
125
+ if (subAgentReferenceName) assignReferenceOverride(referenceOverrides, "subAgents", subAgentId, subAgentReferenceName);
126
+ const subAgentReferencePath = context.resolver.getSubAgentReferencePath(subAgentId);
127
+ if (subAgentReferencePath) assignReferencePathOverride(referencePathOverrides, "subAgents", subAgentId, subAgentReferencePath);
128
+ };
129
+ const assignAgentReferenceOverrides = (agentId) => {
130
+ const agentReferenceName = context.resolver.getAgentReferenceName(agentId);
131
+ if (agentReferenceName) assignReferenceOverride(referenceOverrides, "agents", agentId, agentReferenceName);
132
+ const agentReferencePath = context.resolver.getAgentReferencePath(agentId);
133
+ if (agentReferencePath) assignReferencePathOverride(referencePathOverrides, "agents", agentId, agentReferencePath);
134
+ };
135
+ const assignExternalAgentReferenceOverrides = (externalAgentId) => {
136
+ const externalAgentReferenceName = context.resolver.getExternalAgentReferenceName(externalAgentId);
137
+ if (externalAgentReferenceName) assignReferenceOverride(referenceOverrides, "externalAgents", externalAgentId, externalAgentReferenceName);
138
+ const externalAgentReferencePath = context.resolver.getExternalAgentReferencePath(externalAgentId);
139
+ if (externalAgentReferencePath) assignReferencePathOverride(referencePathOverrides, "externalAgents", externalAgentId, externalAgentReferencePath);
140
+ };
141
+ const canUse = Array.isArray(subAgentData.canUse) ? subAgentData.canUse : [];
142
+ for (const item of canUse) {
143
+ const canUseRecord = asRecord(item);
144
+ const toolId = typeof item === "string" ? item : canUseRecord && typeof canUseRecord.toolId === "string" ? canUseRecord.toolId : void 0;
145
+ if (!toolId) continue;
146
+ assignReferenceOverride(referenceOverrides, "tools", toolId, context.resolver.getToolReferenceName(toolId) ?? toToolReferenceName(toolId));
147
+ assignReferencePathOverride(referencePathOverrides, "tools", toolId, context.resolver.getToolReferencePath(toolId) ?? toKebabCase(toolId));
148
+ if (registry) {
149
+ assignComponentReferenceOverride(registry, referenceOverrides, "tools", toolId, "tools");
150
+ assignComponentReferenceOverride(registry, referenceOverrides, "tools", toolId, "functionTools");
151
+ }
152
+ }
153
+ const canDelegateTo = Array.isArray(subAgentData.canDelegateTo) ? subAgentData.canDelegateTo : [];
154
+ for (const item of canDelegateTo) {
155
+ if (typeof item === "string") {
156
+ assignSubAgentReferenceOverrides(item);
157
+ assignAgentReferenceOverrides(item);
158
+ assignExternalAgentReferenceOverrides(item);
159
+ continue;
160
+ }
161
+ const canDelegateRecord = asRecord(item);
162
+ if (typeof canDelegateRecord?.subAgentId === "string") assignSubAgentReferenceOverrides(canDelegateRecord.subAgentId);
163
+ if (typeof canDelegateRecord?.agentId === "string") assignAgentReferenceOverrides(canDelegateRecord.agentId);
164
+ if (typeof canDelegateRecord?.externalAgentId === "string") assignExternalAgentReferenceOverrides(canDelegateRecord.externalAgentId);
165
+ }
166
+ const canTransferTo = extractReferenceIds(subAgentData.canTransferTo);
167
+ for (const transferTargetId of canTransferTo) {
168
+ assignSubAgentReferenceOverrides(transferTargetId);
169
+ assignAgentReferenceOverrides(transferTargetId);
170
+ assignExternalAgentReferenceOverrides(transferTargetId);
171
+ }
172
+ if (registry) {
173
+ for (const item of canDelegateTo) {
174
+ if (typeof item === "string") {
175
+ assignFirstMatchingComponentReferenceOverride(registry, referenceOverrides, item, [
176
+ ["subAgents", "subAgents"],
177
+ ["agents", "agents"],
178
+ ["externalAgents", "externalAgents"]
179
+ ]);
180
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "subAgents", item, "subAgents");
181
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "agents", item, "agents");
182
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "externalAgents", item, "externalAgents");
183
+ continue;
184
+ }
185
+ const canDelegateRecord = asRecord(item);
186
+ if (!canDelegateRecord) continue;
187
+ if (typeof canDelegateRecord.subAgentId === "string") {
188
+ assignComponentReferenceOverride(registry, referenceOverrides, "subAgents", canDelegateRecord.subAgentId, "subAgents");
189
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "subAgents", canDelegateRecord.subAgentId, "subAgents");
190
+ continue;
191
+ }
192
+ if (typeof canDelegateRecord.agentId === "string") {
193
+ assignComponentReferenceOverride(registry, referenceOverrides, "agents", canDelegateRecord.agentId, "agents");
194
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "agents", canDelegateRecord.agentId, "agents");
195
+ continue;
196
+ }
197
+ if (typeof canDelegateRecord.externalAgentId === "string") {
198
+ assignComponentReferenceOverride(registry, referenceOverrides, "externalAgents", canDelegateRecord.externalAgentId, "externalAgents");
199
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "externalAgents", canDelegateRecord.externalAgentId, "externalAgents");
200
+ }
201
+ }
202
+ for (const transferTargetId of canTransferTo) {
203
+ assignFirstMatchingComponentReferenceOverride(registry, referenceOverrides, transferTargetId, [
204
+ ["subAgents", "subAgents"],
205
+ ["agents", "agents"],
206
+ ["externalAgents", "externalAgents"]
207
+ ]);
208
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "subAgents", transferTargetId, "subAgents");
209
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "agents", transferTargetId, "agents");
210
+ assignComponentReferencePathOverride(registry, referencePathOverrides, "externalAgents", transferTargetId, "externalAgents");
211
+ }
212
+ const dataComponentIds = extractReferenceIds(subAgentData.dataComponents);
213
+ for (const dataComponentId of dataComponentIds) assignComponentReferenceOverride(registry, referenceOverrides, "dataComponents", dataComponentId, "dataComponents");
214
+ const artifactComponentIds = extractReferenceIds(subAgentData.artifactComponents);
215
+ for (const artifactComponentId of artifactComponentIds) assignComponentReferenceOverride(registry, referenceOverrides, "artifactComponents", artifactComponentId, "artifactComponents");
216
+ }
217
+ return Object.keys(referenceOverrides).length > 0 || Object.keys(referencePathOverrides).length > 0 ? {
218
+ ...Object.keys(referenceOverrides).length > 0 && { referenceOverrides },
219
+ ...Object.keys(referencePathOverrides).length > 0 && { referencePathOverrides }
220
+ } : void 0;
221
+ }
222
+ function collectProjectReferenceOverrides(context) {
223
+ const overrides = {};
224
+ addProjectNameBasedReferenceOverrides(context, overrides);
225
+ const registry = context.existingComponentRegistry;
226
+ if (!registry) return Object.keys(overrides).length > 0 ? overrides : void 0;
227
+ for (const agentId of context.completeAgentIds) assignComponentReferenceOverrideForProject(registry, overrides, "agents", agentId, "agents");
228
+ const toolIds = getObjectKeys(context.project.tools);
229
+ for (const toolId of toolIds) {
230
+ if (assignComponentReferenceOverrideForProject(registry, overrides, "tools", toolId, "functionTools")) continue;
231
+ assignComponentReferenceOverrideForProject(registry, overrides, "tools", toolId, "tools");
232
+ }
233
+ const externalAgentIds = getObjectKeys(context.project.externalAgents);
234
+ for (const externalAgentId of externalAgentIds) assignComponentReferenceOverrideForProject(registry, overrides, "externalAgents", externalAgentId, "externalAgents");
235
+ const dataComponentIds = getObjectKeys(context.project.dataComponents);
236
+ for (const dataComponentId of dataComponentIds) assignComponentReferenceOverrideForProject(registry, overrides, "dataComponents", dataComponentId, "dataComponents");
237
+ const artifactComponentIds = getObjectKeys(context.project.artifactComponents);
238
+ for (const artifactComponentId of artifactComponentIds) assignComponentReferenceOverrideForProject(registry, overrides, "artifactComponents", artifactComponentId, "artifactComponents");
239
+ const credentialIds = getObjectKeys(context.project.credentialReferences);
240
+ for (const credentialId of credentialIds) assignComponentReferenceOverrideForProject(registry, overrides, "credentialReferences", credentialId, "credentials");
241
+ return Object.keys(overrides).length > 0 ? overrides : void 0;
242
+ }
243
+ function collectProjectReferencePathOverrides(context) {
244
+ const overrides = {};
245
+ if (context.project.agents) for (const agentId of context.completeAgentIds) {
246
+ const referencePath = context.resolver.getAgentReferencePath(agentId);
247
+ if (referencePath) assignProjectReferenceOverride(overrides, "agents", agentId, referencePath);
248
+ }
249
+ for (const toolId of getObjectKeys(context.project.tools)) {
250
+ const referencePath = context.resolver.getToolReferencePath(toolId);
251
+ if (referencePath) assignProjectReferenceOverride(overrides, "tools", toolId, referencePath);
252
+ }
253
+ for (const credentialId of getObjectKeys(context.project.credentialReferences)) {
254
+ const referencePath = context.resolver.getCredentialReferencePath(credentialId);
255
+ if (referencePath) assignProjectReferenceOverride(overrides, "credentialReferences", credentialId, referencePath);
256
+ }
257
+ for (const externalAgentId of getObjectKeys(context.project.externalAgents)) {
258
+ const referencePath = context.resolver.getExternalAgentReferencePath(externalAgentId);
259
+ if (referencePath) assignProjectReferenceOverride(overrides, "externalAgents", externalAgentId, referencePath);
260
+ }
261
+ return Object.keys(overrides).length > 0 ? overrides : void 0;
262
+ }
263
+ function collectAgentContextConfigReferenceOverride(context, agentData, agentFilePath) {
264
+ const contextConfigId = extractContextConfigData(agentData)?.id;
265
+ if (!contextConfigId) return;
266
+ const existingContextConfig = context.resolver.getExistingComponent(contextConfigId, "contextConfigs");
267
+ if (!existingContextConfig?.name) return;
268
+ return normalizeFilePath(resolveProjectFilePath(context.paths.projectRoot, existingContextConfig.filePath)) === normalizeFilePath(agentFilePath) ? {
269
+ name: existingContextConfig.name,
270
+ local: true
271
+ } : { name: existingContextConfig.name };
272
+ }
273
+ function addProjectNameBasedReferenceOverrides(context, overrides) {
274
+ for (const toolId of getObjectKeys(context.project.tools)) {
275
+ const referenceName = context.resolver.getToolReferenceName(toolId);
276
+ if (referenceName) assignProjectReferenceOverride(overrides, "tools", toolId, referenceName);
277
+ }
278
+ for (const [credentialId, credentialData] of Object.entries(context.project.credentialReferences ?? {})) {
279
+ const credentialName = asRecord(credentialData)?.name;
280
+ assignProjectReferenceOverride(overrides, "credentialReferences", credentialId, typeof credentialName === "string" && credentialName.length > 0 ? toCredentialReferenceName(credentialName) : toCredentialReferenceName(credentialId));
281
+ }
282
+ for (const externalAgentId of getObjectKeys(context.project.externalAgents)) {
283
+ const referenceName = context.resolver.getExternalAgentReferenceName(externalAgentId);
284
+ if (referenceName) assignProjectReferenceOverride(overrides, "externalAgents", externalAgentId, referenceName);
285
+ }
286
+ }
287
+ function assignFirstMatchingComponentReferenceOverride(registry, overrides, componentId, candidates) {
288
+ for (const [overrideType, componentType] of candidates) {
289
+ const component = registry.get(componentId, componentType);
290
+ if (!component?.name) continue;
291
+ assignReferenceOverride(overrides, overrideType, componentId, component.name);
292
+ return;
293
+ }
294
+ }
295
+ function assignComponentReferenceOverride(registry, overrides, overrideType, componentId, componentType) {
296
+ const component = registry.get(componentId, componentType);
297
+ if (!component?.name) return;
298
+ assignReferenceOverride(overrides, overrideType, componentId, component.name);
299
+ }
300
+ function assignComponentReferencePathOverride(registry, overrides, overrideType, componentId, componentType) {
301
+ const component = registry.get(componentId, componentType);
302
+ if (!component?.filePath) return;
303
+ assignReferencePathOverride(overrides, overrideType, componentId, componentType === "tools" || componentType === "functionTools" ? resolveToolModulePath(component.filePath) : stripExtension(basename(component.filePath)));
304
+ }
305
+ function assignReferenceOverride(overrides, overrideType, componentId, referenceName) {
306
+ const overrideMap = overrides[overrideType] ?? {};
307
+ overrideMap[componentId] = referenceName;
308
+ overrides[overrideType] = overrideMap;
309
+ }
310
+ function assignReferencePathOverride(overrides, overrideType, componentId, referencePath) {
311
+ const overrideMap = overrides[overrideType] ?? {};
312
+ overrideMap[componentId] = referencePath;
313
+ overrides[overrideType] = overrideMap;
314
+ }
315
+ function assignProjectReferenceOverride(overrides, overrideType, componentId, referenceName) {
316
+ const overrideMap = overrides[overrideType] ?? {};
317
+ overrideMap[componentId] = referenceName;
318
+ overrides[overrideType] = overrideMap;
319
+ }
320
+
321
+ //#endregion
322
+ export { collectContextConfigCredentialReferenceOverrides, collectContextConfigCredentialReferencePathOverrides, collectContextConfigHeadersReferenceOverride, collectContextTemplateReferences, collectProjectReferenceOverrides, collectProjectReferencePathOverrides, collectSubAgentDependencyReferenceOverrides, collectSubAgentReferenceOverrides, collectSubAgentReferencePathOverrides };
323
+ //# sourceMappingURL=collector-reference-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector-reference-helpers.js","names":[],"sources":["../../../src/commands/pull-v4/collector-reference-helpers.ts"],"sourcesContent":["import { basename, join } from 'node:path';\nimport { Node } from 'ts-morph';\nimport {\n asRecord,\n collectTemplateVariablesFromValues,\n extractContextConfigData,\n extractReferenceIds,\n getObjectKeys,\n inferHeadersReferenceFromContextConfig,\n isContextConfigInitializer,\n stripExtension,\n} from './collector-common';\nimport type { ComponentRegistry, ComponentType } from './component-registry';\nimport { readFileScope } from './file-scope';\nimport {\n normalizeFilePath,\n resolveProjectFilePath,\n resolveToolModulePath,\n} from './generation-resolver';\nimport {\n assignComponentReferenceOverrideForProject,\n type ContextTemplateReferences,\n type GenerationContext,\n type ProjectReferenceOverrides,\n type ProjectReferenceOverrideType,\n type ProjectReferencePathOverrides,\n type SubAgentDependencyReferences,\n type SubAgentReferenceOverrides,\n type SubAgentReferenceOverrideType,\n type SubAgentReferencePathOverrides,\n} from './generation-types';\nimport {\n buildComponentFileName,\n toCamelCase,\n toCredentialReferenceName,\n toKebabCase,\n toToolReferenceName,\n} from './utils';\n\nexport function collectContextConfigCredentialReferenceOverrides(\n context: GenerationContext,\n contextConfigData: Record<string, unknown>\n): Record<string, string> | undefined {\n const contextVariables = asRecord(contextConfigData.contextVariables);\n if (!contextVariables) {\n return;\n }\n\n const overrides: Record<string, string> = {};\n for (const contextVariable of Object.values(contextVariables)) {\n const contextVariableRecord = asRecord(contextVariable);\n const credentialReferenceId =\n contextVariableRecord && typeof contextVariableRecord.credentialReferenceId === 'string'\n ? contextVariableRecord.credentialReferenceId\n : undefined;\n if (!credentialReferenceId) {\n continue;\n }\n\n const credentialReferenceName =\n context.resolver.getCredentialReferenceName(credentialReferenceId);\n if (credentialReferenceName) {\n overrides[credentialReferenceId] = credentialReferenceName;\n }\n }\n\n return Object.keys(overrides).length ? overrides : undefined;\n}\n\nexport function collectContextConfigCredentialReferencePathOverrides(\n context: GenerationContext,\n contextConfigData: Record<string, unknown>\n): Record<string, string> | undefined {\n const contextVariables = asRecord(contextConfigData.contextVariables);\n if (!contextVariables) {\n return;\n }\n\n const overrides: Record<string, string> = {};\n for (const contextVariable of Object.values(contextVariables)) {\n const contextVariableRecord = asRecord(contextVariable);\n const credentialReferenceId =\n contextVariableRecord && typeof contextVariableRecord.credentialReferenceId === 'string'\n ? contextVariableRecord.credentialReferenceId\n : undefined;\n if (!credentialReferenceId) {\n continue;\n }\n\n const credentialReferencePath =\n context.resolver.getCredentialReferencePath(credentialReferenceId);\n if (credentialReferencePath) {\n overrides[credentialReferenceId] = credentialReferencePath;\n }\n }\n\n return Object.keys(overrides).length ? overrides : undefined;\n}\n\nexport function collectContextConfigHeadersReferenceOverride(\n context: GenerationContext,\n contextConfigId: string,\n filePath: string\n): string | undefined {\n if (!context.existingComponentRegistry) {\n return;\n }\n\n const fileScope = readFileScope(filePath);\n if (!fileScope) {\n return;\n }\n\n const { sourceFile } = fileScope;\n\n for (const declaration of sourceFile.getVariableDeclarations()) {\n const initializer = declaration.getInitializer();\n if (!initializer || !isContextConfigInitializer(initializer)) {\n continue;\n }\n\n const [configArg] = initializer.getArguments();\n if (!configArg || !Node.isObjectLiteralExpression(configArg)) {\n continue;\n }\n\n const idProperty = configArg.getProperty('id');\n if (!idProperty || !Node.isPropertyAssignment(idProperty)) {\n continue;\n }\n const idInitializer = idProperty.getInitializer();\n if (!idInitializer || !Node.isStringLiteral(idInitializer)) {\n continue;\n }\n if (idInitializer.getLiteralValue() !== contextConfigId) {\n continue;\n }\n\n const headersProperty = configArg.getProperty('headers');\n if (!headersProperty) {\n return;\n }\n\n if (Node.isShorthandPropertyAssignment(headersProperty)) {\n return headersProperty.getName();\n }\n\n if (!Node.isPropertyAssignment(headersProperty)) {\n return;\n }\n\n const headersInitializer = headersProperty.getInitializer();\n if (!headersInitializer) {\n return;\n }\n\n if (Node.isIdentifier(headersInitializer)) {\n return headersInitializer.getText();\n }\n\n if (Node.isAsExpression(headersInitializer)) {\n const valueExpression = headersInitializer.getExpression();\n if (Node.isIdentifier(valueExpression)) {\n return valueExpression.getText();\n }\n }\n\n return;\n }\n\n return;\n}\n\nexport function collectSubAgentReferenceOverrides(\n context: GenerationContext,\n agentData: Record<string, unknown>,\n agentFilePath: string\n): Record<string, { name: string; local?: boolean }> {\n const subAgentIds = new Set<string>(extractReferenceIds(agentData.subAgents));\n if (typeof agentData.defaultSubAgentId === 'string' && agentData.defaultSubAgentId.length > 0) {\n subAgentIds.add(agentData.defaultSubAgentId);\n }\n\n if (!subAgentIds.size) {\n return {};\n }\n\n const overrides: Record<string, { name: string; local?: boolean }> = {};\n for (const subAgentId of subAgentIds) {\n const generatedReferenceName = context.resolver.getSubAgentReferenceName(subAgentId);\n if (generatedReferenceName) {\n overrides[subAgentId] = { name: generatedReferenceName };\n }\n\n const existingSubAgent = context.resolver.getExistingComponent(subAgentId, 'subAgents');\n if (!existingSubAgent?.name) {\n continue;\n }\n\n const existingSubAgentFilePath = resolveProjectFilePath(\n context.paths.projectRoot,\n existingSubAgent.filePath\n );\n const isLocal =\n normalizeFilePath(existingSubAgentFilePath) === normalizeFilePath(agentFilePath);\n overrides[subAgentId] = isLocal\n ? { name: existingSubAgent.name, local: true }\n : { name: existingSubAgent.name };\n }\n\n return overrides;\n}\n\nexport function collectSubAgentReferencePathOverrides(\n context: GenerationContext,\n agentData: Record<string, unknown>\n): Record<string, string> {\n const subAgentIds = new Set<string>(extractReferenceIds(agentData.subAgents));\n if (typeof agentData.defaultSubAgentId === 'string' && agentData.defaultSubAgentId.length > 0) {\n subAgentIds.add(agentData.defaultSubAgentId);\n }\n\n if (!subAgentIds.size) {\n return {};\n }\n\n const subAgents = asRecord(agentData.subAgents);\n const overrides: Record<string, string> = {};\n\n for (const subAgentId of subAgentIds) {\n const fallbackReferencePath = context.resolver.getSubAgentReferencePath(subAgentId);\n const subAgentData = asRecord(subAgents?.[subAgentId]);\n const subAgentName = typeof subAgentData?.name === 'string' ? subAgentData.name : undefined;\n const subAgentFilePath = context.resolver.resolveOutputFilePath(\n 'subAgents',\n subAgentId,\n join(\n context.paths.agentsDir,\n 'sub-agents',\n fallbackReferencePath\n ? `${fallbackReferencePath}.ts`\n : buildComponentFileName(subAgentId, subAgentName)\n )\n );\n overrides[subAgentId] = stripExtension(basename(subAgentFilePath));\n }\n\n return overrides;\n}\n\nexport function collectContextTemplateReferences(\n context: GenerationContext,\n agentData: Record<string, unknown>,\n targetFilePath: string,\n promptValues: Array<string | undefined>\n): ContextTemplateReferences | undefined {\n const contextConfig = extractContextConfigData(agentData);\n const contextConfigId = contextConfig?.id;\n if (!contextConfigId) {\n return;\n }\n\n const contextConfigFilePath = context.resolver.resolveOutputFilePath(\n 'contextConfigs',\n contextConfigId,\n join(context.paths.contextConfigsDir, `${contextConfigId}.ts`)\n );\n const isLocal = normalizeFilePath(contextConfigFilePath) === normalizeFilePath(targetFilePath);\n\n const contextConfigReference =\n collectAgentContextConfigReferenceOverride(context, agentData, targetFilePath) ??\n (isLocal\n ? { name: toCamelCase(contextConfigId), local: true }\n : { name: toCamelCase(contextConfigId) });\n\n const templateVariables = collectTemplateVariablesFromValues(promptValues);\n const hasHeadersTemplateVariables = templateVariables.some((variableName) =>\n variableName.startsWith('headers.')\n );\n let headersReferenceName =\n collectContextConfigHeadersReferenceOverride(context, contextConfigId, contextConfigFilePath) ??\n inferHeadersReferenceFromContextConfig(contextConfig, contextConfigId);\n\n if (!headersReferenceName && hasHeadersTemplateVariables) {\n headersReferenceName = `${toCamelCase(contextConfigId)}Headers`;\n }\n\n return {\n contextConfigId,\n contextConfigReference,\n ...(headersReferenceName && {\n contextConfigHeadersReference: isLocal\n ? { name: headersReferenceName, local: true }\n : { name: headersReferenceName },\n }),\n };\n}\n\nexport function collectSubAgentDependencyReferenceOverrides(\n context: GenerationContext,\n subAgentData: Record<string, unknown>\n): SubAgentDependencyReferences | undefined {\n const registry = context.existingComponentRegistry;\n const referenceOverrides: SubAgentReferenceOverrides = {};\n const referencePathOverrides: SubAgentReferencePathOverrides = {};\n\n const assignSubAgentReferenceOverrides = (subAgentId: string): void => {\n const subAgentReferenceName = context.resolver.getSubAgentReferenceName(subAgentId);\n if (subAgentReferenceName) {\n assignReferenceOverride(referenceOverrides, 'subAgents', subAgentId, subAgentReferenceName);\n }\n\n const subAgentReferencePath = context.resolver.getSubAgentReferencePath(subAgentId);\n if (subAgentReferencePath) {\n assignReferencePathOverride(\n referencePathOverrides,\n 'subAgents',\n subAgentId,\n subAgentReferencePath\n );\n }\n };\n\n const assignAgentReferenceOverrides = (agentId: string): void => {\n const agentReferenceName = context.resolver.getAgentReferenceName(agentId);\n if (agentReferenceName) {\n assignReferenceOverride(referenceOverrides, 'agents', agentId, agentReferenceName);\n }\n\n const agentReferencePath = context.resolver.getAgentReferencePath(agentId);\n if (agentReferencePath) {\n assignReferencePathOverride(referencePathOverrides, 'agents', agentId, agentReferencePath);\n }\n };\n\n const assignExternalAgentReferenceOverrides = (externalAgentId: string): void => {\n const externalAgentReferenceName =\n context.resolver.getExternalAgentReferenceName(externalAgentId);\n if (externalAgentReferenceName) {\n assignReferenceOverride(\n referenceOverrides,\n 'externalAgents',\n externalAgentId,\n externalAgentReferenceName\n );\n }\n\n const externalAgentReferencePath =\n context.resolver.getExternalAgentReferencePath(externalAgentId);\n if (externalAgentReferencePath) {\n assignReferencePathOverride(\n referencePathOverrides,\n 'externalAgents',\n externalAgentId,\n externalAgentReferencePath\n );\n }\n };\n\n const canUse = Array.isArray(subAgentData.canUse) ? subAgentData.canUse : [];\n for (const item of canUse) {\n const canUseRecord = asRecord(item);\n const toolId =\n typeof item === 'string'\n ? item\n : canUseRecord && typeof canUseRecord.toolId === 'string'\n ? canUseRecord.toolId\n : undefined;\n if (!toolId) {\n continue;\n }\n\n const toolReferenceName =\n context.resolver.getToolReferenceName(toolId) ?? toToolReferenceName(toolId);\n assignReferenceOverride(referenceOverrides, 'tools', toolId, toolReferenceName);\n\n const toolReferencePath = context.resolver.getToolReferencePath(toolId) ?? toKebabCase(toolId);\n assignReferencePathOverride(referencePathOverrides, 'tools', toolId, toolReferencePath);\n\n if (registry) {\n assignComponentReferenceOverride(registry, referenceOverrides, 'tools', toolId, 'tools');\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'tools',\n toolId,\n 'functionTools'\n );\n }\n }\n\n const canDelegateTo = Array.isArray(subAgentData.canDelegateTo) ? subAgentData.canDelegateTo : [];\n for (const item of canDelegateTo) {\n if (typeof item === 'string') {\n assignSubAgentReferenceOverrides(item);\n assignAgentReferenceOverrides(item);\n assignExternalAgentReferenceOverrides(item);\n continue;\n }\n\n const canDelegateRecord = asRecord(item);\n if (typeof canDelegateRecord?.subAgentId === 'string') {\n assignSubAgentReferenceOverrides(canDelegateRecord.subAgentId);\n }\n if (typeof canDelegateRecord?.agentId === 'string') {\n assignAgentReferenceOverrides(canDelegateRecord.agentId);\n }\n if (typeof canDelegateRecord?.externalAgentId === 'string') {\n assignExternalAgentReferenceOverrides(canDelegateRecord.externalAgentId);\n }\n }\n\n const canTransferTo = extractReferenceIds(subAgentData.canTransferTo);\n for (const transferTargetId of canTransferTo) {\n assignSubAgentReferenceOverrides(transferTargetId);\n assignAgentReferenceOverrides(transferTargetId);\n assignExternalAgentReferenceOverrides(transferTargetId);\n }\n\n if (registry) {\n for (const item of canDelegateTo) {\n if (typeof item === 'string') {\n assignFirstMatchingComponentReferenceOverride(registry, referenceOverrides, item, [\n ['subAgents', 'subAgents'],\n ['agents', 'agents'],\n ['externalAgents', 'externalAgents'],\n ]);\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'subAgents',\n item,\n 'subAgents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'agents',\n item,\n 'agents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'externalAgents',\n item,\n 'externalAgents'\n );\n continue;\n }\n\n const canDelegateRecord = asRecord(item);\n if (!canDelegateRecord) {\n continue;\n }\n\n if (typeof canDelegateRecord.subAgentId === 'string') {\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'subAgents',\n canDelegateRecord.subAgentId,\n 'subAgents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'subAgents',\n canDelegateRecord.subAgentId,\n 'subAgents'\n );\n continue;\n }\n if (typeof canDelegateRecord.agentId === 'string') {\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'agents',\n canDelegateRecord.agentId,\n 'agents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'agents',\n canDelegateRecord.agentId,\n 'agents'\n );\n continue;\n }\n if (typeof canDelegateRecord.externalAgentId === 'string') {\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'externalAgents',\n canDelegateRecord.externalAgentId,\n 'externalAgents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'externalAgents',\n canDelegateRecord.externalAgentId,\n 'externalAgents'\n );\n }\n }\n\n for (const transferTargetId of canTransferTo) {\n assignFirstMatchingComponentReferenceOverride(\n registry,\n referenceOverrides,\n transferTargetId,\n [\n ['subAgents', 'subAgents'],\n ['agents', 'agents'],\n ['externalAgents', 'externalAgents'],\n ]\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'subAgents',\n transferTargetId,\n 'subAgents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'agents',\n transferTargetId,\n 'agents'\n );\n assignComponentReferencePathOverride(\n registry,\n referencePathOverrides,\n 'externalAgents',\n transferTargetId,\n 'externalAgents'\n );\n }\n\n const dataComponentIds = extractReferenceIds(subAgentData.dataComponents);\n for (const dataComponentId of dataComponentIds) {\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'dataComponents',\n dataComponentId,\n 'dataComponents'\n );\n }\n\n const artifactComponentIds = extractReferenceIds(subAgentData.artifactComponents);\n for (const artifactComponentId of artifactComponentIds) {\n assignComponentReferenceOverride(\n registry,\n referenceOverrides,\n 'artifactComponents',\n artifactComponentId,\n 'artifactComponents'\n );\n }\n }\n\n return Object.keys(referenceOverrides).length > 0 ||\n Object.keys(referencePathOverrides).length > 0\n ? {\n ...(Object.keys(referenceOverrides).length > 0 && { referenceOverrides }),\n ...(Object.keys(referencePathOverrides).length > 0 && { referencePathOverrides }),\n }\n : undefined;\n}\n\nexport function collectProjectReferenceOverrides(\n context: GenerationContext\n): ProjectReferenceOverrides | undefined {\n const overrides: ProjectReferenceOverrides = {};\n addProjectNameBasedReferenceOverrides(context, overrides);\n\n const registry = context.existingComponentRegistry;\n if (!registry) {\n return Object.keys(overrides).length > 0 ? overrides : undefined;\n }\n\n for (const agentId of context.completeAgentIds) {\n assignComponentReferenceOverrideForProject(registry, overrides, 'agents', agentId, 'agents');\n }\n\n const toolIds = getObjectKeys(context.project.tools);\n for (const toolId of toolIds) {\n if (\n assignComponentReferenceOverrideForProject(\n registry,\n overrides,\n 'tools',\n toolId,\n 'functionTools'\n )\n ) {\n continue;\n }\n\n assignComponentReferenceOverrideForProject(registry, overrides, 'tools', toolId, 'tools');\n }\n\n const externalAgentIds = getObjectKeys(context.project.externalAgents);\n for (const externalAgentId of externalAgentIds) {\n assignComponentReferenceOverrideForProject(\n registry,\n overrides,\n 'externalAgents',\n externalAgentId,\n 'externalAgents'\n );\n }\n\n const dataComponentIds = getObjectKeys(context.project.dataComponents);\n for (const dataComponentId of dataComponentIds) {\n assignComponentReferenceOverrideForProject(\n registry,\n overrides,\n 'dataComponents',\n dataComponentId,\n 'dataComponents'\n );\n }\n\n const artifactComponentIds = getObjectKeys(context.project.artifactComponents);\n for (const artifactComponentId of artifactComponentIds) {\n assignComponentReferenceOverrideForProject(\n registry,\n overrides,\n 'artifactComponents',\n artifactComponentId,\n 'artifactComponents'\n );\n }\n\n const credentialIds = getObjectKeys(context.project.credentialReferences);\n for (const credentialId of credentialIds) {\n assignComponentReferenceOverrideForProject(\n registry,\n overrides,\n 'credentialReferences',\n credentialId,\n 'credentials'\n );\n }\n\n return Object.keys(overrides).length > 0 ? overrides : undefined;\n}\n\nexport function collectProjectReferencePathOverrides(\n context: GenerationContext\n): ProjectReferencePathOverrides | undefined {\n const overrides: ProjectReferencePathOverrides = {};\n\n if (context.project.agents) {\n for (const agentId of context.completeAgentIds) {\n const referencePath = context.resolver.getAgentReferencePath(agentId);\n if (referencePath) {\n assignProjectReferenceOverride(overrides, 'agents', agentId, referencePath);\n }\n }\n }\n\n for (const toolId of getObjectKeys(context.project.tools)) {\n const referencePath = context.resolver.getToolReferencePath(toolId);\n if (referencePath) {\n assignProjectReferenceOverride(overrides, 'tools', toolId, referencePath);\n }\n }\n\n for (const credentialId of getObjectKeys(context.project.credentialReferences)) {\n const referencePath = context.resolver.getCredentialReferencePath(credentialId);\n if (referencePath) {\n assignProjectReferenceOverride(\n overrides,\n 'credentialReferences',\n credentialId,\n referencePath\n );\n }\n }\n\n for (const externalAgentId of getObjectKeys(context.project.externalAgents)) {\n const referencePath = context.resolver.getExternalAgentReferencePath(externalAgentId);\n if (referencePath) {\n assignProjectReferenceOverride(overrides, 'externalAgents', externalAgentId, referencePath);\n }\n }\n\n return Object.keys(overrides).length > 0 ? overrides : undefined;\n}\n\nfunction collectAgentContextConfigReferenceOverride(\n context: GenerationContext,\n agentData: Record<string, unknown>,\n agentFilePath: string\n): { name: string; local?: boolean } | undefined {\n const contextConfig = extractContextConfigData(agentData);\n const contextConfigId = contextConfig?.id;\n if (!contextConfigId) {\n return;\n }\n\n const existingContextConfig = context.resolver.getExistingComponent(\n contextConfigId,\n 'contextConfigs'\n );\n if (!existingContextConfig?.name) {\n return;\n }\n\n const existingContextConfigFilePath = resolveProjectFilePath(\n context.paths.projectRoot,\n existingContextConfig.filePath\n );\n const isLocal =\n normalizeFilePath(existingContextConfigFilePath) === normalizeFilePath(agentFilePath);\n return isLocal\n ? { name: existingContextConfig.name, local: true }\n : { name: existingContextConfig.name };\n}\n\nfunction addProjectNameBasedReferenceOverrides(\n context: GenerationContext,\n overrides: ProjectReferenceOverrides\n): void {\n for (const toolId of getObjectKeys(context.project.tools)) {\n const referenceName = context.resolver.getToolReferenceName(toolId);\n if (referenceName) {\n assignProjectReferenceOverride(overrides, 'tools', toolId, referenceName);\n }\n }\n\n for (const [credentialId, credentialData] of Object.entries(\n context.project.credentialReferences ?? {}\n )) {\n const credentialName = asRecord(credentialData)?.name;\n const referenceName =\n typeof credentialName === 'string' && credentialName.length > 0\n ? toCredentialReferenceName(credentialName)\n : toCredentialReferenceName(credentialId);\n assignProjectReferenceOverride(overrides, 'credentialReferences', credentialId, referenceName);\n }\n\n for (const externalAgentId of getObjectKeys(context.project.externalAgents)) {\n const referenceName = context.resolver.getExternalAgentReferenceName(externalAgentId);\n if (referenceName) {\n assignProjectReferenceOverride(overrides, 'externalAgents', externalAgentId, referenceName);\n }\n }\n}\n\nfunction assignFirstMatchingComponentReferenceOverride(\n registry: ComponentRegistry,\n overrides: SubAgentReferenceOverrides,\n componentId: string,\n candidates: Array<[SubAgentReferenceOverrideType, ComponentType]>\n): void {\n for (const [overrideType, componentType] of candidates) {\n const component = registry.get(componentId, componentType);\n if (!component?.name) {\n continue;\n }\n\n assignReferenceOverride(overrides, overrideType, componentId, component.name);\n return;\n }\n}\n\nfunction assignComponentReferenceOverride(\n registry: ComponentRegistry,\n overrides: SubAgentReferenceOverrides,\n overrideType: SubAgentReferenceOverrideType,\n componentId: string,\n componentType: ComponentType\n): void {\n const component = registry.get(componentId, componentType);\n if (!component?.name) {\n return;\n }\n\n assignReferenceOverride(overrides, overrideType, componentId, component.name);\n}\n\nfunction assignComponentReferencePathOverride(\n registry: ComponentRegistry,\n overrides: SubAgentReferencePathOverrides,\n overrideType: 'tools' | 'subAgents' | 'agents' | 'externalAgents',\n componentId: string,\n componentType: ComponentType\n): void {\n const component = registry.get(componentId, componentType);\n if (!component?.filePath) {\n return;\n }\n\n const referencePath =\n componentType === 'tools' || componentType === 'functionTools'\n ? resolveToolModulePath(component.filePath)\n : stripExtension(basename(component.filePath));\n assignReferencePathOverride(overrides, overrideType, componentId, referencePath);\n}\n\nfunction assignReferenceOverride(\n overrides: SubAgentReferenceOverrides,\n overrideType: SubAgentReferenceOverrideType,\n componentId: string,\n referenceName: string\n): void {\n const overrideMap = overrides[overrideType] ?? {};\n overrideMap[componentId] = referenceName;\n overrides[overrideType] = overrideMap;\n}\n\nfunction assignReferencePathOverride(\n overrides: SubAgentReferencePathOverrides,\n overrideType: 'tools' | 'subAgents' | 'agents' | 'externalAgents',\n componentId: string,\n referencePath: string\n): void {\n const overrideMap = overrides[overrideType] ?? {};\n overrideMap[componentId] = referencePath;\n overrides[overrideType] = overrideMap;\n}\n\nfunction assignProjectReferenceOverride(\n overrides: ProjectReferenceOverrides | ProjectReferencePathOverrides,\n overrideType: ProjectReferenceOverrideType,\n componentId: string,\n referenceName: string\n): void {\n const overrideMap = overrides[overrideType] ?? {};\n overrideMap[componentId] = referenceName;\n overrides[overrideType] = overrideMap;\n}\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ComponentRegistry } from "./component-registry.js";
2
- import { createInMemoryProject } from "./utils.js";
2
+ import { createInMemoryProject } from "./utils/factory-writer.js";
3
+ import "./utils/index.js";
3
4
  import { extname, join, relative } from "node:path";
4
5
  import { Node } from "ts-morph";
5
6
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";