@kindgi/tools 0.1.8-rc.0 → 0.1.9-rc.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.
@@ -0,0 +1,17 @@
1
+ import type { JsonSchema, ToolManifest } from './types.js';
2
+ /** A declared env value's `default`, when it's a string (env values are strings; `defineTool` checks it). */
3
+ export declare function envDefaultOf(schema: JsonSchema): string | undefined;
4
+ /**
5
+ * The env values a tool can't run without, by name: the ones its code
6
+ * declares (`needsSpec.env`) with no `default`. A name no scope sets takes
7
+ * its default, so only these must be set somewhere. Sorted.
8
+ */
9
+ export declare function toolRequiredEnvNames(manifest: Pick<ToolManifest, 'needsSpec'>): string[];
10
+ /**
11
+ * The secrets a tool's code declares (`needsSpec.secrets`) that a call runs
12
+ * without, by name: those whose schema says it accepts `null`, and does
13
+ * (runtime 0.1.6 or later). One that was never stored is left out of
14
+ * `ctx.secrets`; a revoked one still refuses the call. Sorted.
15
+ */
16
+ export declare function toolOptionalSecretNames(manifest: Pick<ToolManifest, 'needsSpec'>): string[];
17
+ //# sourceMappingURL=env-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-names.d.ts","sourceRoot":"","sources":["../src/env-names.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,MAAM,EAAE,CAKxF;AAqBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,MAAM,EAAE,CAK3F"}
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { compileInlineSchema } from '@kindgi/schema';
4
+ /** A declared env value's `default`, when it's a string (env values are strings; `defineTool` checks it). */
5
+ export function envDefaultOf(schema) {
6
+ const fallback = schema.default;
7
+ return typeof fallback === 'string' ? fallback : undefined;
8
+ }
9
+ /**
10
+ * The env values a tool can't run without, by name: the ones its code
11
+ * declares (`needsSpec.env`) with no `default`. A name no scope sets takes
12
+ * its default, so only these must be set somewhere. Sorted.
13
+ */
14
+ export function toolRequiredEnvNames(manifest) {
15
+ return Object.entries(manifest.needsSpec?.env ?? {})
16
+ .filter(([, schema]) => envDefaultOf(schema) === undefined)
17
+ .map(([name]) => name)
18
+ .sort();
19
+ }
20
+ /**
21
+ * Whether a schema says, in so many words, that it accepts `null`: `type`
22
+ * is or includes `'null'`, `enum` lists it, `const` is it, or a branch of
23
+ * `anyOf`/`oneOf` does. An unconstrained schema (`{}`) accepts null too,
24
+ * but says nothing. The first half of the runtime's rule (`acceptsNull`).
25
+ */
26
+ function namesNull(schema) {
27
+ if (schema === null || typeof schema !== 'object')
28
+ return false;
29
+ const s = schema;
30
+ if (s.type === 'null' || (Array.isArray(s.type) && s.type.includes('null')))
31
+ return true;
32
+ if (Array.isArray(s.enum) && s.enum.includes(null))
33
+ return true;
34
+ if ('const' in s && s.const === null)
35
+ return true;
36
+ for (const key of ['anyOf', 'oneOf']) {
37
+ const branches = s[key];
38
+ if (Array.isArray(branches) && branches.some(namesNull))
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+ /**
44
+ * The secrets a tool's code declares (`needsSpec.secrets`) that a call runs
45
+ * without, by name: those whose schema says it accepts `null`, and does
46
+ * (runtime 0.1.6 or later). One that was never stored is left out of
47
+ * `ctx.secrets`; a revoked one still refuses the call. Sorted.
48
+ */
49
+ export function toolOptionalSecretNames(manifest) {
50
+ return Object.entries(manifest.needsSpec?.secrets ?? {})
51
+ .filter(([, schema]) => acceptsNull(schema))
52
+ .map(([name]) => name)
53
+ .sort();
54
+ }
55
+ /**
56
+ * The runtime's rule for an optional secret: its schema names `null`, and
57
+ * `null` validates against it. A schema that doesn't compile is required.
58
+ */
59
+ function acceptsNull(schema) {
60
+ if (!namesNull(schema))
61
+ return false;
62
+ const compiled = compileInlineSchema(schema);
63
+ return compiled.kind === 'ok' && compiled.value.validate(null).kind === 'ok';
64
+ }
65
+ //# sourceMappingURL=env-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-names.js","sourceRoot":"","sources":["../src/env-names.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD,6GAA6G;AAC7G,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,MAAM,QAAQ,GAAI,MAAyC,CAAC,OAAO,CAAC;IACpE,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAyC;IAC5E,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;SACrB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAe;IAChC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,CAAC,GAAG,MAA2C,CAAC;IACtD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyC;IAC/E,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC;SACrD,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;SACrB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,MAAkB;IACrC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AAC/E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export type { ToolSpecSynthesizer, ToolSpecSynthesizerOptions } from './spec-reg
6
6
  export { invokeTool } from './invoke.js';
7
7
  export { invokeToolForTest, toolContextForTest } from './test-context.js';
8
8
  export { toolSecretNames } from './secret-names.js';
9
+ export { toolOptionalSecretNames, toolRequiredEnvNames } from './env-names.js';
9
10
  export { ToolPreconditionError, isToolPreconditionError } from './precondition.js';
10
11
  export { TOOL_ENV_RECORD_KEY, toolCallRecordKey } from './record-keys.js';
11
12
  export { TOOL_IDEMPOTENCY_NAMESPACE, toolIdempotencyKey } from './idempotency-key.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,IAAI,eAAe,GAC5C,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EACV,OAAO,EACP,eAAe,EACf,MAAM,EACN,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,IAAI,EACJ,aAAa,EACb,aAAa,EACb,WAAW,EACX,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,IAAI,eAAe,GAC5C,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EACV,OAAO,EACP,eAAe,EACf,MAAM,EACN,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,IAAI,EACJ,aAAa,EACb,aAAa,EACb,WAAW,EACX,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export { registerToolSpecSynthesizer, getToolSpecSynthesizer } from './spec-regi
9
9
  export { invokeTool } from './invoke.js';
10
10
  export { invokeToolForTest, toolContextForTest } from './test-context.js';
11
11
  export { toolSecretNames } from './secret-names.js';
12
+ export { toolOptionalSecretNames, toolRequiredEnvNames } from './env-names.js';
12
13
  export { ToolPreconditionError, isToolPreconditionError } from './precondition.js';
13
14
  export { TOOL_ENV_RECORD_KEY, toolCallRecordKey } from './record-keys.js';
14
15
  export { TOOL_IDEMPOTENCY_NAMESPACE, toolIdempotencyKey } from './idempotency-key.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,IAAI,eAAe,GAC5C,MAAM,aAAa,CAAC;AAQrB,gEAAgE;AAChE,kEAAkE;AAClE,8DAA8D;AAC9D,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,IAAI,eAAe,GAC5C,MAAM,aAAa,CAAC;AAQrB,gEAAgE;AAChE,kEAAkE;AAClE,8DAA8D;AAC9D,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-env.d.ts","sourceRoot":"","sources":["../src/invoke-env.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AASnD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,qBAAqB,CAAC,CAmB7E"}
1
+ {"version":3,"file":"invoke-env.d.ts","sourceRoot":"","sources":["../src/invoke-env.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AASnD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,qBAAqB,CAAC,CAmB7E"}
@@ -11,6 +11,7 @@
11
11
  * the schema up front). Test only: `invokeTool` itself never decides env.
12
12
  */
13
13
  import { compileInlineSchema } from '@kindgi/schema';
14
+ import { envDefaultOf } from './env-names.js';
14
15
  import { ToolPreconditionError } from './precondition.js';
15
16
  /**
16
17
  * Compiled env schemas, by schema object (a tool's are defined once and
@@ -30,7 +31,7 @@ export function envForCall(tool, given) {
30
31
  const chosen = declared.map(([name, schema]) => ({
31
32
  name,
32
33
  schema,
33
- value: given !== undefined && Object.hasOwn(given, name) ? given[name] : defaultOf(schema),
34
+ value: given !== undefined && Object.hasOwn(given, name) ? given[name] : envDefaultOf(schema),
34
35
  }));
35
36
  // As the runtime: a missing value refuses the call first, then each value is checked.
36
37
  const missing = chosen.filter((c) => c.value === undefined).map((c) => c.name);
@@ -63,11 +64,6 @@ function checkValue(id, name, schema, value) {
63
64
  return undefined;
64
65
  return new ToolPreconditionError('env-value-invalid', `env value "${name}" is "${value}", which doesn't match the schema tool "${id}" declares for it: ${constraintsBroken(checked.error.errors)}`);
65
66
  }
66
- /** A schema's `default`, when it's a string (env values are strings; `defineTool` checks it). */
67
- function defaultOf(schema) {
68
- const fallback = schema.default;
69
- return typeof fallback === 'string' ? fallback : undefined;
70
- }
71
67
  function validatorFor(schema) {
72
68
  const key = schema;
73
69
  const cached = compiled.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-env.js","sourceRoot":"","sources":["../src/invoke-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke-env.js","sourceRoot":"","sources":["../src/invoke-env.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,10 @@
68
68
  "type": "boolean",
69
69
  "description": "Semantic marker: `true` when this tool causes observable side effects (writes state, calls external APIs with mutations, sends messages). Read-only tools set `false`. Absent defaults to `true`. Consumed by the HITL default classifier — a read-only tool passes straight through, a mutating tool asks on first use."
70
70
  },
71
+ "needsApprovalWhenUnattended": {
72
+ "type": "boolean",
73
+ "description": "`true` when a person must say yes to every call of this tool in a run no person started (a schedule, a webhook, an event or a service account's key started it). In such a run an agent's call waits for a person's yes whatever the agent's approval rules say, and a flow's tool step that calls it is refused. Absent means `false`. Optional additive field."
74
+ },
71
75
  "limits": {
72
76
  "type": "object",
73
77
  "additionalProperties": false,
package/dist/types.d.ts CHANGED
@@ -397,6 +397,21 @@ export interface ToolManifest {
397
397
  * through, a mutating tool asks on first use.
398
398
  */
399
399
  readonly mutating?: boolean;
400
+ /**
401
+ * `true` when a person must say yes to every call of this tool in a run
402
+ * no person started: one a schedule, a webhook, an event or a service
403
+ * account's key started (`RunStartedBy` other than `person`, or none).
404
+ * In such a run, an agent's call of the tool waits for a person's yes
405
+ * whatever the agent's `conversationPolicy.hitl.tools` says (the
406
+ * agent's rules can't lift it), and a flow's tool step that calls it is
407
+ * refused. In a run a person started, the agent's rules decide, as
408
+ * for any tool. Absent = `false`.
409
+ *
410
+ * Declare it on a tool that moves money or changes something people
411
+ * rely on, so that an agent reused under a trigger can't run it with no
412
+ * one asked.
413
+ */
414
+ readonly needsApprovalWhenUnattended?: boolean;
400
415
  /** Isolation posture — see `SandboxMode`. */
401
416
  readonly sandbox?: SandboxMode;
402
417
  /** Memory + CPU caps enforced by the sandbox at dispatch. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3D,4FAA4F;AAC5F,eAAO,MAAM,YAAY,kIASf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAChF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,kBAAkB,GAAG,QAAQ,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACtC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GACpB;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAE,SAAQ,YAAY;IAC7E;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC9C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAChD;AAED;;;;;;GAMG;AAEH,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAErC,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kindgi/tools",
3
- "version": "0.1.8-rc.0",
3
+ "version": "0.1.9-rc.0",
4
4
  "description": "Tool authoring shape + registry + invocation for Kindgi. A tool is a typed, effect-declared unit of work — the same definition runs in-process for one flow, over MCP for another. Pure — no kernel dependency; the kernel bridges tools to node handlers separately.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -30,9 +30,9 @@
30
30
  "type-manifest.json"
31
31
  ],
32
32
  "dependencies": {
33
- "@kindgi/log": "0.1.8-rc.0",
34
- "@kindgi/schema": "0.1.8-rc.0",
35
- "@kindgi/types": "0.1.8-rc.0",
33
+ "@kindgi/log": "0.1.9-rc.0",
34
+ "@kindgi/schema": "0.1.9-rc.0",
35
+ "@kindgi/types": "0.1.9-rc.0",
36
36
  "ajv": "^8.17.1",
37
37
  "ajv-formats": "^3.0.1",
38
38
  "semver": "^7.6.3"
@@ -46,8 +46,8 @@
46
46
  }
47
47
  },
48
48
  "devDependencies": {
49
- "@kindgi/bounds": "0.1.8-rc.0",
50
- "@kindgi/specs": "0.1.8-rc.0",
49
+ "@kindgi/bounds": "0.1.9-rc.0",
50
+ "@kindgi/specs": "0.1.9-rc.0",
51
51
  "@types/node": "^22.10.5",
52
52
  "@types/semver": "^7.5.8",
53
53
  "typescript": "^5.7.3",
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ import { compileInlineSchema } from '@kindgi/schema';
5
+ import type { JsonSchema, ToolManifest } from './types.js';
6
+
7
+ /** A declared env value's `default`, when it's a string (env values are strings; `defineTool` checks it). */
8
+ export function envDefaultOf(schema: JsonSchema): string | undefined {
9
+ const fallback = (schema as { readonly default?: unknown }).default;
10
+ return typeof fallback === 'string' ? fallback : undefined;
11
+ }
12
+
13
+ /**
14
+ * The env values a tool can't run without, by name: the ones its code
15
+ * declares (`needsSpec.env`) with no `default`. A name no scope sets takes
16
+ * its default, so only these must be set somewhere. Sorted.
17
+ */
18
+ export function toolRequiredEnvNames(manifest: Pick<ToolManifest, 'needsSpec'>): string[] {
19
+ return Object.entries(manifest.needsSpec?.env ?? {})
20
+ .filter(([, schema]) => envDefaultOf(schema) === undefined)
21
+ .map(([name]) => name)
22
+ .sort();
23
+ }
24
+
25
+ /**
26
+ * Whether a schema says, in so many words, that it accepts `null`: `type`
27
+ * is or includes `'null'`, `enum` lists it, `const` is it, or a branch of
28
+ * `anyOf`/`oneOf` does. An unconstrained schema (`{}`) accepts null too,
29
+ * but says nothing. The first half of the runtime's rule (`acceptsNull`).
30
+ */
31
+ function namesNull(schema: unknown): boolean {
32
+ if (schema === null || typeof schema !== 'object') return false;
33
+ const s = schema as Readonly<Record<string, unknown>>;
34
+ if (s.type === 'null' || (Array.isArray(s.type) && s.type.includes('null'))) return true;
35
+ if (Array.isArray(s.enum) && s.enum.includes(null)) return true;
36
+ if ('const' in s && s.const === null) return true;
37
+ for (const key of ['anyOf', 'oneOf'] as const) {
38
+ const branches = s[key];
39
+ if (Array.isArray(branches) && branches.some(namesNull)) return true;
40
+ }
41
+ return false;
42
+ }
43
+
44
+ /**
45
+ * The secrets a tool's code declares (`needsSpec.secrets`) that a call runs
46
+ * without, by name: those whose schema says it accepts `null`, and does
47
+ * (runtime 0.1.6 or later). One that was never stored is left out of
48
+ * `ctx.secrets`; a revoked one still refuses the call. Sorted.
49
+ */
50
+ export function toolOptionalSecretNames(manifest: Pick<ToolManifest, 'needsSpec'>): string[] {
51
+ return Object.entries(manifest.needsSpec?.secrets ?? {})
52
+ .filter(([, schema]) => acceptsNull(schema))
53
+ .map(([name]) => name)
54
+ .sort();
55
+ }
56
+
57
+ /**
58
+ * The runtime's rule for an optional secret: its schema names `null`, and
59
+ * `null` validates against it. A schema that doesn't compile is required.
60
+ */
61
+ function acceptsNull(schema: JsonSchema): boolean {
62
+ if (!namesNull(schema)) return false;
63
+ const compiled = compileInlineSchema(schema);
64
+ return compiled.kind === 'ok' && compiled.value.validate(null).kind === 'ok';
65
+ }
package/src/index.ts CHANGED
@@ -24,6 +24,7 @@ export type { ToolSpecSynthesizer, ToolSpecSynthesizerOptions } from './spec-reg
24
24
  export { invokeTool } from './invoke.js';
25
25
  export { invokeToolForTest, toolContextForTest } from './test-context.js';
26
26
  export { toolSecretNames } from './secret-names.js';
27
+ export { toolOptionalSecretNames, toolRequiredEnvNames } from './env-names.js';
27
28
  export { ToolPreconditionError, isToolPreconditionError } from './precondition.js';
28
29
  export { TOOL_ENV_RECORD_KEY, toolCallRecordKey } from './record-keys.js';
29
30
  export { TOOL_IDEMPOTENCY_NAMESPACE, toolIdempotencyKey } from './idempotency-key.js';
package/src/invoke-env.ts CHANGED
@@ -15,6 +15,7 @@
15
15
  import { type CompiledInlineSchema, compileInlineSchema } from '@kindgi/schema';
16
16
  import type { Result } from '@kindgi/types';
17
17
 
18
+ import { envDefaultOf } from './env-names.js';
18
19
  import { ToolPreconditionError } from './precondition.js';
19
20
  import type { JsonSchema, Tool } from './types.js';
20
21
 
@@ -39,7 +40,7 @@ export function envForCall(
39
40
  const chosen = declared.map(([name, schema]) => ({
40
41
  name,
41
42
  schema,
42
- value: given !== undefined && Object.hasOwn(given, name) ? given[name] : defaultOf(schema),
43
+ value: given !== undefined && Object.hasOwn(given, name) ? given[name] : envDefaultOf(schema),
43
44
  }));
44
45
  // As the runtime: a missing value refuses the call first, then each value is checked.
45
46
  const missing = chosen.filter((c) => c.value === undefined).map((c) => c.name);
@@ -83,12 +84,6 @@ function checkValue(
83
84
  );
84
85
  }
85
86
 
86
- /** A schema's `default`, when it's a string (env values are strings; `defineTool` checks it). */
87
- function defaultOf(schema: JsonSchema): string | undefined {
88
- const fallback = (schema as { readonly default?: unknown }).default;
89
- return typeof fallback === 'string' ? fallback : undefined;
90
- }
91
-
92
87
  function validatorFor(schema: JsonSchema): Result<CompiledInlineSchema, string> {
93
88
  const key = schema as object;
94
89
  const cached = compiled.get(key);
@@ -68,6 +68,10 @@
68
68
  "type": "boolean",
69
69
  "description": "Semantic marker: `true` when this tool causes observable side effects (writes state, calls external APIs with mutations, sends messages). Read-only tools set `false`. Absent defaults to `true`. Consumed by the HITL default classifier — a read-only tool passes straight through, a mutating tool asks on first use."
70
70
  },
71
+ "needsApprovalWhenUnattended": {
72
+ "type": "boolean",
73
+ "description": "`true` when a person must say yes to every call of this tool in a run no person started (a schedule, a webhook, an event or a service account's key started it). In such a run an agent's call waits for a person's yes whatever the agent's approval rules say, and a flow's tool step that calls it is refused. Absent means `false`. Optional additive field."
74
+ },
71
75
  "limits": {
72
76
  "type": "object",
73
77
  "additionalProperties": false,
package/src/types.ts CHANGED
@@ -420,6 +420,21 @@ export interface ToolManifest {
420
420
  * through, a mutating tool asks on first use.
421
421
  */
422
422
  readonly mutating?: boolean;
423
+ /**
424
+ * `true` when a person must say yes to every call of this tool in a run
425
+ * no person started: one a schedule, a webhook, an event or a service
426
+ * account's key started (`RunStartedBy` other than `person`, or none).
427
+ * In such a run, an agent's call of the tool waits for a person's yes
428
+ * whatever the agent's `conversationPolicy.hitl.tools` says (the
429
+ * agent's rules can't lift it), and a flow's tool step that calls it is
430
+ * refused. In a run a person started, the agent's rules decide, as
431
+ * for any tool. Absent = `false`.
432
+ *
433
+ * Declare it on a tool that moves money or changes something people
434
+ * rely on, so that an agent reused under a trigger can't run it with no
435
+ * one asked.
436
+ */
437
+ readonly needsApprovalWhenUnattended?: boolean;
423
438
  /** Isolation posture — see `SandboxMode`. */
424
439
  readonly sandbox?: SandboxMode;
425
440
  /** Memory + CPU caps enforced by the sandbox at dispatch. */