@fjall/ai-tools 2.22.1 → 2.23.1

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.
@@ -6,9 +6,10 @@ export declare const manageSecretSchema: z.ZodObject<{
6
6
  list: "list";
7
7
  }>;
8
8
  applicationId: z.ZodString;
9
- app: z.ZodString;
9
+ app: z.ZodOptional<z.ZodString>;
10
10
  cluster: z.ZodOptional<z.ZodString>;
11
11
  service: z.ZodOptional<z.ZodString>;
12
+ lambda: z.ZodOptional<z.ZodString>;
12
13
  name: z.ZodOptional<z.ZodString>;
13
14
  value: z.ZodOptional<z.ZodString>;
14
15
  }, z.core.$strict>;
@@ -7,14 +7,35 @@ export const manageSecretSchema = z
7
7
  applicationId: z
8
8
  .string()
9
9
  .describe("The application whose AWS account holds the secrets"),
10
+ /**
11
+ * @deprecated The executor derives the app segment server-side from
12
+ * `applicationId` and ignores this value — a client-supplied `app` could
13
+ * name a namespace the operation does not touch. Accepted only for
14
+ * backwards compatibility with older tool callers.
15
+ */
10
16
  app: z
11
17
  .string()
12
18
  .min(1)
13
- .describe("SSM namespace app component (e.g. application name)"),
14
- cluster: z.string().optional().describe("SSM namespace cluster component"),
15
- service: z.string().optional().describe("SSM namespace service component"),
19
+ .optional()
20
+ .describe("Deprecated and ignored — the app segment is derived from applicationId"),
21
+ cluster: z
22
+ .string()
23
+ .min(1)
24
+ .optional()
25
+ .describe("SSM namespace cluster component"),
26
+ service: z
27
+ .string()
28
+ .min(1)
29
+ .optional()
30
+ .describe("SSM namespace service component"),
31
+ lambda: z
32
+ .string()
33
+ .min(1)
34
+ .optional()
35
+ .describe("SSM namespace lambda function component (mutually exclusive with cluster and service)"),
16
36
  name: z
17
37
  .string()
38
+ .min(1)
18
39
  .optional()
19
40
  .describe("Secret name (required for set and delete operations)"),
20
41
  value: z
@@ -23,4 +44,16 @@ export const manageSecretSchema = z
23
44
  .optional()
24
45
  .describe("Secret value (required for set operation)"),
25
46
  })
26
- .strict();
47
+ .strict()
48
+ // Refines mirror the canonical SecretNamespaceSchema (fjall/util/src/
49
+ // secrets.ts) so the model self-corrects before the executor's canonical
50
+ // re-validation; charset enforcement deliberately stays with the executor.
51
+ .refine((data) => !(data.service && !data.cluster), {
52
+ message: "Cluster is required when service is specified",
53
+ })
54
+ .refine((data) => !(data.lambda && (data.cluster || data.service)), {
55
+ message: "Lambda is mutually exclusive with cluster and service",
56
+ })
57
+ .refine((data) => data.cluster !== "lambda", {
58
+ message: 'The cluster name "lambda" is reserved for lambda-scoped parameter paths',
59
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/ai-tools",
3
- "version": "2.22.1",
3
+ "version": "2.23.1",
4
4
  "description": "Shared AI tool schemas and registry for Fjall webapp and CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -50,5 +50,5 @@
50
50
  "engines": {
51
51
  "node": ">=22.0.0"
52
52
  },
53
- "gitHead": "ec04f1739f19e4b5212899df7f733ee0d1f06ec3"
53
+ "gitHead": "749133c6c5cfe24a09a401869f2193c7d177a324"
54
54
  }