@kindgi/handler-runtime 0.1.4 → 0.1.5-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.
- package/README.md +1 -0
- package/dist/handler-runner.d.ts +21 -3
- package/dist/handler-runner.d.ts.map +1 -1
- package/dist/handler-runner.js +40 -0
- package/dist/handler-runner.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kindgi-index.d.ts +50 -10
- package/dist/kindgi-index.d.ts.map +1 -1
- package/dist/kindgi-index.js +154 -12
- package/dist/kindgi-index.js.map +1 -1
- package/dist/pack-env.d.ts +3 -3
- package/dist/pack-service/main.d.ts +8 -2
- package/dist/pack-service/main.d.ts.map +1 -1
- package/dist/pack-service/main.js +38 -19
- package/dist/pack-service/main.js.map +1 -1
- package/dist/pack-service/records.d.ts +45 -0
- package/dist/pack-service/records.d.ts.map +1 -0
- package/dist/pack-service/records.js +73 -0
- package/dist/pack-service/records.js.map +1 -0
- package/dist/pack-service/service.d.ts +7 -0
- package/dist/pack-service/service.d.ts.map +1 -1
- package/dist/pack-service/service.js +75 -13
- package/dist/pack-service/service.js.map +1 -1
- package/dist/pack-service/supervisor.d.ts +23 -2
- package/dist/pack-service/supervisor.d.ts.map +1 -1
- package/dist/pack-service/supervisor.js +50 -10
- package/dist/pack-service/supervisor.js.map +1 -1
- package/dist/protocol.d.ts +5 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/package.json +9 -7
- package/src/handler-runner.ts +62 -4
- package/src/index.ts +6 -0
- package/src/kindgi-index.ts +192 -17
- package/src/pack-env.ts +3 -3
- package/src/pack-service/main.ts +39 -20
- package/src/pack-service/records.ts +99 -0
- package/src/pack-service/service.ts +96 -16
- package/src/pack-service/supervisor.ts +65 -13
- package/src/protocol.ts +5 -0
package/README.md
CHANGED
|
@@ -137,6 +137,7 @@ if (outcome.kind === 'ok') {
|
|
|
137
137
|
| `zod-conversion-failed` | `z.toJSONSchema()` threw for a specific schema. |
|
|
138
138
|
| `manifest-validation-failed` | Inner manifest didn't match the expected shape (or was a `Result`-wrapped error). |
|
|
139
139
|
| `output-write-failed` | Filesystem write error. |
|
|
140
|
+
| `reserved-check-id` | A guardrail ships its own check (an `id` and an `evaluate`, as its `check` or any check its module exports) under a built-in check's id (`RESERVED_CHECK_IDS`: `must-cite`, `never-call-tool`, …), which the runtime would replace with the built-in. Naming a built-in (`check: 'must-cite'`) is fine: that's how to use it. |
|
|
140
141
|
|
|
141
142
|
### Loading `kindgi.config.*` on its own
|
|
142
143
|
|
package/dist/handler-runner.d.ts
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* 3. calls `handler(input, ctx)`;
|
|
14
14
|
* 4. validates the output against the tool's output JSON Schema.
|
|
15
15
|
*
|
|
16
|
-
* A check
|
|
16
|
+
* A check validates the config against the guardrail's `configSchema`
|
|
17
|
+
* (as sent), imports the module, resolves its `evaluate`, and calls
|
|
17
18
|
* `evaluate(config, trace, bindings)`.
|
|
18
19
|
*
|
|
19
20
|
* Neither throws: every failure is a typed `HandlerError`. The runner
|
|
@@ -21,11 +22,13 @@
|
|
|
21
22
|
* pack code is the team's own (trusted).
|
|
22
23
|
*/
|
|
23
24
|
import type { ValidateFunction } from 'ajv';
|
|
25
|
+
import type { Logger } from '@kindgi/log';
|
|
24
26
|
import type { Result } from '@kindgi/types';
|
|
25
27
|
/**
|
|
26
28
|
* What a handler gets beside its input: the tenant and run it serves,
|
|
27
|
-
* and
|
|
28
|
-
* the
|
|
29
|
+
* and the "typed needs" it declares (`needsSpec.env`, `needsSpec.secrets`),
|
|
30
|
+
* resolved by the runtime for this call and sent with it. `config` is
|
|
31
|
+
* reserved: no runtime sends it yet.
|
|
29
32
|
*/
|
|
30
33
|
export interface HandlerContext {
|
|
31
34
|
readonly tenantId: string;
|
|
@@ -35,6 +38,7 @@ export interface HandlerContext {
|
|
|
35
38
|
/** The project's org, when it has one (2.3.0). */
|
|
36
39
|
readonly orgId?: string;
|
|
37
40
|
readonly requestId?: string;
|
|
41
|
+
/** The declared env values: project, else org, else tenant (protocol 2.5.0). */
|
|
38
42
|
readonly env?: Readonly<Record<string, unknown>>;
|
|
39
43
|
readonly secrets?: Readonly<Record<string, unknown>>;
|
|
40
44
|
readonly config?: Readonly<Record<string, unknown>>;
|
|
@@ -50,6 +54,12 @@ export interface HandlerContext {
|
|
|
50
54
|
* should pass it on so they stop promptly.
|
|
51
55
|
*/
|
|
52
56
|
readonly abortSignal?: AbortSignal;
|
|
57
|
+
/**
|
|
58
|
+
* Never on the wire; the pack service adds it: a logger bound to the
|
|
59
|
+
* call (its tenant, run, request and trace). Not enumerable, like
|
|
60
|
+
* `secrets`.
|
|
61
|
+
*/
|
|
62
|
+
readonly log?: Logger;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* The tool being called, from the pack's `index.json` (the `kindgi-index`
|
|
@@ -76,6 +86,14 @@ export interface ToolInvocationSpec {
|
|
|
76
86
|
export interface CheckInvocationSpec {
|
|
77
87
|
readonly id: string;
|
|
78
88
|
readonly modulePath: string;
|
|
89
|
+
/**
|
|
90
|
+
* The guardrail's `configSchema` from the index. A call's `config` that
|
|
91
|
+
* doesn't fit it is refused (`input-validation-failed`, with the
|
|
92
|
+
* issues) before the check runs. It is checked as sent, the schema's
|
|
93
|
+
* defaults not filled in, as the indexer checks a declared config; the
|
|
94
|
+
* check's own schema fills them in.
|
|
95
|
+
*/
|
|
96
|
+
readonly configSchema?: Readonly<Record<string, unknown>>;
|
|
79
97
|
}
|
|
80
98
|
/** Every way a call can fail; the pack service answers with the same code. */
|
|
81
99
|
export type HandlerErrorCode = 'input-validation-failed' | 'output-validation-failed' | 'handler-import-failed' | 'handler-shape-invalid' | 'handler-throw' | 'check-shape-invalid';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-runner.d.ts","sourceRoot":"","sources":["../src/handler-runner.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"handler-runner.d.ts","sourceRoot":"","sources":["../src/handler-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/handler-runner.js
CHANGED
|
@@ -175,6 +175,35 @@ export async function runHandler(options) {
|
|
|
175
175
|
export async function runCheck(options) {
|
|
176
176
|
const { check, config, trace } = options;
|
|
177
177
|
const importCheck = options.importCheck ?? defaultImportCheck;
|
|
178
|
+
if (check.configSchema !== undefined) {
|
|
179
|
+
let configValidator;
|
|
180
|
+
try {
|
|
181
|
+
configValidator = compileSchema(check.configSchema, 'output');
|
|
182
|
+
}
|
|
183
|
+
catch (cause) {
|
|
184
|
+
return {
|
|
185
|
+
kind: 'err',
|
|
186
|
+
error: {
|
|
187
|
+
code: 'input-validation-failed',
|
|
188
|
+
message: `Check "${check.id}" config schema failed to compile: ${stringifyError(cause)}`,
|
|
189
|
+
toolId: check.id,
|
|
190
|
+
cause: serializeCause(cause),
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
if (!configValidator(config)) {
|
|
195
|
+
const issues = configValidator.errors ?? [];
|
|
196
|
+
return {
|
|
197
|
+
kind: 'err',
|
|
198
|
+
error: {
|
|
199
|
+
code: 'input-validation-failed',
|
|
200
|
+
message: `Check "${check.id}" config failed validation${describeFirstIssue(issues)}`,
|
|
201
|
+
toolId: check.id,
|
|
202
|
+
issues,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
178
207
|
let module_;
|
|
179
208
|
try {
|
|
180
209
|
module_ = await importCheck(check.modulePath);
|
|
@@ -220,6 +249,17 @@ export async function runCheck(options) {
|
|
|
220
249
|
}
|
|
221
250
|
return { kind: 'ok', value: result };
|
|
222
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Where the first issue is and what it says (` at /maxChars: must be >= 0`),
|
|
254
|
+
* for a message that is read without its issues: a runtime reports a
|
|
255
|
+
* check's error by its code and message alone.
|
|
256
|
+
*/
|
|
257
|
+
function describeFirstIssue(issues) {
|
|
258
|
+
const first = issues[0];
|
|
259
|
+
if (first === undefined)
|
|
260
|
+
return '';
|
|
261
|
+
return `${first.instancePath === '' ? '' : ` at ${first.instancePath}`}: ${first.message ?? 'invalid'}`;
|
|
262
|
+
}
|
|
223
263
|
function resolveCheckEvaluate(module_) {
|
|
224
264
|
const candidates = [
|
|
225
265
|
module_.evaluate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-runner.js","sourceRoot":"","sources":["../src/handler-runner.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"handler-runner.js","sourceRoot":"","sources":["../src/handler-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { CheckInvocationSpec, CheckModule, HandlerContext, HandlerError, HandlerErrorCode, HandlerFn, HandlerModule, RunCheckOptions, RunHandlerOptions, ToolInvocationSpec, } from './handler-runner.js';
|
|
2
2
|
export { runCheck, runHandler } from './handler-runner.js';
|
|
3
|
-
export type { DiscoveryConfig, Index, IndexedAgent, IndexedFlow, IndexedGuardrail, IndexedTool, IndexEnvelopeVersion, IndexerError, IndexerErrorCode, IndexerReport, PrimitiveKind, RunIndexerOptions, KindgiConfig, KindgiProviderDeclaration, KindgiConfigFile, LoadKindgiConfigOptions, PackLanguage, } from './kindgi-index.js';
|
|
4
|
-
export { DEFAULT_DISCOVERY, DEFAULT_PYTHON_DISCOVERY, HELP_TEXT as KINDGI_INDEX_HELP_TEXT, INDEX_ENVELOPE_VERSION, KERNEL_PAYLOAD_VERSION, KINDGI_CONFIG_FILENAMES, PYPROJECT_FILENAME, findKindgiConfig, loadKindgiConfig, packLanguage, resolveDiscovery, main as kindgiIndexMain, runIndexer, } from './kindgi-index.js';
|
|
3
|
+
export type { DiscoveryConfig, Index, IndexedAgent, IndexedFlow, IndexedGuardrail, IndexedTool, IndexEnvelopeVersion, IndexerError, IndexerErrorCode, IndexerReport, PrimitiveKind, RunIndexerOptions, KindgiConfig, KindgiProviderDeclaration, KindgiConfigFile, LoadKindgiConfigOptions, JvmLanguage, PackLanguage, } from './kindgi-index.js';
|
|
4
|
+
export { DEFAULT_DISCOVERY, DEFAULT_JAVA_DISCOVERY, DEFAULT_SCALA_DISCOVERY, DEFAULT_PYTHON_DISCOVERY, HELP_TEXT as KINDGI_INDEX_HELP_TEXT, INDEX_ENVELOPE_VERSION, KERNEL_PAYLOAD_VERSION, KINDGI_CONFIG_FILENAMES, KINDGI_JSON_CONFIG_FILENAME, PYPROJECT_FILENAME, RESERVED_CHECK_IDS, findKindgiConfig, isJvmLanguage, loadKindgiConfig, packLanguage, resolveDiscovery, main as kindgiIndexMain, runIndexer, } from './kindgi-index.js';
|
|
5
5
|
export type { PackEnvCheck, PackEnvConfig, PackEnvDeclaration, PackEnvResult } from './pack-env.js';
|
|
6
6
|
export { PACK_ENV_CHECK_VAR, PACK_ENV_NAME, RESERVED_ENV_PREFIX, missingPackEnv, parsePackEnvCheck, resolvePackEnv, } from './pack-env.js';
|
|
7
7
|
export { TEST_FILE_REGEX, createGlobMatcher, discoveryRoots, globStaticPrefix, globToRegex, } from './discovery.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY,EACV,eAAe,EACf,KAAK,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,IAAI,sBAAsB,EACnC,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,IAAI,IAAI,eAAe,EACvB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY,EACV,eAAe,EACf,KAAK,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,SAAS,IAAI,sBAAsB,EACnC,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,IAAI,IAAI,eAAe,EACvB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
// Copyright (C) 2026 Kindgi Inc.
|
|
3
3
|
export { runCheck, runHandler } from './handler-runner.js';
|
|
4
|
-
export { DEFAULT_DISCOVERY, DEFAULT_PYTHON_DISCOVERY, HELP_TEXT as KINDGI_INDEX_HELP_TEXT, INDEX_ENVELOPE_VERSION, KERNEL_PAYLOAD_VERSION, KINDGI_CONFIG_FILENAMES, PYPROJECT_FILENAME, findKindgiConfig, loadKindgiConfig, packLanguage, resolveDiscovery, main as kindgiIndexMain, runIndexer, } from './kindgi-index.js';
|
|
4
|
+
export { DEFAULT_DISCOVERY, DEFAULT_JAVA_DISCOVERY, DEFAULT_SCALA_DISCOVERY, DEFAULT_PYTHON_DISCOVERY, HELP_TEXT as KINDGI_INDEX_HELP_TEXT, INDEX_ENVELOPE_VERSION, KERNEL_PAYLOAD_VERSION, KINDGI_CONFIG_FILENAMES, KINDGI_JSON_CONFIG_FILENAME, PYPROJECT_FILENAME, RESERVED_CHECK_IDS, findKindgiConfig, isJvmLanguage, loadKindgiConfig, packLanguage, resolveDiscovery, main as kindgiIndexMain, runIndexer, } from './kindgi-index.js';
|
|
5
5
|
export { PACK_ENV_CHECK_VAR, PACK_ENV_NAME, RESERVED_ENV_PREFIX, missingPackEnv, parsePackEnvCheck, resolvePackEnv, } from './pack-env.js';
|
|
6
6
|
export { TEST_FILE_REGEX, createGlobMatcher, discoveryRoots, globStaticPrefix, globToRegex, } from './discovery.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
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;AAcjC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAcjC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAsB3D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,SAAS,IAAI,sBAAsB,EACnC,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,IAAI,IAAI,eAAe,EACvB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
|
package/dist/kindgi-index.d.ts
CHANGED
|
@@ -20,9 +20,13 @@ export interface DiscoveryConfig {
|
|
|
20
20
|
/**
|
|
21
21
|
* The language a pack's code (tool handlers, guardrail checks) is written
|
|
22
22
|
* in — which indexer reads it and which pack service runs it. Agents and
|
|
23
|
-
* flows are data in
|
|
23
|
+
* flows are data in any of them.
|
|
24
24
|
*/
|
|
25
|
-
export type PackLanguage = 'node' | 'python';
|
|
25
|
+
export type PackLanguage = 'node' | 'python' | 'java' | 'scala';
|
|
26
|
+
/** The languages that run on the JVM: built by Maven (Java) or sbt (Scala), indexed and served by kindgi-pack. */
|
|
27
|
+
export type JvmLanguage = Extract<PackLanguage, 'java' | 'scala'>;
|
|
28
|
+
/** Whether a pack's code runs on the JVM (kindgi-pack's indexer and pack service). */
|
|
29
|
+
export declare function isJvmLanguage(language: PackLanguage): language is JvmLanguage;
|
|
26
30
|
/**
|
|
27
31
|
* The subset of `kindgi.config.ts` this indexer consumes. Other
|
|
28
32
|
* top-level fields (`environments`, `bundle`, etc.) are read by the
|
|
@@ -38,7 +42,7 @@ export interface KindgiConfig {
|
|
|
38
42
|
/**
|
|
39
43
|
* The pack's code language. Absent in `kindgi.config.*`: `node`. A
|
|
40
44
|
* `[tool.kindgi]` table in `pyproject.toml` is a Python pack unless it
|
|
41
|
-
* says otherwise.
|
|
45
|
+
* says otherwise. A `kindgi.config.json` says `"java"` or `"scala"`.
|
|
42
46
|
*/
|
|
43
47
|
readonly language?: PackLanguage;
|
|
44
48
|
/**
|
|
@@ -96,6 +100,18 @@ export declare const DEFAULT_DISCOVERY: Required<DiscoveryConfig>;
|
|
|
96
100
|
* reads the same keys from `[tool.kindgi.discovery]`).
|
|
97
101
|
*/
|
|
98
102
|
export declare const DEFAULT_PYTHON_DISCOVERY: Required<DiscoveryConfig>;
|
|
103
|
+
/**
|
|
104
|
+
* Default discovery patterns of a Java pack (`com.kindgi.pack.Main index`
|
|
105
|
+
* reads the same keys from `kindgi.config.json`): the source files under
|
|
106
|
+
* any `tools`, `guardrails`, `agents` or `flows` package.
|
|
107
|
+
*/
|
|
108
|
+
export declare const DEFAULT_JAVA_DISCOVERY: Required<DiscoveryConfig>;
|
|
109
|
+
/**
|
|
110
|
+
* Default discovery patterns of a Scala pack (kindgi-pack's indexer reads
|
|
111
|
+
* the same keys): the source files under any `tools`, `guardrails`, `agents`
|
|
112
|
+
* or `flows` package.
|
|
113
|
+
*/
|
|
114
|
+
export declare const DEFAULT_SCALA_DISCOVERY: Required<DiscoveryConfig>;
|
|
99
115
|
/** A config's discovery patterns with the language's defaults filled in. */
|
|
100
116
|
export declare function resolveDiscovery(discovery: DiscoveryConfig | undefined, language?: PackLanguage): Required<DiscoveryConfig>;
|
|
101
117
|
export interface IndexedTool {
|
|
@@ -182,6 +198,8 @@ export interface IndexedAgent {
|
|
|
182
198
|
readonly output?: Readonly<Record<string, unknown>>;
|
|
183
199
|
/** How the agent's turns retry failed tool calls (`{ maxRetries?, retryOn? }`). */
|
|
184
200
|
readonly toolErrors?: Readonly<Record<string, unknown>>;
|
|
201
|
+
/** How the agent uses what it retrieves (`{ instructionTypes? }`). */
|
|
202
|
+
readonly memory?: Readonly<Record<string, unknown>>;
|
|
185
203
|
readonly modulePath: string;
|
|
186
204
|
}
|
|
187
205
|
/**
|
|
@@ -219,7 +237,7 @@ export interface Index {
|
|
|
219
237
|
/** The pack's declared process environment (schema-version 1.4.0+); absent when it declares none. */
|
|
220
238
|
readonly env?: PackEnvDeclaration;
|
|
221
239
|
}
|
|
222
|
-
export type IndexerErrorCode = 'config-not-found' | 'config-parse-failed' | 'config-invalid' | 'discovery-empty' | 'file-import-failed' | 'no-default-export' | 'kind-mismatch' | 'ambiguous-kind' | 'zod-conversion-failed' | 'manifest-validation-failed' | 'output-write-failed' | 'language-mismatch';
|
|
240
|
+
export type IndexerErrorCode = 'config-not-found' | 'config-parse-failed' | 'config-invalid' | 'discovery-empty' | 'file-import-failed' | 'no-default-export' | 'kind-mismatch' | 'ambiguous-kind' | 'zod-conversion-failed' | 'manifest-validation-failed' | 'output-write-failed' | 'language-mismatch' | 'reserved-check-id';
|
|
223
241
|
export interface IndexerError {
|
|
224
242
|
readonly code: IndexerErrorCode;
|
|
225
243
|
readonly message: string;
|
|
@@ -348,16 +366,38 @@ export interface LoadKindgiConfigOptions {
|
|
|
348
366
|
export declare function loadKindgiConfig(packDir: string, options?: LoadKindgiConfigOptions): Promise<Result<KindgiConfig, IndexerError>>;
|
|
349
367
|
/** `pyproject.toml` — a Python pack keeps its config in the `[tool.kindgi]` table. */
|
|
350
368
|
export declare const PYPROJECT_FILENAME = "pyproject.toml";
|
|
369
|
+
/**
|
|
370
|
+
* `kindgi.config.json` — a JVM pack's config (`"language": "java"`): the
|
|
371
|
+
* same keys as `kindgi.config.ts`, as JSON, so Maven, Gradle and sbt builds
|
|
372
|
+
* share one file.
|
|
373
|
+
*/
|
|
374
|
+
export declare const KINDGI_JSON_CONFIG_FILENAME = "kindgi.config.json";
|
|
351
375
|
export interface KindgiConfigFile {
|
|
352
376
|
readonly path: string;
|
|
353
|
-
/**
|
|
354
|
-
|
|
377
|
+
/**
|
|
378
|
+
* `module`: a `kindgi.config.*` module; `pyproject`: the `[tool.kindgi]`
|
|
379
|
+
* table of a `pyproject.toml`; `json`: a `kindgi.config.json`.
|
|
380
|
+
*/
|
|
381
|
+
readonly format: 'module' | 'pyproject' | 'json';
|
|
382
|
+
/**
|
|
383
|
+
* Another config file at the same root, next to a `kindgi.config.json`:
|
|
384
|
+
* loading the config refuses the pack, naming both.
|
|
385
|
+
*/
|
|
386
|
+
readonly conflictsWith?: string;
|
|
355
387
|
}
|
|
356
388
|
/**
|
|
357
|
-
* Where a pack's config lives: the first `kindgi.config.*` at
|
|
358
|
-
* (`KINDGI_CONFIG_FILENAMES` order), else a `pyproject.toml`
|
|
359
|
-
* `[tool.kindgi]` table
|
|
360
|
-
*
|
|
389
|
+
* Where a pack's config lives: the first `kindgi.config.*` module at
|
|
390
|
+
* `packDir` (`KINDGI_CONFIG_FILENAMES` order), else a `pyproject.toml`
|
|
391
|
+
* with a `[tool.kindgi]` table; a `kindgi.config.json` when it is the only
|
|
392
|
+
* one. `undefined` when none — a `pyproject.toml` without the table is a
|
|
393
|
+
* Python project, not a pack. A `kindgi.config.json` next to another
|
|
394
|
+
* config file is returned with `conflictsWith`, and the loader refuses it.
|
|
361
395
|
*/
|
|
362
396
|
export declare function findKindgiConfig(packDir: string): Promise<KindgiConfigFile | undefined>;
|
|
397
|
+
/**
|
|
398
|
+
* The built-in checks' ids (`BUILT_IN_CHECK_IDS` in `@kindgi/guardrails`; a test holds the two
|
|
399
|
+
* equal). A guardrail may name one (`check: 'must-cite'`) and the runtime runs the built-in; a
|
|
400
|
+
* pack may never ship its own check under one, which the runtime would silently replace.
|
|
401
|
+
*/
|
|
402
|
+
export declare const RESERVED_CHECK_IDS: readonly string[];
|
|
363
403
|
//# sourceMappingURL=kindgi-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kindgi-index.d.ts","sourceRoot":"","sources":["../src/kindgi-index.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,cAAc,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AAM5F;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AACjD,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpE,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"kindgi-index.d.ts","sourceRoot":"","sources":["../src/kindgi-index.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,cAAc,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AAM5F;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AACjD,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpE,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,kHAAkH;AAClH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAElE,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,IAAI,WAAW,CAE7E;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,MAAM,yBAAyB,GACjC;IACE,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,GACD;IACE;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC;AAEN,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAKvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAK9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,eAAe,CAK5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,eAAe,CAK7D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,eAAe,GAAG,SAAS,EACtC,QAAQ,GAAE,YAAqB,GAC9B,QAAQ,CAAC,eAAe,CAAC,CAU3B;AAaD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjF,uCAAuC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAMD,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,uBAAuB,GACvB,4BAA4B,GAC5B,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAMD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CA8P9C;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoCnE;AAED,eAAO,MAAM,SAAS,i+BAiB+B,CAAC;AAkHtD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,GACX,OAAO,CACN;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CACrD,CAmBA;AAMD,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAQpD,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAM7C;AAED,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAW7F;AAmdD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAQ/C,CAAC"}
|
package/dist/kindgi-index.js
CHANGED
|
@@ -66,6 +66,10 @@ import { resolvePackEnv } from './pack-env.js';
|
|
|
66
66
|
* don't recognize.
|
|
67
67
|
*/
|
|
68
68
|
export const INDEX_ENVELOPE_VERSION = 1;
|
|
69
|
+
/** Whether a pack's code runs on the JVM (kindgi-pack's indexer and pack service). */
|
|
70
|
+
export function isJvmLanguage(language) {
|
|
71
|
+
return language === 'java' || language === 'scala';
|
|
72
|
+
}
|
|
69
73
|
/** The language of a loaded config's pack code. */
|
|
70
74
|
export function packLanguage(config) {
|
|
71
75
|
return config.language ?? 'node';
|
|
@@ -93,11 +97,45 @@ export const DEFAULT_PYTHON_DISCOVERY = {
|
|
|
93
97
|
agents: 'agents/**/*.py',
|
|
94
98
|
flows: 'flows/**/*.py',
|
|
95
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Default discovery patterns of a Java pack (`com.kindgi.pack.Main index`
|
|
102
|
+
* reads the same keys from `kindgi.config.json`): the source files under
|
|
103
|
+
* any `tools`, `guardrails`, `agents` or `flows` package.
|
|
104
|
+
*/
|
|
105
|
+
export const DEFAULT_JAVA_DISCOVERY = {
|
|
106
|
+
tools: 'src/main/java/**/tools/**/*.java',
|
|
107
|
+
guardrails: 'src/main/java/**/guardrails/**/*.java',
|
|
108
|
+
agents: 'src/main/java/**/agents/**/*.java',
|
|
109
|
+
flows: 'src/main/java/**/flows/**/*.java',
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Default discovery patterns of a Scala pack (kindgi-pack's indexer reads
|
|
113
|
+
* the same keys): the source files under any `tools`, `guardrails`, `agents`
|
|
114
|
+
* or `flows` package.
|
|
115
|
+
*/
|
|
116
|
+
export const DEFAULT_SCALA_DISCOVERY = {
|
|
117
|
+
tools: 'src/main/scala/**/tools/**/*.scala',
|
|
118
|
+
guardrails: 'src/main/scala/**/guardrails/**/*.scala',
|
|
119
|
+
agents: 'src/main/scala/**/agents/**/*.scala',
|
|
120
|
+
flows: 'src/main/scala/**/flows/**/*.scala',
|
|
121
|
+
};
|
|
96
122
|
/** A config's discovery patterns with the language's defaults filled in. */
|
|
97
123
|
export function resolveDiscovery(discovery, language = 'node') {
|
|
98
|
-
const defaults = language === 'python'
|
|
124
|
+
const defaults = language === 'python'
|
|
125
|
+
? DEFAULT_PYTHON_DISCOVERY
|
|
126
|
+
: language === 'java'
|
|
127
|
+
? DEFAULT_JAVA_DISCOVERY
|
|
128
|
+
: language === 'scala'
|
|
129
|
+
? DEFAULT_SCALA_DISCOVERY
|
|
130
|
+
: DEFAULT_DISCOVERY;
|
|
99
131
|
return { ...defaults, ...(discovery ?? {}) };
|
|
100
132
|
}
|
|
133
|
+
/** The command that indexes a pack of each language other than Node. */
|
|
134
|
+
const OWN_INDEXER = {
|
|
135
|
+
python: 'python -m kindgi.pack index',
|
|
136
|
+
java: 'java -cp <classpath> com.kindgi.pack.Main index',
|
|
137
|
+
scala: 'java -cp <classpath> com.kindgi.pack.Main index',
|
|
138
|
+
};
|
|
101
139
|
/**
|
|
102
140
|
* Envelope version for the flow payload embedded inside `index.json`.
|
|
103
141
|
* Distinct from the top-level `v` envelope so the flow substrate can
|
|
@@ -125,7 +163,7 @@ export async function runIndexer(opts) {
|
|
|
125
163
|
kind: 'err',
|
|
126
164
|
error: {
|
|
127
165
|
code: 'language-mismatch',
|
|
128
|
-
message: `${packDir} is a ${packLanguage(config)} pack; index it with its own indexer (
|
|
166
|
+
message: `${packDir} is a ${packLanguage(config)} pack; index it with its own indexer (${OWN_INDEXER[packLanguage(config)]})`,
|
|
129
167
|
},
|
|
130
168
|
};
|
|
131
169
|
}
|
|
@@ -263,6 +301,11 @@ export async function runIndexer(opts) {
|
|
|
263
301
|
fileErrors.push(built.error);
|
|
264
302
|
continue;
|
|
265
303
|
}
|
|
304
|
+
const reserved = reservedCheckIn(unwrapped, module_, relPath);
|
|
305
|
+
if (reserved !== undefined) {
|
|
306
|
+
fileErrors.push(reserved);
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
266
309
|
const duplicate = duplicateOf('guardrail', built.value.id, undefined, relPath);
|
|
267
310
|
if (duplicate !== undefined) {
|
|
268
311
|
fileErrors.push(duplicate);
|
|
@@ -570,12 +613,32 @@ export async function loadKindgiConfig(packDir, options = {}) {
|
|
|
570
613
|
/** `pyproject.toml` — a Python pack keeps its config in the `[tool.kindgi]` table. */
|
|
571
614
|
export const PYPROJECT_FILENAME = 'pyproject.toml';
|
|
572
615
|
/**
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
|
|
616
|
+
* `kindgi.config.json` — a JVM pack's config (`"language": "java"`): the
|
|
617
|
+
* same keys as `kindgi.config.ts`, as JSON, so Maven, Gradle and sbt builds
|
|
618
|
+
* share one file.
|
|
619
|
+
*/
|
|
620
|
+
export const KINDGI_JSON_CONFIG_FILENAME = 'kindgi.config.json';
|
|
621
|
+
/**
|
|
622
|
+
* Where a pack's config lives: the first `kindgi.config.*` module at
|
|
623
|
+
* `packDir` (`KINDGI_CONFIG_FILENAMES` order), else a `pyproject.toml`
|
|
624
|
+
* with a `[tool.kindgi]` table; a `kindgi.config.json` when it is the only
|
|
625
|
+
* one. `undefined` when none — a `pyproject.toml` without the table is a
|
|
626
|
+
* Python project, not a pack. A `kindgi.config.json` next to another
|
|
627
|
+
* config file is returned with `conflictsWith`, and the loader refuses it.
|
|
577
628
|
*/
|
|
578
629
|
export async function findKindgiConfig(packDir) {
|
|
630
|
+
const other = await findModuleOrPyproject(packDir);
|
|
631
|
+
const json = path.join(packDir, KINDGI_JSON_CONFIG_FILENAME);
|
|
632
|
+
if (await exists(json)) {
|
|
633
|
+
return {
|
|
634
|
+
path: json,
|
|
635
|
+
format: 'json',
|
|
636
|
+
...(other !== undefined && { conflictsWith: other.path }),
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
return other;
|
|
640
|
+
}
|
|
641
|
+
async function findModuleOrPyproject(packDir) {
|
|
579
642
|
for (const name of KINDGI_CONFIG_FILENAMES) {
|
|
580
643
|
const candidate = path.join(packDir, name);
|
|
581
644
|
if (await exists(candidate))
|
|
@@ -616,7 +679,8 @@ async function loadConfig(packDir, explicitPath, importModule) {
|
|
|
616
679
|
if (explicitPath !== undefined) {
|
|
617
680
|
const resolved = path.resolve(explicitPath);
|
|
618
681
|
if (await exists(resolved)) {
|
|
619
|
-
const
|
|
682
|
+
const base = path.basename(resolved);
|
|
683
|
+
const format = base === PYPROJECT_FILENAME ? 'pyproject' : base.endsWith('.json') ? 'json' : 'module';
|
|
620
684
|
file = { path: resolved, format };
|
|
621
685
|
}
|
|
622
686
|
}
|
|
@@ -628,16 +692,31 @@ async function loadConfig(packDir, explicitPath, importModule) {
|
|
|
628
692
|
kind: 'err',
|
|
629
693
|
error: {
|
|
630
694
|
code: 'config-not-found',
|
|
631
|
-
message: `No kindgi.config.{ts,mts,mjs,js,cjs},
|
|
695
|
+
message: `No kindgi.config.{ts,mts,mjs,js,cjs}, pyproject.toml with a [tool.kindgi] table, or kindgi.config.json, found at pack root ${packDir}`,
|
|
696
|
+
},
|
|
697
|
+
};
|
|
698
|
+
}
|
|
699
|
+
if (file.conflictsWith !== undefined) {
|
|
700
|
+
const other = path.basename(file.conflictsWith);
|
|
701
|
+
return {
|
|
702
|
+
kind: 'err',
|
|
703
|
+
error: {
|
|
704
|
+
code: 'config-invalid',
|
|
705
|
+
message: `${packDir} has two pack configs, ${KINDGI_JSON_CONFIG_FILENAME} and ${other}; a pack has one. ` +
|
|
706
|
+
`Keep ${KINDGI_JSON_CONFIG_FILENAME} for a Java or Scala pack, or ${other} for a ` +
|
|
707
|
+
`${file.conflictsWith.endsWith(PYPROJECT_FILENAME) ? 'Python' : 'TypeScript'} one, and remove the other.`,
|
|
708
|
+
filePath: file.path,
|
|
632
709
|
},
|
|
633
710
|
};
|
|
634
711
|
}
|
|
635
712
|
const read = file.format === 'pyproject'
|
|
636
713
|
? await readPyprojectTable(file.path)
|
|
637
|
-
:
|
|
714
|
+
: file.format === 'json'
|
|
715
|
+
? await readJsonConfig(file.path)
|
|
716
|
+
: await importConfigModule(file.path, importModule);
|
|
638
717
|
if (read.kind === 'err')
|
|
639
718
|
return read;
|
|
640
|
-
const checked = checkConfig(read.value, file.path);
|
|
719
|
+
const checked = checkConfig(read.value, file.path, file.format);
|
|
641
720
|
if (checked.kind === 'err')
|
|
642
721
|
return checked;
|
|
643
722
|
const record = checked.value;
|
|
@@ -695,8 +774,21 @@ async function readPyprojectTable(filePath) {
|
|
|
695
774
|
}
|
|
696
775
|
return { kind: 'ok', value: table };
|
|
697
776
|
}
|
|
777
|
+
async function readJsonConfig(filePath) {
|
|
778
|
+
let document;
|
|
779
|
+
try {
|
|
780
|
+
document = JSON.parse(await fs.readFile(filePath, 'utf8'));
|
|
781
|
+
}
|
|
782
|
+
catch (cause) {
|
|
783
|
+
return parseFailed(filePath, `Failed to read ${filePath}: ${stringifyError(cause)}`, cause);
|
|
784
|
+
}
|
|
785
|
+
if (!isObject(document)) {
|
|
786
|
+
return parseFailed(filePath, `Config file ${filePath}: the file must hold a JSON object`);
|
|
787
|
+
}
|
|
788
|
+
return { kind: 'ok', value: document };
|
|
789
|
+
}
|
|
698
790
|
/** The checks every config passes, whatever file it came from. */
|
|
699
|
-
function checkConfig(record, filePath) {
|
|
791
|
+
function checkConfig(record, filePath, format) {
|
|
700
792
|
const pack = record.pack;
|
|
701
793
|
if (typeof pack !== 'object' || pack === null) {
|
|
702
794
|
return parseFailed(filePath, `Config file ${filePath}: 'pack' field is missing or not an object`);
|
|
@@ -708,7 +800,15 @@ function checkConfig(record, filePath) {
|
|
|
708
800
|
if (typeof packRec.version !== 'string' || packRec.version.length === 0) {
|
|
709
801
|
return parseFailed(filePath, `Config file ${filePath}: 'pack.version' is missing or not a non-empty string`);
|
|
710
802
|
}
|
|
711
|
-
if (
|
|
803
|
+
if (format === 'json') {
|
|
804
|
+
// kindgi.config.json is the JVM's config: it names its language.
|
|
805
|
+
if (record.language !== 'java' && record.language !== 'scala') {
|
|
806
|
+
return parseFailed(filePath, `Config file ${filePath}: ${KINDGI_JSON_CONFIG_FILENAME} is a JVM pack's config; it says "language": "java" or "scala"`);
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
else if (record.language !== undefined &&
|
|
810
|
+
record.language !== 'node' &&
|
|
811
|
+
record.language !== 'python') {
|
|
712
812
|
return parseFailed(filePath, `Config file ${filePath}: 'language' must be "node" or "python"`);
|
|
713
813
|
}
|
|
714
814
|
return { kind: 'ok', value: record };
|
|
@@ -933,6 +1033,47 @@ function buildTool(raw, relPath, converter) {
|
|
|
933
1033
|
};
|
|
934
1034
|
return { kind: 'ok', value: tool };
|
|
935
1035
|
}
|
|
1036
|
+
/**
|
|
1037
|
+
* The built-in checks' ids (`BUILT_IN_CHECK_IDS` in `@kindgi/guardrails`; a test holds the two
|
|
1038
|
+
* equal). A guardrail may name one (`check: 'must-cite'`) and the runtime runs the built-in; a
|
|
1039
|
+
* pack may never ship its own check under one, which the runtime would silently replace.
|
|
1040
|
+
*/
|
|
1041
|
+
export const RESERVED_CHECK_IDS = [
|
|
1042
|
+
'must-cite',
|
|
1043
|
+
'never-call-tool',
|
|
1044
|
+
'max-tool-calls',
|
|
1045
|
+
'output-matches',
|
|
1046
|
+
'tool-order',
|
|
1047
|
+
'required-substring',
|
|
1048
|
+
'forbidden-substring',
|
|
1049
|
+
];
|
|
1050
|
+
/**
|
|
1051
|
+
* A check implementation (an object with an `id` and an `evaluate` function) under a built-in
|
|
1052
|
+
* id: the guardrail's own `check`, or any check the module exports. Naming a built-in by its id
|
|
1053
|
+
* (a string) is the way to use it, and is fine.
|
|
1054
|
+
*/
|
|
1055
|
+
function reservedCheckIn(guardrail, module_, relPath) {
|
|
1056
|
+
const candidates = [
|
|
1057
|
+
isObject(guardrail) ? guardrail.check : undefined,
|
|
1058
|
+
...(isObject(module_) ? Object.values(module_) : []),
|
|
1059
|
+
];
|
|
1060
|
+
for (const c of candidates) {
|
|
1061
|
+
if (!isObject(c))
|
|
1062
|
+
continue;
|
|
1063
|
+
const rec = c;
|
|
1064
|
+
if (typeof rec.id !== 'string' || typeof rec.evaluate !== 'function')
|
|
1065
|
+
continue;
|
|
1066
|
+
if (!RESERVED_CHECK_IDS.includes(rec.id))
|
|
1067
|
+
continue;
|
|
1068
|
+
return {
|
|
1069
|
+
code: 'reserved-check-id',
|
|
1070
|
+
message: `${relPath} ships its own check under "${rec.id}", a built-in check's id: a pack can't replace a built-in. Rename your check (for example "<pack>.checks.${rec.id}"), or, to use the built-in, name it (check: '${rec.id}') and drop your implementation.`,
|
|
1071
|
+
filePath: relPath,
|
|
1072
|
+
field: 'check',
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
return undefined;
|
|
1076
|
+
}
|
|
936
1077
|
function buildGuardrail(raw, relPath, converter) {
|
|
937
1078
|
const rec = raw;
|
|
938
1079
|
if (typeof rec.id !== 'string') {
|
|
@@ -1062,6 +1203,7 @@ function optionalAgentFields(rec) {
|
|
|
1062
1203
|
'output',
|
|
1063
1204
|
'toolErrors',
|
|
1064
1205
|
'modelSettings',
|
|
1206
|
+
'memory',
|
|
1065
1207
|
]) {
|
|
1066
1208
|
if (isObject(rec[key]))
|
|
1067
1209
|
out[key] = rec[key];
|