@kindgi/cli 0.1.4-rc.1 → 0.1.4-rc.2
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 +24 -11
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts +11 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +318 -38
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/conversations.d.ts.map +1 -1
- package/dist/commands/conversations.js +72 -17
- package/dist/commands/conversations.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +91 -25
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/eval-runs.d.ts.map +1 -1
- package/dist/commands/eval-runs.js +34 -30
- package/dist/commands/eval-runs.js.map +1 -1
- package/dist/commands/flows.d.ts.map +1 -1
- package/dist/commands/flows.js +84 -25
- package/dist/commands/flows.js.map +1 -1
- package/dist/commands/gate-policies.d.ts +3 -0
- package/dist/commands/gate-policies.d.ts.map +1 -0
- package/dist/commands/gate-policies.js +118 -0
- package/dist/commands/gate-policies.js.map +1 -0
- package/dist/commands/helpers.d.ts +8 -0
- package/dist/commands/helpers.d.ts.map +1 -1
- package/dist/commands/helpers.js +13 -0
- package/dist/commands/helpers.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/judge-classes.d.ts.map +1 -1
- package/dist/commands/judge-classes.js +64 -7
- package/dist/commands/judge-classes.js.map +1 -1
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +70 -12
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/provenance.d.ts.map +1 -1
- package/dist/commands/provenance.js +66 -14
- package/dist/commands/provenance.js.map +1 -1
- package/dist/commands/runs.d.ts.map +1 -1
- package/dist/commands/runs.js +44 -3
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +28 -38
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/unwired.d.ts +4 -2
- package/dist/commands/unwired.d.ts.map +1 -1
- package/dist/commands/unwired.js +38 -11
- package/dist/commands/unwired.js.map +1 -1
- package/dist/context.d.ts +3 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/dev/defaults.d.ts +16 -7
- package/dist/dev/defaults.d.ts.map +1 -1
- package/dist/dev/defaults.js +125 -34
- package/dist/dev/defaults.js.map +1 -1
- package/dist/dev/python-builder.d.ts +10 -1
- package/dist/dev/python-builder.d.ts.map +1 -1
- package/dist/dev/python-builder.js +21 -6
- package/dist/dev/python-builder.js.map +1 -1
- package/dist/dev/runners.d.ts +2 -0
- package/dist/dev/runners.d.ts.map +1 -1
- package/dist/dev/runtime-image.d.ts +1 -1
- package/dist/dev/runtime-image.js +1 -1
- package/dist/dev/shared-watch.d.ts +25 -0
- package/dist/dev/shared-watch.d.ts.map +1 -0
- package/dist/dev/shared-watch.js +111 -0
- package/dist/dev/shared-watch.js.map +1 -0
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/help.js +1 -1
- package/dist/help.js.map +1 -1
- package/dist/parse.d.ts +3 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js.map +1 -1
- package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-getting-started/SKILL.md +3 -3
- package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +1 -1
- package/dist/stop-signal.d.ts +41 -7
- package/dist/stop-signal.d.ts.map +1 -1
- package/dist/stop-signal.js +39 -4
- package/dist/stop-signal.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* One recursive watch per directory, shared by every watcher under it in
|
|
5
|
+
* this process.
|
|
6
|
+
*
|
|
7
|
+
* On macOS every `fs.watch` handle joins one FSEvents stream, and libuv
|
|
8
|
+
* rebuilds that stream on every close but the last, holding the event
|
|
9
|
+
* loop meanwhile. `kindgi dev` watched a pack with five handles (a
|
|
10
|
+
* recursive one per discovery root, one for the env files' folder), and
|
|
11
|
+
* closing them took 5 to 35 s; one handle closes in milliseconds. FSEvents
|
|
12
|
+
* watches a tree of any size at the same cost, so on macOS a pack's
|
|
13
|
+
* watchers share one handle on its directory, each filtering the events
|
|
14
|
+
* itself. Not on Linux by default: there a recursive watch adds an inotify
|
|
15
|
+
* watch per folder, `node_modules` included.
|
|
16
|
+
*
|
|
17
|
+
* `kindgi dev` subscribes once, at boot, for the whole session, so the
|
|
18
|
+
* handle opens and closes once.
|
|
19
|
+
*/
|
|
20
|
+
import { realpathSync } from 'node:fs';
|
|
21
|
+
import { resolve, sep } from 'node:path';
|
|
22
|
+
/** Whether a pack's watchers share one watch unless told otherwise: on macOS (FSEvents). */
|
|
23
|
+
export const SHARE_WATCH_BY_DEFAULT = process.platform === 'darwin';
|
|
24
|
+
const registries = new WeakMap();
|
|
25
|
+
/** The shared watches made with `watch` (one registry per events source, so tests stay apart). */
|
|
26
|
+
export function directoryWatches(watch) {
|
|
27
|
+
let registry = registries.get(watch);
|
|
28
|
+
if (registry === undefined) {
|
|
29
|
+
registry = createDirectoryWatches(watch);
|
|
30
|
+
registries.set(watch, registry);
|
|
31
|
+
}
|
|
32
|
+
return registry;
|
|
33
|
+
}
|
|
34
|
+
function createDirectoryWatches(watch) {
|
|
35
|
+
const open = new Map();
|
|
36
|
+
/** Hand each event to every subscriber; one that throws never stops the others. */
|
|
37
|
+
const deliver = (shared, relPath) => {
|
|
38
|
+
for (const subscriber of [...shared.subscribers]) {
|
|
39
|
+
try {
|
|
40
|
+
subscriber.onEvent(relPath);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// The subscriber's own failure stays its own.
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
/** Every subscriber hears a failure once; the next subscribe opens a new watch. */
|
|
48
|
+
const fail = (key, shared, error) => {
|
|
49
|
+
if (open.get(key) === shared)
|
|
50
|
+
open.delete(key);
|
|
51
|
+
for (const subscriber of [...shared.subscribers]) {
|
|
52
|
+
try {
|
|
53
|
+
subscriber.onError(error);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// As in `deliver`.
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
async function consume(key, dir, shared) {
|
|
61
|
+
try {
|
|
62
|
+
for await (const evt of watch(dir, { recursive: true, signal: shared.controller.signal })) {
|
|
63
|
+
deliver(shared, slashed(evt.filename));
|
|
64
|
+
}
|
|
65
|
+
// A watch that ends without an error (its folder removed or renamed)
|
|
66
|
+
// has failed too: nothing would report again.
|
|
67
|
+
if (!shared.controller.signal.aborted) {
|
|
68
|
+
fail(key, shared, new Error(`the watch of ${dir} ended`));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (!shared.controller.signal.aborted)
|
|
73
|
+
fail(key, shared, error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
subscribe(dir, onEvent, onError) {
|
|
78
|
+
const key = canonical(dir);
|
|
79
|
+
let shared = open.get(key);
|
|
80
|
+
if (shared === undefined) {
|
|
81
|
+
shared = { controller: new AbortController(), subscribers: new Set() };
|
|
82
|
+
open.set(key, shared);
|
|
83
|
+
void consume(key, dir, shared);
|
|
84
|
+
}
|
|
85
|
+
const subscriber = { onEvent, onError };
|
|
86
|
+
shared.subscribers.add(subscriber);
|
|
87
|
+
const joined = shared;
|
|
88
|
+
return () => {
|
|
89
|
+
if (!joined.subscribers.delete(subscriber) || joined.subscribers.size > 0)
|
|
90
|
+
return;
|
|
91
|
+
if (open.get(key) === joined)
|
|
92
|
+
open.delete(key);
|
|
93
|
+
joined.controller.abort();
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/** One spelling per folder: its real path, or (a folder not there yet) its resolved one. */
|
|
99
|
+
function canonical(dir) {
|
|
100
|
+
try {
|
|
101
|
+
return realpathSync.native(dir);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return resolve(dir);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** An event's file name, `/`-separated, or `undefined` when it names none. */
|
|
108
|
+
function slashed(name) {
|
|
109
|
+
return name === null || name === undefined ? undefined : name.split(sep).join('/');
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=shared-watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-watch.js","sourceRoot":"","sources":["../../src/dev/shared-watch.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
// Copyright (C) 2026 Kindgi Inc.
|
|
3
3
|
import { KindgiApiError } from '@kindgi/client';
|
|
4
|
-
import {
|
|
4
|
+
import { unwiredReason } from './commands/unwired.js';
|
|
5
5
|
export function cliError(message, exitCode = 1) {
|
|
6
6
|
return { kind: 'error', exitCode, stderr: `${message}\n` };
|
|
7
7
|
}
|
|
@@ -18,7 +18,7 @@ export function formatThrown(thrown, options) {
|
|
|
18
18
|
const label = options.commandLabel.startsWith('kindgi ')
|
|
19
19
|
? options.commandLabel
|
|
20
20
|
: `kindgi ${options.commandLabel}`;
|
|
21
|
-
const reason =
|
|
21
|
+
const reason = unwiredReason(label.slice('kindgi '.length).split(' '));
|
|
22
22
|
return cliError(reason !== undefined
|
|
23
23
|
? `Command '${label}' is not available: ${reason}`
|
|
24
24
|
: `Command '${label}' is not yet wired — SDK method '${wire.method}' is not available in this preview release.`, 2);
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/help.js
CHANGED
|
@@ -37,7 +37,7 @@ export function commandHelpText(command, path = [command.name]) {
|
|
|
37
37
|
lines.push('Global flags (--json, --url, --token, …): kindgi --help');
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
lines.push(`Usage: kindgi ${
|
|
40
|
+
lines.push(`Usage: kindgi ${path.join(' ')} <subcommand> [args] [flags]`);
|
|
41
41
|
lines.push('');
|
|
42
42
|
lines.push('Subcommands:');
|
|
43
43
|
for (const sub of wiredCommands(command.subcommands, path)) {
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,gGAAgG,CACjG,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,OAA0B,CAAC,OAAO,CAAC,IAAI,CAAC;IAExC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.d.ts
CHANGED
|
@@ -58,10 +58,12 @@ export interface GlobalFlags {
|
|
|
58
58
|
*/
|
|
59
59
|
readonly formatRequested: boolean;
|
|
60
60
|
}
|
|
61
|
+
/** A parsed flag: a string, a boolean, or every value of a repeatable (`multiple`) string flag. */
|
|
62
|
+
export type OptionValue = string | boolean | readonly string[] | undefined;
|
|
61
63
|
export interface CommandParse {
|
|
62
64
|
readonly globals: GlobalFlags;
|
|
63
65
|
readonly positionals: readonly string[];
|
|
64
|
-
readonly options: Readonly<Record<string,
|
|
66
|
+
readonly options: Readonly<Record<string, OptionValue>>;
|
|
65
67
|
}
|
|
66
68
|
/**
|
|
67
69
|
* Parse a token vector against a merged option spec (globals + the
|
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,mGAAmG;AACnG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,eAAe,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAM,GAC9D,YAAY,CA0Dd;AAED,KAAK,eAAe,GAChB;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE;QACH,IAAI,EAAE,QAAiB;QACvB,WAAW,EAAE,wEAAwE;KACtF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAiB;QACvB,WAAW,EAAE,mEAAmE;KACjF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAkB;QACxB,KAAK,EAAE,GAAY;QACnB,WAAW,EAAE,wCAAwC;KACtD;IACD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,WAAW,EAAE,YAAY,EAAE;IAClF,OAAO,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC9E,IAAI,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC5F,KAAK,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC3F,GAAG,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAChF,KAAK,EAAE;QACL,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,wDAAwD;KACtE;CACO,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ description: >
|
|
|
14
14
|
primitive.
|
|
15
15
|
type: core
|
|
16
16
|
library: "@kindgi/sdk"
|
|
17
|
-
version: "0.3.
|
|
18
|
-
sdk_version: "0.1.4-rc.
|
|
17
|
+
version: "0.3.8"
|
|
18
|
+
sdk_version: "0.1.4-rc.2"
|
|
19
19
|
pack_languages: [node]
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -193,7 +193,7 @@ const run = await kindgi.runs.start({
|
|
|
193
193
|
step's `step.completed` entry in the flow's journal names its turn's run
|
|
194
194
|
(`payload.output.runId`).
|
|
195
195
|
- **What it cost:** `kindgi.cost.usage.query({ rootRunId: runId })`
|
|
196
|
-
(`GET /v1/cost/records?rootRunId={runId}`): `.
|
|
196
|
+
(`GET /v1/cost/records?rootRunId={runId}`): `.data`, one record per model
|
|
197
197
|
call, with its `model`, `usage` (`promptTokens`, `completionTokens`) and
|
|
198
198
|
`costUsd` (a number, US dollars), a flow's agent steps included. For one
|
|
199
199
|
customer's spend, see below.
|
package/dist/stop-signal.d.ts
CHANGED
|
@@ -1,15 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SIGINT / SIGTERM → an AbortSignal long-lived commands
|
|
3
|
-
* watch to shut down cleanly: close watchers, stop the
|
|
4
|
-
* down the bundled containers.
|
|
2
|
+
* SIGINT / SIGTERM / SIGHUP → an AbortSignal long-lived commands
|
|
3
|
+
* (`kindgi dev`) watch to shut down cleanly: close watchers, stop the
|
|
4
|
+
* api-server, tear down the bundled containers. SIGHUP is the terminal
|
|
5
|
+
* closing: without a listener it ended `kindgi dev` at once, leaving its
|
|
6
|
+
* runtime container running.
|
|
5
7
|
*
|
|
6
8
|
* The listener stays registered (`on`, never `once`), so a dependency
|
|
7
9
|
* that re-raises a signal when it finds itself the only listener left
|
|
8
|
-
* (`signal-exit` v3 does) can't cut the graceful shutdown short.
|
|
9
|
-
*
|
|
10
|
+
* (`signal-exit` v3 does) can't cut the graceful shutdown short.
|
|
11
|
+
*
|
|
12
|
+
* A second Ctrl+C forces the exit, the usual Ctrl+C-twice contract, but
|
|
13
|
+
* not one that comes with the first. One Ctrl+C can arrive more than once:
|
|
14
|
+
* the terminal signals the whole foreground process group, and a wrapper
|
|
15
|
+
* in it signals its child too (`npx` and `pnpm run` forward SIGINT;
|
|
16
|
+
* `pnpm exec` sends SIGTERM and exits at once). A signal is the same
|
|
17
|
+
* Ctrl+C when it's handled within `REPEAT_SIGNAL_WINDOW_MS` of the first,
|
|
18
|
+
* or before the event loop has turned twice since: a stop step can hold
|
|
19
|
+
* the loop (closing a recursive file watcher takes over a second on
|
|
20
|
+
* macOS), so a signal that came at once can be handled late. A SIGTERM
|
|
21
|
+
* or SIGHUP never forces the exit; it asks for the stop already under
|
|
22
|
+
* way. Forcing it left the runtime container running.
|
|
10
23
|
*/
|
|
24
|
+
type StopSignalName = 'SIGINT' | 'SIGTERM' | 'SIGHUP';
|
|
11
25
|
export interface SignalSource {
|
|
12
|
-
on(event:
|
|
26
|
+
on(event: StopSignalName, listener: () => void): unknown;
|
|
27
|
+
}
|
|
28
|
+
/** Where the stop signal reads the time and the event loop's turns (tests fake it). */
|
|
29
|
+
export interface StopSignalClock {
|
|
30
|
+
now(): number;
|
|
31
|
+
/** Run `fn` on the event loop's next turn. */
|
|
32
|
+
nextTurn(fn: () => void): void;
|
|
33
|
+
}
|
|
34
|
+
/** How long after the first signal another is still the same Ctrl+C. */
|
|
35
|
+
export declare const REPEAT_SIGNAL_WINDOW_MS = 500;
|
|
36
|
+
export declare function createStopSignal(source: SignalSource, forceExit: (code: number) => void, clock?: StopSignalClock): AbortSignal;
|
|
37
|
+
/** Where the command's output goes (`process.stdout`, `process.stderr`). */
|
|
38
|
+
export interface OutputStream {
|
|
39
|
+
on(event: 'error', listener: (error: Error) => void): unknown;
|
|
13
40
|
}
|
|
14
|
-
|
|
41
|
+
/**
|
|
42
|
+
* After a hangup (SIGHUP: the terminal closed), writing to the terminal
|
|
43
|
+
* fails (EIO). Unheard, that error would end the process mid-stop, the
|
|
44
|
+
* runtime container left behind, so from then on the outputs' errors are
|
|
45
|
+
* ignored: nobody is left to read them.
|
|
46
|
+
*/
|
|
47
|
+
export declare function ignoreOutputAfterHangup(source: SignalSource, outputs: readonly OutputStream[]): void;
|
|
48
|
+
export {};
|
|
15
49
|
//# sourceMappingURL=stop-signal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-signal.d.ts","sourceRoot":"","sources":["../src/stop-signal.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"stop-signal.d.ts","sourceRoot":"","sources":["../src/stop-signal.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,KAAK,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CAC1D;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,GAAG,IAAI,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAChC;AAED,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAS3C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,GAAE,eAA6B,GACnC,WAAW,CAuBb;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,IAAI,CAON"}
|
package/dist/stop-signal.js
CHANGED
|
@@ -1,16 +1,51 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
-
|
|
3
|
+
/** How long after the first signal another is still the same Ctrl+C. */
|
|
4
|
+
export const REPEAT_SIGNAL_WINDOW_MS = 500;
|
|
5
|
+
const systemClock = {
|
|
6
|
+
now: () => Date.now(),
|
|
7
|
+
nextTurn: (fn) => {
|
|
8
|
+
setImmediate(fn);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
export function createStopSignal(source, forceExit, clock = systemClock) {
|
|
4
12
|
const controller = new AbortController();
|
|
5
|
-
|
|
13
|
+
let firstAt = 0;
|
|
14
|
+
let settled = false;
|
|
15
|
+
const onSignal = (signal) => {
|
|
6
16
|
if (!controller.signal.aborted) {
|
|
17
|
+
firstAt = clock.now();
|
|
18
|
+
clock.nextTurn(() => clock.nextTurn(() => {
|
|
19
|
+
settled = true;
|
|
20
|
+
}));
|
|
7
21
|
controller.abort();
|
|
8
22
|
return;
|
|
9
23
|
}
|
|
24
|
+
if (signal !== 'SIGINT')
|
|
25
|
+
return;
|
|
26
|
+
if (!settled || clock.now() - firstAt < REPEAT_SIGNAL_WINDOW_MS)
|
|
27
|
+
return;
|
|
10
28
|
forceExit(130);
|
|
11
29
|
};
|
|
12
|
-
source.on('SIGINT', onSignal);
|
|
13
|
-
source.on('SIGTERM', onSignal);
|
|
30
|
+
source.on('SIGINT', () => onSignal('SIGINT'));
|
|
31
|
+
source.on('SIGTERM', () => onSignal('SIGTERM'));
|
|
32
|
+
source.on('SIGHUP', () => onSignal('SIGHUP'));
|
|
14
33
|
return controller.signal;
|
|
15
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* After a hangup (SIGHUP: the terminal closed), writing to the terminal
|
|
37
|
+
* fails (EIO). Unheard, that error would end the process mid-stop, the
|
|
38
|
+
* runtime container left behind, so from then on the outputs' errors are
|
|
39
|
+
* ignored: nobody is left to read them.
|
|
40
|
+
*/
|
|
41
|
+
export function ignoreOutputAfterHangup(source, outputs) {
|
|
42
|
+
let hungUp = false;
|
|
43
|
+
source.on('SIGHUP', () => {
|
|
44
|
+
if (hungUp)
|
|
45
|
+
return;
|
|
46
|
+
hungUp = true;
|
|
47
|
+
for (const output of outputs)
|
|
48
|
+
output.on('error', () => undefined);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
16
51
|
//# sourceMappingURL=stop-signal.js.map
|
package/dist/stop-signal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-signal.js","sourceRoot":"","sources":["../src/stop-signal.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"stop-signal.js","sourceRoot":"","sources":["../src/stop-signal.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAuCjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,MAAM,WAAW,GAAoB;IACnC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;QACf,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAC9B,MAAoB,EACpB,SAAiC,EACjC,QAAyB,WAAW;IAEpC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAChD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAClB,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAClB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,CACH,CAAC;YACF,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAChC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,uBAAuB;YAAE,OAAO;QACxE,SAAS,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAoB,EACpB,OAAgC;IAEhC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kindgi/cli",
|
|
3
|
-
"version": "0.1.4-rc.
|
|
3
|
+
"version": "0.1.4-rc.2",
|
|
4
4
|
"description": "Command-line interface for Kindgi™ — the sovereign AI OS. Create a pack, run it on your machine (`kindgi dev`), build, sign and deploy it, and work with a running Kindgi API from the terminal.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
"provenance": true
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@kindgi/client": "0.1.4-rc.
|
|
41
|
-
"@kindgi/dotenv-file": "0.1.4-rc.
|
|
42
|
-
"@kindgi/crypto": "0.1.4-rc.
|
|
43
|
-
"@kindgi/env-schema": "0.1.4-rc.
|
|
44
|
-
"@kindgi/flow": "0.1.4-rc.
|
|
45
|
-
"@kindgi/handler-runtime": "0.1.4-rc.
|
|
46
|
-
"@kindgi/secrets-dotenv": "0.1.4-rc.
|
|
47
|
-
"@kindgi/platform": "0.1.4-rc.
|
|
48
|
-
"@kindgi/sdk": "0.1.4-rc.
|
|
49
|
-
"@kindgi/types": "0.1.4-rc.
|
|
40
|
+
"@kindgi/client": "0.1.4-rc.2",
|
|
41
|
+
"@kindgi/dotenv-file": "0.1.4-rc.2",
|
|
42
|
+
"@kindgi/crypto": "0.1.4-rc.2",
|
|
43
|
+
"@kindgi/env-schema": "0.1.4-rc.2",
|
|
44
|
+
"@kindgi/flow": "0.1.4-rc.2",
|
|
45
|
+
"@kindgi/handler-runtime": "0.1.4-rc.2",
|
|
46
|
+
"@kindgi/secrets-dotenv": "0.1.4-rc.2",
|
|
47
|
+
"@kindgi/platform": "0.1.4-rc.2",
|
|
48
|
+
"@kindgi/sdk": "0.1.4-rc.2",
|
|
49
|
+
"@kindgi/types": "0.1.4-rc.2",
|
|
50
50
|
"esbuild": "^0.24.0",
|
|
51
51
|
"semver": "^7.8.5",
|
|
52
52
|
"smol-toml": "^1.9.0",
|