@pikku/inspector 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1
- package/OPTIMIZATION-PLAN.md +195 -0
- package/dist/add/add-ai-agent.d.ts +2 -0
- package/dist/add/add-ai-agent.js +314 -0
- package/dist/add/add-channel.js +69 -61
- package/dist/add/add-cli.js +36 -18
- package/dist/add/add-file-with-factory.js +2 -0
- package/dist/add/add-functions.js +250 -75
- package/dist/add/add-http-route.d.ts +19 -10
- package/dist/add/add-http-route.js +152 -66
- package/dist/add/add-http-routes.d.ts +5 -0
- package/dist/add/add-http-routes.js +159 -0
- package/dist/add/add-keyed-wiring.d.ts +12 -0
- package/dist/add/add-keyed-wiring.js +97 -0
- package/dist/add/add-mcp-prompt.js +14 -9
- package/dist/add/add-mcp-resource.js +14 -9
- package/dist/add/add-middleware.d.ts +1 -4
- package/dist/add/add-middleware.js +364 -79
- package/dist/add/add-permission.d.ts +1 -1
- package/dist/add/add-permission.js +152 -40
- package/dist/add/add-queue-worker.js +18 -12
- package/dist/add/add-rpc-invocations.js +14 -0
- package/dist/add/add-schedule.js +11 -5
- package/dist/add/add-secret.d.ts +3 -0
- package/dist/add/add-secret.js +82 -0
- package/dist/add/add-trigger.d.ts +2 -0
- package/dist/add/add-trigger.js +87 -0
- package/dist/add/add-variable.d.ts +1 -0
- package/dist/add/add-variable.js +8 -0
- package/dist/add/add-workflow-graph.d.ts +3 -2
- package/dist/add/add-workflow-graph.js +143 -406
- package/dist/add/add-workflow.js +6 -4
- package/dist/error-codes.d.ts +14 -1
- package/dist/error-codes.js +19 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +5 -4
- package/dist/inspector.d.ts +1 -1
- package/dist/inspector.js +91 -14
- package/dist/schema-generator.d.ts +1 -0
- package/dist/schema-generator.js +1 -0
- package/dist/types-map.js +10 -1
- package/dist/types.d.ts +163 -39
- package/dist/utils/compute-required-schemas.d.ts +4 -0
- package/dist/utils/compute-required-schemas.js +41 -0
- package/dist/utils/contract-hashes.d.ts +35 -0
- package/dist/utils/contract-hashes.js +202 -0
- package/dist/utils/custom-types-generator.d.ts +9 -0
- package/dist/utils/custom-types-generator.js +71 -0
- package/dist/utils/detect-schema-vendor.d.ts +22 -0
- package/dist/utils/detect-schema-vendor.js +76 -0
- package/dist/utils/ensure-function-metadata.d.ts +5 -2
- package/dist/utils/ensure-function-metadata.js +220 -6
- package/dist/utils/extract-function-name.d.ts +5 -16
- package/dist/utils/extract-function-name.js +86 -291
- package/dist/utils/extract-services.d.ts +2 -1
- package/dist/utils/extract-services.js +25 -1
- package/dist/utils/filter-inspector-state.js +107 -23
- package/dist/utils/get-property-value.d.ts +6 -1
- package/dist/utils/get-property-value.js +28 -3
- package/dist/utils/hash.d.ts +2 -0
- package/dist/utils/hash.js +23 -0
- package/dist/utils/middleware.d.ts +7 -30
- package/dist/utils/middleware.js +80 -66
- package/dist/utils/permissions.d.ts +2 -2
- package/dist/utils/permissions.js +10 -10
- package/dist/utils/post-process.d.ts +9 -10
- package/dist/utils/post-process.js +231 -24
- package/dist/utils/resolve-external-package.d.ts +12 -0
- package/dist/utils/resolve-external-package.js +34 -0
- package/dist/utils/resolve-function-types.d.ts +6 -0
- package/dist/utils/resolve-function-types.js +29 -0
- package/dist/utils/resolve-identifier.d.ts +10 -0
- package/dist/utils/resolve-identifier.js +36 -0
- package/dist/utils/resolve-versions.d.ts +2 -0
- package/dist/utils/resolve-versions.js +78 -0
- package/dist/utils/schema-generator.d.ts +9 -0
- package/dist/utils/schema-generator.js +209 -0
- package/dist/utils/serialize-inspector-state.d.ts +59 -22
- package/dist/utils/serialize-inspector-state.js +92 -20
- package/dist/utils/serialize-mcp-json.d.ts +2 -0
- package/dist/utils/serialize-mcp-json.js +99 -0
- package/dist/utils/serialize-middleware-groups-meta.d.ts +12 -0
- package/dist/utils/serialize-middleware-groups-meta.js +28 -0
- package/dist/utils/serialize-openapi-json.d.ts +85 -0
- package/dist/utils/serialize-openapi-json.js +151 -0
- package/dist/utils/serialize-permissions-groups-meta.d.ts +6 -0
- package/dist/utils/serialize-permissions-groups-meta.js +31 -0
- package/dist/utils/workflow/dsl/deserialize-dsl-workflow.js +34 -102
- package/dist/utils/workflow/dsl/extract-dsl-workflow.js +23 -4
- package/dist/utils/workflow/graph/convert-dsl-to-graph.js +12 -10
- package/dist/utils/workflow/graph/finalize-workflow-wires.d.ts +3 -0
- package/dist/utils/workflow/graph/finalize-workflow-wires.js +276 -0
- package/dist/utils/workflow/graph/finalize-workflows.d.ts +2 -0
- package/dist/utils/workflow/graph/finalize-workflows.js +75 -0
- package/dist/utils/workflow/graph/index.d.ts +2 -0
- package/dist/utils/workflow/graph/index.js +2 -0
- package/dist/utils/workflow/graph/serialize-workflow-graph.d.ts +0 -8
- package/dist/utils/workflow/graph/serialize-workflow-graph.js +1 -3
- package/dist/utils/workflow/graph/workflow-graph.types.d.ts +53 -79
- package/dist/utils/workflow/graph/workflow-graph.types.js +1 -1
- package/dist/visit.js +11 -6
- package/package.json +14 -4
- package/src/add/add-ai-agent.ts +468 -0
- package/src/add/add-channel.ts +82 -79
- package/src/add/add-cli.ts +49 -20
- package/src/add/add-file-with-factory.ts +2 -0
- package/src/add/add-functions.ts +330 -86
- package/src/add/add-http-route.ts +245 -88
- package/src/add/add-http-routes.ts +228 -0
- package/src/add/add-keyed-wiring.ts +151 -0
- package/src/add/add-mcp-prompt.ts +26 -15
- package/src/add/add-mcp-resource.ts +27 -15
- package/src/add/add-middleware.ts +482 -80
- package/src/add/add-permission.ts +199 -40
- package/src/add/add-queue-worker.ts +24 -19
- package/src/add/add-rpc-invocations.ts +17 -0
- package/src/add/add-schedule.ts +16 -11
- package/src/add/add-secret.ts +140 -0
- package/src/add/add-trigger.ts +154 -0
- package/src/add/add-variable.ts +9 -0
- package/src/add/add-workflow-graph.ts +180 -522
- package/src/add/add-workflow.ts +5 -4
- package/src/error-codes.ts +24 -1
- package/src/index.ts +22 -13
- package/src/inspector.ts +129 -17
- package/src/schema-generator.ts +1 -0
- package/src/types-map.ts +12 -1
- package/src/types.ts +175 -58
- package/src/utils/compute-required-schemas.ts +49 -0
- package/src/utils/contract-hashes.test.ts +528 -0
- package/src/utils/contract-hashes.ts +290 -0
- package/src/utils/custom-types-generator.ts +88 -0
- package/src/utils/detect-schema-vendor.ts +90 -0
- package/src/utils/ensure-function-metadata.ts +324 -7
- package/src/utils/extract-function-name.ts +101 -351
- package/src/utils/extract-services.ts +35 -2
- package/src/utils/filter-inspector-state.test.ts +34 -20
- package/src/utils/filter-inspector-state.ts +140 -31
- package/src/utils/get-property-value.ts +42 -4
- package/src/utils/hash.ts +26 -0
- package/src/utils/middleware.test.ts +204 -0
- package/src/utils/middleware.ts +129 -67
- package/src/utils/permissions.test.ts +35 -12
- package/src/utils/permissions.ts +10 -10
- package/src/utils/post-process.ts +283 -43
- package/src/utils/resolve-external-package.ts +42 -0
- package/src/utils/resolve-function-types.ts +42 -0
- package/src/utils/resolve-identifier.ts +46 -0
- package/src/utils/resolve-versions.test.ts +249 -0
- package/src/utils/resolve-versions.ts +105 -0
- package/src/utils/schema-generator.ts +329 -0
- package/src/utils/serialize-inspector-state.ts +163 -40
- package/src/utils/serialize-mcp-json.ts +145 -0
- package/src/utils/serialize-middleware-groups-meta.ts +33 -0
- package/src/utils/serialize-openapi-json.ts +277 -0
- package/src/utils/serialize-permissions-groups-meta.ts +35 -0
- package/src/utils/test-data/inspector-state.json +69 -66
- package/src/utils/workflow/dsl/deserialize-dsl-workflow.ts +43 -119
- package/src/utils/workflow/dsl/extract-dsl-workflow.ts +24 -4
- package/src/utils/workflow/graph/convert-dsl-to-graph.ts +17 -10
- package/src/utils/workflow/graph/finalize-workflow-wires.ts +310 -0
- package/src/utils/workflow/graph/finalize-workflows.ts +100 -0
- package/src/utils/workflow/graph/index.ts +5 -0
- package/src/utils/workflow/graph/serialize-workflow-graph.ts +1 -8
- package/src/utils/workflow/graph/workflow-graph.types.ts +29 -78
- package/src/visit.ts +12 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/add/add-forge-credential.d.ts +0 -8
- package/dist/add/add-forge-credential.js +0 -77
- package/dist/add/add-forge-node.d.ts +0 -7
- package/dist/add/add-forge-node.js +0 -77
- package/dist/add/add-mcp-tool.d.ts +0 -2
- package/dist/add/add-mcp-tool.js +0 -81
- package/dist/utils/extract-service-metadata.d.ts +0 -19
- package/dist/utils/extract-service-metadata.js +0 -244
- package/dist/utils/write-service-metadata.d.ts +0 -13
- package/dist/utils/write-service-metadata.js +0 -37
- package/src/add/add-forge-credential.ts +0 -119
- package/src/add/add-forge-node.ts +0 -132
- package/src/add/add-mcp-tool.ts +0 -141
- package/src/utils/extract-service-metadata.ts +0 -353
- package/src/utils/write-service-metadata.ts +0 -51
package/src/types.ts
CHANGED
|
@@ -2,14 +2,28 @@ import * as ts from 'typescript'
|
|
|
2
2
|
import { ChannelsMeta } from '@pikku/core/channel'
|
|
3
3
|
import { HTTPWiringsMeta } from '@pikku/core/http'
|
|
4
4
|
import { ScheduledTasksMeta } from '@pikku/core/scheduler'
|
|
5
|
+
import { TriggerMeta, TriggerSourceMeta } from '@pikku/core/trigger'
|
|
5
6
|
import { QueueWorkersMeta } from '@pikku/core/queue'
|
|
6
7
|
import { WorkflowsMeta } from '@pikku/core/workflow'
|
|
7
8
|
import { MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from '@pikku/core/mcp'
|
|
9
|
+
import { AIAgentMeta } from '@pikku/core/ai-agent'
|
|
8
10
|
import { CLIMeta } from '@pikku/core/cli'
|
|
9
|
-
import {
|
|
11
|
+
import { NodesMeta } from '@pikku/core/node'
|
|
12
|
+
import { SecretDefinitions } from '@pikku/core/secret'
|
|
13
|
+
import { VariableDefinitions } from '@pikku/core/variable'
|
|
10
14
|
import { TypesMap } from './types-map.js'
|
|
11
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
FunctionsMeta,
|
|
17
|
+
FunctionServicesMeta,
|
|
18
|
+
FunctionWiresMeta,
|
|
19
|
+
JSONValue,
|
|
20
|
+
} from '@pikku/core'
|
|
21
|
+
import type { OpenAPISpecInfo } from './utils/serialize-openapi-json.js'
|
|
12
22
|
import { ErrorCode } from './error-codes.js'
|
|
23
|
+
import type {
|
|
24
|
+
VersionManifest,
|
|
25
|
+
VersionValidateError,
|
|
26
|
+
} from './utils/contract-hashes.js'
|
|
13
27
|
import type { SerializedWorkflowGraphs } from './utils/workflow/graph/workflow-graph.types.js'
|
|
14
28
|
|
|
15
29
|
export type PathToNameAndType = Map<
|
|
@@ -31,7 +45,8 @@ export interface MiddlewareGroupMeta {
|
|
|
31
45
|
sourceFile: string
|
|
32
46
|
position: number
|
|
33
47
|
services: FunctionServicesMeta
|
|
34
|
-
|
|
48
|
+
count: number
|
|
49
|
+
instanceIds: string[]
|
|
35
50
|
isFactory: boolean // true if wrapped in () => add...()
|
|
36
51
|
}
|
|
37
52
|
|
|
@@ -40,7 +55,8 @@ export interface PermissionGroupMeta {
|
|
|
40
55
|
sourceFile: string
|
|
41
56
|
position: number
|
|
42
57
|
services: FunctionServicesMeta
|
|
43
|
-
|
|
58
|
+
count: number
|
|
59
|
+
instanceIds: string[]
|
|
44
60
|
isFactory: boolean // true if wrapped in () => add...()
|
|
45
61
|
}
|
|
46
62
|
|
|
@@ -59,11 +75,18 @@ export interface InspectorHTTPState {
|
|
|
59
75
|
}
|
|
60
76
|
|
|
61
77
|
/**
|
|
62
|
-
*
|
|
78
|
+
* Schema vendor types for Standard Schema compliant validators
|
|
63
79
|
*/
|
|
64
|
-
export
|
|
80
|
+
export type SchemaVendor = 'zod' | 'valibot' | 'arktype' | 'effect' | 'unknown'
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Schema reference for deferred conversion to JSON Schema at build time.
|
|
84
|
+
* Supports Standard Schema compliant validators (Zod, Valibot, ArkType, Effect Schema).
|
|
85
|
+
*/
|
|
86
|
+
export interface SchemaRef {
|
|
65
87
|
variableName: string
|
|
66
88
|
sourceFile: string
|
|
89
|
+
vendor?: SchemaVendor
|
|
67
90
|
}
|
|
68
91
|
|
|
69
92
|
export interface InspectorFunctionState {
|
|
@@ -77,41 +100,64 @@ export interface InspectorChannelState {
|
|
|
77
100
|
files: Set<string>
|
|
78
101
|
}
|
|
79
102
|
|
|
103
|
+
export interface InspectorMiddlewareDefinition {
|
|
104
|
+
services: FunctionServicesMeta
|
|
105
|
+
wires?: FunctionWiresMeta
|
|
106
|
+
sourceFile: string
|
|
107
|
+
position: number
|
|
108
|
+
exportedName: string | null
|
|
109
|
+
factory?: boolean
|
|
110
|
+
name?: string
|
|
111
|
+
description?: string
|
|
112
|
+
package?: string
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface InspectorMiddlewareInstance {
|
|
116
|
+
definitionId: string
|
|
117
|
+
sourceFile: string
|
|
118
|
+
position: number
|
|
119
|
+
isFactoryCall: boolean
|
|
120
|
+
}
|
|
121
|
+
|
|
80
122
|
export interface InspectorMiddlewareState {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
factory?: boolean // true if wrapped with pikkuMiddlewareFactory
|
|
90
|
-
name?: string // optional name from pikkuMiddleware({ name: '...' })
|
|
91
|
-
description?: string // optional description from pikkuMiddleware({ description: '...' })
|
|
92
|
-
}
|
|
93
|
-
>
|
|
94
|
-
// Tag-based middleware calls tracking - tag -> group metadata
|
|
95
|
-
// e.g., export const adminMiddleware = () => addMiddleware('admin', [...])
|
|
123
|
+
definitions: Record<string, InspectorMiddlewareDefinition>
|
|
124
|
+
instances: Record<string, InspectorMiddlewareInstance>
|
|
125
|
+
tagMiddleware: Map<string, MiddlewareGroupMeta>
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface InspectorChannelMiddlewareState {
|
|
129
|
+
definitions: Record<string, InspectorMiddlewareDefinition>
|
|
130
|
+
instances: Record<string, InspectorMiddlewareInstance>
|
|
96
131
|
tagMiddleware: Map<string, MiddlewareGroupMeta>
|
|
97
132
|
}
|
|
98
133
|
|
|
134
|
+
export interface InspectorAIMiddlewareState {
|
|
135
|
+
definitions: Record<string, InspectorMiddlewareDefinition>
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface InspectorPermissionDefinition {
|
|
139
|
+
services: FunctionServicesMeta
|
|
140
|
+
wires?: FunctionWiresMeta
|
|
141
|
+
sourceFile: string
|
|
142
|
+
position: number
|
|
143
|
+
exportedName: string | null
|
|
144
|
+
factory?: boolean
|
|
145
|
+
name?: string
|
|
146
|
+
description?: string
|
|
147
|
+
package?: string
|
|
148
|
+
requiresData?: boolean
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface InspectorPermissionInstance {
|
|
152
|
+
definitionId: string
|
|
153
|
+
sourceFile: string
|
|
154
|
+
position: number
|
|
155
|
+
isFactoryCall: boolean
|
|
156
|
+
}
|
|
157
|
+
|
|
99
158
|
export interface InspectorPermissionState {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
string,
|
|
103
|
-
{
|
|
104
|
-
services: FunctionServicesMeta
|
|
105
|
-
sourceFile: string
|
|
106
|
-
position: number
|
|
107
|
-
exportedName: string | null
|
|
108
|
-
factory?: boolean // true if wrapped with pikkuPermissionFactory
|
|
109
|
-
name?: string // optional name from pikkuPermission({ name: '...' })
|
|
110
|
-
description?: string // optional description from pikkuPermission({ description: '...' })
|
|
111
|
-
}
|
|
112
|
-
>
|
|
113
|
-
// Tag-based permission calls tracking - tag -> group metadata
|
|
114
|
-
// e.g., export const adminPermissions = () => addPermission('admin', [...])
|
|
159
|
+
definitions: Record<string, InspectorPermissionDefinition>
|
|
160
|
+
instances: Record<string, InspectorPermissionInstance>
|
|
115
161
|
tagPermissions: Map<string, PermissionGroupMeta>
|
|
116
162
|
}
|
|
117
163
|
|
|
@@ -124,16 +170,48 @@ export type InspectorFilters = {
|
|
|
124
170
|
httpMethods?: string[] // HTTP methods: "GET", "POST", "DELETE", etc.
|
|
125
171
|
}
|
|
126
172
|
|
|
173
|
+
export type ExternalPackageConfig = {
|
|
174
|
+
package: string
|
|
175
|
+
rpcEndpoint?: string
|
|
176
|
+
secretOverrides?: Record<string, string>
|
|
177
|
+
forceInclude?: boolean
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export type ModelConfigEntry =
|
|
181
|
+
| string
|
|
182
|
+
| { model: string; temperature?: number; maxSteps?: number }
|
|
183
|
+
|
|
184
|
+
export type InspectorModelConfig = {
|
|
185
|
+
models?: Record<string, ModelConfigEntry>
|
|
186
|
+
agentDefaults?: { temperature?: number; maxSteps?: number }
|
|
187
|
+
agentOverrides?: Record<
|
|
188
|
+
string,
|
|
189
|
+
{ model?: string; temperature?: number; maxSteps?: number }
|
|
190
|
+
>
|
|
191
|
+
}
|
|
192
|
+
|
|
127
193
|
export type InspectorOptions = Partial<{
|
|
128
194
|
setupOnly: boolean
|
|
129
|
-
/** Project root directory - used to filter out external package files */
|
|
130
195
|
rootDir: string
|
|
196
|
+
isExternalPackage: boolean
|
|
131
197
|
types: Partial<{
|
|
132
198
|
configFileType: string
|
|
133
199
|
userSessionType: string
|
|
134
200
|
singletonServicesFactoryType: string
|
|
135
201
|
wireServicesFactoryType: string
|
|
136
202
|
}>
|
|
203
|
+
externalPackages: Record<string, ExternalPackageConfig>
|
|
204
|
+
schemaConfig: {
|
|
205
|
+
tsconfig: string
|
|
206
|
+
schemasFromTypes?: string[]
|
|
207
|
+
schema?: { additionalProperties?: boolean }
|
|
208
|
+
}
|
|
209
|
+
openAPI: {
|
|
210
|
+
additionalInfo: OpenAPISpecInfo
|
|
211
|
+
}
|
|
212
|
+
tags: string[]
|
|
213
|
+
manifest: VersionManifest
|
|
214
|
+
modelConfig: InspectorModelConfig
|
|
137
215
|
}>
|
|
138
216
|
|
|
139
217
|
export interface InspectorLogger {
|
|
@@ -197,6 +275,13 @@ export interface InspectorFilesAndMethods {
|
|
|
197
275
|
}
|
|
198
276
|
}
|
|
199
277
|
|
|
278
|
+
export interface InspectorDiagnostic {
|
|
279
|
+
code: string
|
|
280
|
+
message: string
|
|
281
|
+
sourceFile: string
|
|
282
|
+
position: number
|
|
283
|
+
}
|
|
284
|
+
|
|
200
285
|
export interface InspectorState {
|
|
201
286
|
rootDir: string // Root directory inferred from source files
|
|
202
287
|
singletonServicesTypeImportMap: PathToNameAndType
|
|
@@ -210,10 +295,16 @@ export interface InspectorState {
|
|
|
210
295
|
filesAndMethods: InspectorFilesAndMethods
|
|
211
296
|
filesAndMethodsErrors: Map<string, PathToNameAndType>
|
|
212
297
|
typesLookup: Map<string, ts.Type[]> // Lookup for types by name (e.g., function input types, Config type)
|
|
213
|
-
|
|
298
|
+
schemaLookup: Map<string, SchemaRef> // Lookup for schemas by name for deferred JSON Schema conversion (supports Standard Schema vendors)
|
|
299
|
+
schemas: Record<string, JSONValue>
|
|
214
300
|
http: InspectorHTTPState
|
|
215
301
|
functions: InspectorFunctionState
|
|
216
302
|
channels: InspectorChannelState
|
|
303
|
+
triggers: {
|
|
304
|
+
meta: TriggerMeta
|
|
305
|
+
sourceMeta: TriggerSourceMeta
|
|
306
|
+
files: Set<string>
|
|
307
|
+
}
|
|
217
308
|
scheduledTasks: {
|
|
218
309
|
meta: ScheduledTasksMeta
|
|
219
310
|
files: Set<string>
|
|
@@ -227,6 +318,7 @@ export interface InspectorState {
|
|
|
227
318
|
files: Map<string, { path: string; exportedName: string }>
|
|
228
319
|
graphMeta: SerializedWorkflowGraphs
|
|
229
320
|
graphFiles: Map<string, { path: string; exportedName: string }>
|
|
321
|
+
invokedWorkflows: Set<string>
|
|
230
322
|
}
|
|
231
323
|
rpc: {
|
|
232
324
|
internalMeta: Record<string, string>
|
|
@@ -242,36 +334,61 @@ export interface InspectorState {
|
|
|
242
334
|
promptsMeta: MCPPromptMeta
|
|
243
335
|
files: Set<string>
|
|
244
336
|
}
|
|
337
|
+
agents: {
|
|
338
|
+
agentsMeta: AIAgentMeta
|
|
339
|
+
files: Map<string, { path: string; exportedName: string }>
|
|
340
|
+
}
|
|
245
341
|
cli: {
|
|
246
342
|
meta: CLIMeta
|
|
247
343
|
files: Set<string>
|
|
248
344
|
}
|
|
249
|
-
|
|
250
|
-
meta:
|
|
345
|
+
nodes: {
|
|
346
|
+
meta: NodesMeta
|
|
251
347
|
files: Set<string>
|
|
252
348
|
}
|
|
253
|
-
|
|
254
|
-
|
|
349
|
+
secrets: {
|
|
350
|
+
definitions: SecretDefinitions
|
|
255
351
|
files: Set<string>
|
|
256
352
|
}
|
|
353
|
+
variables: {
|
|
354
|
+
definitions: VariableDefinitions
|
|
355
|
+
files: Set<string>
|
|
356
|
+
}
|
|
357
|
+
manifest: {
|
|
358
|
+
initial: VersionManifest | null
|
|
359
|
+
current: VersionManifest | null
|
|
360
|
+
errors: VersionValidateError[]
|
|
361
|
+
}
|
|
257
362
|
middleware: InspectorMiddlewareState
|
|
363
|
+
channelMiddleware: InspectorChannelMiddlewareState
|
|
364
|
+
aiMiddleware: InspectorAIMiddlewareState
|
|
258
365
|
permissions: InspectorPermissionState
|
|
259
366
|
serviceAggregation: {
|
|
260
|
-
requiredServices: Set<string>
|
|
261
|
-
usedFunctions: Set<string>
|
|
262
|
-
usedMiddleware: Set<string>
|
|
263
|
-
usedPermissions: Set<string>
|
|
264
|
-
allSingletonServices: string[]
|
|
265
|
-
allWireServices: string[]
|
|
367
|
+
requiredServices: Set<string>
|
|
368
|
+
usedFunctions: Set<string>
|
|
369
|
+
usedMiddleware: Set<string>
|
|
370
|
+
usedPermissions: Set<string>
|
|
371
|
+
allSingletonServices: string[]
|
|
372
|
+
allWireServices: string[]
|
|
266
373
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
374
|
+
resolvedIOTypes: Record<string, { inputType: string; outputType: string }>
|
|
375
|
+
middlewareGroupsMeta: {
|
|
376
|
+
definitions: Record<string, InspectorMiddlewareDefinition>
|
|
377
|
+
instances: Record<string, InspectorMiddlewareInstance>
|
|
378
|
+
httpGroups: Record<string, MiddlewareGroupMeta>
|
|
379
|
+
tagGroups: Record<string, MiddlewareGroupMeta>
|
|
380
|
+
channelMiddleware: {
|
|
381
|
+
definitions: Record<string, InspectorMiddlewareDefinition>
|
|
382
|
+
instances: Record<string, InspectorMiddlewareInstance>
|
|
383
|
+
tagGroups: Record<string, MiddlewareGroupMeta>
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
permissionsGroupsMeta: {
|
|
387
|
+
definitions: Record<string, InspectorPermissionDefinition>
|
|
388
|
+
httpGroups: Record<string, PermissionGroupMeta>
|
|
389
|
+
tagGroups: Record<string, PermissionGroupMeta>
|
|
390
|
+
}
|
|
391
|
+
requiredSchemas: Set<string>
|
|
392
|
+
openAPISpec: Record<string, any> | null
|
|
393
|
+
diagnostics: InspectorDiagnostic[]
|
|
277
394
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FunctionsMeta } from '@pikku/core'
|
|
2
|
+
import type { TypesMap } from '../types-map.js'
|
|
3
|
+
import type { SchemaRef } from '../types.js'
|
|
4
|
+
|
|
5
|
+
const PRIMITIVE_TYPES = new Set([
|
|
6
|
+
'boolean',
|
|
7
|
+
'string',
|
|
8
|
+
'number',
|
|
9
|
+
'null',
|
|
10
|
+
'undefined',
|
|
11
|
+
'void',
|
|
12
|
+
'any',
|
|
13
|
+
'unknown',
|
|
14
|
+
'never',
|
|
15
|
+
])
|
|
16
|
+
|
|
17
|
+
export function computeRequiredSchemas(
|
|
18
|
+
functionsMeta: FunctionsMeta,
|
|
19
|
+
typesMap: TypesMap,
|
|
20
|
+
additionalTypes?: string[],
|
|
21
|
+
schemaLookup?: Map<string, SchemaRef>
|
|
22
|
+
): Set<string> {
|
|
23
|
+
return new Set<string>([
|
|
24
|
+
...Object.values(functionsMeta)
|
|
25
|
+
.map(({ inputs, outputs }) => {
|
|
26
|
+
const types: (string | undefined)[] = []
|
|
27
|
+
if (inputs?.[0]) {
|
|
28
|
+
try {
|
|
29
|
+
types.push(typesMap.getUniqueName(inputs[0]))
|
|
30
|
+
} catch {
|
|
31
|
+
types.push(inputs[0])
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (outputs?.[0]) {
|
|
35
|
+
try {
|
|
36
|
+
types.push(typesMap.getUniqueName(outputs[0]))
|
|
37
|
+
} catch {
|
|
38
|
+
types.push(outputs[0])
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return types
|
|
42
|
+
})
|
|
43
|
+
.flat()
|
|
44
|
+
.filter((s): s is string => !!s && !PRIMITIVE_TYPES.has(s)),
|
|
45
|
+
...typesMap.customTypes.keys(),
|
|
46
|
+
...(additionalTypes || []),
|
|
47
|
+
...(schemaLookup ? Array.from(schemaLookup.keys()) : []),
|
|
48
|
+
])
|
|
49
|
+
}
|