@noodleseed/one 0.164.0 → 0.166.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/dist/commands/deploy-status-ops.d.ts +2 -0
- package/dist/commands/deploy-status-ops.d.ts.map +1 -1
- package/dist/commands/deploy-status-ops.js +11 -0
- package/dist/commands/deploy-status-ops.js.map +1 -1
- package/dist/commands/solutions-coordination.d.ts +5 -0
- package/dist/commands/solutions-coordination.d.ts.map +1 -0
- package/dist/commands/solutions-coordination.js +94 -0
- package/dist/commands/solutions-coordination.js.map +1 -0
- package/dist/commands/solutions-ops.d.ts.map +1 -1
- package/dist/commands/solutions-ops.js +8 -4
- package/dist/commands/solutions-ops.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +4 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.d.ts +4 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-embed-store.d.ts +4 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-embed-store.js +6 -2
- package/node_modules/@noodle-borg/authoring/dist/config.d.ts +8 -2
- package/node_modules/@noodle-borg/authoring/dist/config.js +28 -1
- package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +37 -0
- package/node_modules/@noodle-borg/authoring/dist/connectors.js +4 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +1 -0
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-solution-flags.js +83 -0
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-solutions.js +70 -92
- package/node_modules/@noodle-borg/compiler/dist/artifact/operation-ref.d.ts +2 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.d.ts +4 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.js +4 -1
- package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts +7 -0
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +15 -2
- package/node_modules/@noodle-borg/compiler/dist/nested-operations.js +71 -0
- package/node_modules/@noodle-borg/compute/dist/code-connector.js +14 -2
- package/node_modules/@noodle-borg/compute/dist/deterministic-helpers.js +138 -0
- package/node_modules/@noodle-borg/compute/dist/quickjs-engine.js +48 -0
- package/node_modules/@noodle-borg/compute/dist/sandbox-eval.js +39 -5
- package/node_modules/@noodle-borg/compute/dist/worker-entry.js +7 -0
- package/node_modules/@noodle-borg/compute/dist/worker-pool.js +14 -3
- package/node_modules/@noodle-borg/connector-defs/dist/compile-http.js +31 -2
- package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/compile.js +20 -0
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +84 -0
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js +44 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +7 -0
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +34 -6
- package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +8 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-response.js +19 -10
- package/node_modules/@noodle-borg/connector-http/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/module/dist/customer-auth-access.d.ts +7 -0
- package/node_modules/@noodle-borg/module/dist/customer-auth-access.js +6 -0
- package/node_modules/@noodle-borg/module/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/module/dist/index.js +1 -0
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +7 -1
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js +8 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +2 -0
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/runtime/dist/nested-operation-host.js +25 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-coordination-execution.js +50 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-coordination.d.ts +34 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-evidence.d.ts +4 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-execution.js +173 -94
- package/node_modules/@noodle-borg/service/dist/application-activity.js +152 -18
- package/node_modules/@noodle-borg/service/dist/application-runtime-target.js +15 -2
- package/node_modules/@noodle-borg/service/dist/business-information/definition-resolver.js +19 -0
- package/node_modules/@noodle-borg/service/dist/business-information/in-memory-store.js +1 -1
- package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-blueprints.js +7 -0
- package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-executable.js +11 -1
- package/node_modules/@noodle-borg/service/dist/business-information/model.js +2 -2
- package/node_modules/@noodle-borg/service/dist/business-information/portable.js +1 -1
- package/node_modules/@noodle-borg/service/dist/business-information/profiles.js +37 -1
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +19 -1
- package/node_modules/@noodle-borg/service/dist/customer-auth-audience-binding.js +16 -5
- package/node_modules/@noodle-borg/service/dist/deployment-authentication.js +19 -0
- package/node_modules/@noodle-borg/service/dist/deployment-execution.js +1 -1
- package/node_modules/@noodle-borg/service/dist/deployment-record-version.js +31 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js +15 -1
- package/node_modules/@noodle-borg/service/dist/operation-coordination.js +185 -0
- package/node_modules/@noodle-borg/service/dist/operation-evidence.js +3 -1
- package/node_modules/@noodle-borg/service/dist/registry-access.js +18 -3
- package/node_modules/@noodle-borg/service/dist/registry-compile.js +42 -1
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +15 -0
- package/node_modules/@noodle-borg/service/dist/registry-rollback.js +2 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.js +12 -5
- package/node_modules/@noodle-borg/service/dist/registry-status.js +3 -0
- package/node_modules/@noodle-borg/service/dist/registry-targets.js +8 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +31 -36
- package/node_modules/@noodle-borg/service/dist/routes/access.js +5 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-activity.js +48 -53
- package/node_modules/@noodle-borg/service/dist/routes/business-information-dispatch.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/business-information-installation.js +51 -17
- package/node_modules/@noodle-borg/service/dist/routes/business-information-paths.js +6 -4
- package/node_modules/@noodle-borg/service/dist/routes/business-information-staff.js +4 -3
- package/node_modules/@noodle-borg/service/dist/routes/business-information.js +11 -6
- package/node_modules/@noodle-borg/service/dist/routes/deploy-public-embed.js +7 -2
- package/node_modules/@noodle-borg/service/dist/service.js +2 -1
- package/node_modules/@noodle-borg/service/dist/solution-installation-activation.js +58 -3
- package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js +10 -3
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.js +10 -3
- package/node_modules/@noodle-borg/service/dist/store/records.js +4 -2
- package/node_modules/@noodle-borg/service/dist/store.d.ts +5 -1
- package/node_modules/@noodle-borg/service/package.json +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information.d.ts +52 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information.js +6 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.d.ts +23 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.js +34 -4
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/operation-coordination.d.ts +59 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/operation-coordination.js +51 -0
- package/package.json +2 -2
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/** Strict service-output contracts for control-plane reads and mutations (ADR 0128). */
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { accessModeSchema } from './access-mode.js';
|
|
4
|
+
/** Effective authority enforcing caller authentication for one deployment. */
|
|
5
|
+
export const deploymentAuthenticationSchema = z.enum(['none', 'platform', 'customer']);
|
|
4
6
|
function containsC0OrDel(value) {
|
|
5
7
|
for (let index = 0; index < value.length; index += 1) {
|
|
6
8
|
const codeUnit = value.charCodeAt(index);
|
|
@@ -46,6 +48,7 @@ export const accessUpdateResponseSchema = z
|
|
|
46
48
|
deploymentId: z.string().min(1),
|
|
47
49
|
serverVersion: z.string().min(1).optional(),
|
|
48
50
|
accessMode: accessModeSchema,
|
|
51
|
+
authentication: deploymentAuthenticationSchema.optional(),
|
|
49
52
|
ownerSubject: deploymentOwnerSubjectSchema.optional(),
|
|
50
53
|
})
|
|
51
54
|
.strict(),
|
|
@@ -53,6 +56,7 @@ export const accessUpdateResponseSchema = z
|
|
|
53
56
|
previousOwnerSubject: deploymentOwnerSubjectSchema.optional(),
|
|
54
57
|
accessChanged: z.boolean(),
|
|
55
58
|
ownerChanged: z.boolean(),
|
|
59
|
+
policyChanged: z.boolean().optional(),
|
|
56
60
|
changed: z.boolean(),
|
|
57
61
|
})
|
|
58
62
|
.strict()
|
|
@@ -65,11 +69,19 @@ export const accessUpdateResponseSchema = z
|
|
|
65
69
|
message: 'owner-only access requires a current owner subject',
|
|
66
70
|
});
|
|
67
71
|
}
|
|
68
|
-
if (value.
|
|
72
|
+
if ((value.deployment.authentication === undefined) !== (value.policyChanged === undefined)) {
|
|
73
|
+
context.addIssue({
|
|
74
|
+
code: 'custom',
|
|
75
|
+
path: ['policyChanged'],
|
|
76
|
+
message: 'authentication and policyChanged must be present together',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (value.changed !==
|
|
80
|
+
(value.accessChanged || value.ownerChanged || (value.policyChanged ?? false))) {
|
|
69
81
|
context.addIssue({
|
|
70
82
|
code: 'custom',
|
|
71
83
|
path: ['changed'],
|
|
72
|
-
message: 'changed must equal accessChanged || ownerChanged',
|
|
84
|
+
message: 'changed must equal accessChanged || ownerChanged || policyChanged',
|
|
73
85
|
});
|
|
74
86
|
}
|
|
75
87
|
});
|
|
@@ -90,12 +102,14 @@ export const accessUpdateClientResponseSchema = z
|
|
|
90
102
|
deploymentId: z.string().min(1),
|
|
91
103
|
serverVersion: z.string().min(1).optional(),
|
|
92
104
|
accessMode: accessModeSchema,
|
|
105
|
+
authentication: deploymentAuthenticationSchema.optional(),
|
|
93
106
|
ownerSubject: deploymentOwnerSubjectSchema.optional(),
|
|
94
107
|
}),
|
|
95
108
|
previousAccessMode: accessModeSchema,
|
|
96
109
|
previousOwnerSubject: deploymentOwnerSubjectSchema.optional(),
|
|
97
110
|
accessChanged: z.boolean().optional(),
|
|
98
111
|
ownerChanged: z.boolean().optional(),
|
|
112
|
+
policyChanged: z.boolean().optional(),
|
|
99
113
|
changed: z.boolean(),
|
|
100
114
|
})
|
|
101
115
|
.superRefine((value, context) => {
|
|
@@ -107,6 +121,20 @@ export const accessUpdateClientResponseSchema = z
|
|
|
107
121
|
message: 'accessChanged and ownerChanged must be present together',
|
|
108
122
|
});
|
|
109
123
|
}
|
|
124
|
+
if ((value.deployment.authentication === undefined) !== (value.policyChanged === undefined)) {
|
|
125
|
+
context.addIssue({
|
|
126
|
+
code: 'custom',
|
|
127
|
+
path: ['policyChanged'],
|
|
128
|
+
message: 'authentication and policyChanged must be present together',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
if (value.policyChanged !== undefined && !modernComponents) {
|
|
132
|
+
context.addIssue({
|
|
133
|
+
code: 'custom',
|
|
134
|
+
path: ['policyChanged'],
|
|
135
|
+
message: 'policyChanged requires accessChanged and ownerChanged',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
110
138
|
if (modernComponents &&
|
|
111
139
|
value.deployment.accessMode === 'owner-only' &&
|
|
112
140
|
value.deployment.ownerSubject === undefined) {
|
|
@@ -116,11 +144,13 @@ export const accessUpdateClientResponseSchema = z
|
|
|
116
144
|
message: 'owner-only access requires a current owner subject',
|
|
117
145
|
});
|
|
118
146
|
}
|
|
119
|
-
if (modernComponents &&
|
|
147
|
+
if (modernComponents &&
|
|
148
|
+
value.changed !==
|
|
149
|
+
(value.accessChanged || value.ownerChanged || (value.policyChanged ?? false))) {
|
|
120
150
|
context.addIssue({
|
|
121
151
|
code: 'custom',
|
|
122
152
|
path: ['changed'],
|
|
123
|
-
message: 'changed must equal accessChanged || ownerChanged',
|
|
153
|
+
message: 'changed must equal accessChanged || ownerChanged || policyChanged',
|
|
124
154
|
});
|
|
125
155
|
}
|
|
126
156
|
})
|
|
@@ -384,4 +384,5 @@ export * from './application-activity.js';
|
|
|
384
384
|
export * from './application-connections.js';
|
|
385
385
|
export * from './application-onboarding.js';
|
|
386
386
|
export * from './billing-catalog.js';
|
|
387
|
+
export * from './operation-coordination.js';
|
|
387
388
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -226,4 +226,5 @@ export * from './application-activity.js';
|
|
|
226
226
|
export * from './application-connections.js';
|
|
227
227
|
export * from './application-onboarding.js';
|
|
228
228
|
export * from './billing-catalog.js';
|
|
229
|
+
export * from './operation-coordination.js';
|
|
229
230
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const OperationCoordinationListRequestSchema: z.ZodObject<{
|
|
3
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
4
|
+
beforeResource: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$strict>;
|
|
6
|
+
export declare const OperationCoordinationResolveRequestSchema: z.ZodObject<{
|
|
7
|
+
resource: z.ZodString;
|
|
8
|
+
token: z.ZodUUID;
|
|
9
|
+
reason: z.ZodString;
|
|
10
|
+
}, z.core.$strict>;
|
|
11
|
+
export declare const OperationCoordinationListResponseSchema: z.ZodObject<{
|
|
12
|
+
ok: z.ZodLiteral<true>;
|
|
13
|
+
data: z.ZodObject<{
|
|
14
|
+
records: z.ZodArray<z.ZodObject<{
|
|
15
|
+
resource: z.ZodString;
|
|
16
|
+
token: z.ZodUUID;
|
|
17
|
+
reference: z.ZodString;
|
|
18
|
+
operationDigest: z.ZodString;
|
|
19
|
+
startedAt: z.ZodISODateTime;
|
|
20
|
+
deadline: z.ZodISODateTime;
|
|
21
|
+
state: z.ZodEnum<{
|
|
22
|
+
unknown: "unknown";
|
|
23
|
+
executing: "executing";
|
|
24
|
+
}>;
|
|
25
|
+
}, z.core.$strict>>;
|
|
26
|
+
nextBeforeResource: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export declare const OperationCoordinationListClientResponseSchema: z.ZodObject<{
|
|
30
|
+
ok: z.ZodLiteral<true>;
|
|
31
|
+
data: z.ZodObject<{
|
|
32
|
+
records: z.ZodArray<z.ZodObject<{
|
|
33
|
+
resource: z.ZodString;
|
|
34
|
+
token: z.ZodUUID;
|
|
35
|
+
reference: z.ZodString;
|
|
36
|
+
operationDigest: z.ZodString;
|
|
37
|
+
startedAt: z.ZodISODateTime;
|
|
38
|
+
deadline: z.ZodISODateTime;
|
|
39
|
+
state: z.ZodEnum<{
|
|
40
|
+
unknown: "unknown";
|
|
41
|
+
executing: "executing";
|
|
42
|
+
}>;
|
|
43
|
+
}, z.core.$strip>>;
|
|
44
|
+
nextBeforeResource: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export declare const OperationCoordinationResolveResponseSchema: z.ZodObject<{
|
|
48
|
+
ok: z.ZodLiteral<true>;
|
|
49
|
+
data: z.ZodObject<{
|
|
50
|
+
resolved: z.ZodLiteral<true>;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
}, z.core.$strict>;
|
|
53
|
+
export declare const OperationCoordinationResolveClientResponseSchema: z.ZodObject<{
|
|
54
|
+
ok: z.ZodLiteral<true>;
|
|
55
|
+
data: z.ZodObject<{
|
|
56
|
+
resolved: z.ZodLiteral<true>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
//# sourceMappingURL=operation-coordination.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const ResourceSchema = z.string().regex(/^[a-f0-9]{64}$/);
|
|
3
|
+
export const OperationCoordinationListRequestSchema = z.strictObject({
|
|
4
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
5
|
+
beforeResource: ResourceSchema.optional(),
|
|
6
|
+
});
|
|
7
|
+
export const OperationCoordinationResolveRequestSchema = z.strictObject({
|
|
8
|
+
resource: ResourceSchema,
|
|
9
|
+
token: z.uuid(),
|
|
10
|
+
reason: z
|
|
11
|
+
.string()
|
|
12
|
+
.trim()
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(256)
|
|
15
|
+
.regex(/^[^\p{Cc}\p{Zl}\p{Zp}]*$/u),
|
|
16
|
+
});
|
|
17
|
+
const RecordSchema = z.strictObject({
|
|
18
|
+
resource: ResourceSchema,
|
|
19
|
+
token: z.uuid(),
|
|
20
|
+
reference: z
|
|
21
|
+
.string()
|
|
22
|
+
.regex(/^[A-Za-z0-9._:@/-]{1,256}$/)
|
|
23
|
+
.refine((value) => !value.includes('://')),
|
|
24
|
+
operationDigest: ResourceSchema,
|
|
25
|
+
startedAt: z.iso.datetime(),
|
|
26
|
+
deadline: z.iso.datetime(),
|
|
27
|
+
state: z.enum(['executing', 'unknown']),
|
|
28
|
+
});
|
|
29
|
+
export const OperationCoordinationListResponseSchema = z.strictObject({
|
|
30
|
+
ok: z.literal(true),
|
|
31
|
+
data: z.strictObject({
|
|
32
|
+
records: z.array(RecordSchema).max(100),
|
|
33
|
+
nextBeforeResource: ResourceSchema.optional(),
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
export const OperationCoordinationListClientResponseSchema = z.object({
|
|
37
|
+
ok: z.literal(true),
|
|
38
|
+
data: z.object({
|
|
39
|
+
records: z.array(z.object(RecordSchema.shape)).max(100),
|
|
40
|
+
nextBeforeResource: ResourceSchema.optional(),
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
export const OperationCoordinationResolveResponseSchema = z.strictObject({
|
|
44
|
+
ok: z.literal(true),
|
|
45
|
+
data: z.strictObject({ resolved: z.literal(true) }),
|
|
46
|
+
});
|
|
47
|
+
export const OperationCoordinationResolveClientResponseSchema = z.object({
|
|
48
|
+
ok: z.literal(true),
|
|
49
|
+
data: z.object({ resolved: z.literal(true) }),
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=operation-coordination.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/one",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.166.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"@modelcontextprotocol/client": "2.0.0",
|
|
236
236
|
"@modelcontextprotocol/server": "2.0.0",
|
|
237
237
|
"@noodle-borg/admission-limits": "0.0.0",
|
|
238
|
-
"@noodle-borg/agent-kit": "0.
|
|
238
|
+
"@noodle-borg/agent-kit": "0.102.0",
|
|
239
239
|
"@noodle-borg/app-audit": "0.0.0",
|
|
240
240
|
"@noodle-borg/app-package": "0.0.0",
|
|
241
241
|
"@noodle-borg/assistant-gateway": "0.0.0",
|