@alpacakit/agents 0.1.0-beta.30 → 0.1.0-beta.35
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 +15 -10
- package/dist/agents/claude.d.ts.map +1 -1
- package/dist/agents/claude.js +19 -0
- package/dist/agents/codex.d.ts.map +1 -1
- package/dist/agents/codex.js +18 -0
- package/dist/host/availability.d.ts +56 -0
- package/dist/host/availability.d.ts.map +1 -0
- package/dist/host/availability.js +177 -0
- package/dist/host/command-doctor.d.ts +4 -0
- package/dist/host/command-doctor.d.ts.map +1 -0
- package/dist/host/command-doctor.js +21 -0
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/kernel/cli-agent.d.ts +3 -0
- package/dist/kernel/cli-agent.d.ts.map +1 -1
- package/dist/kernel/cli-agent.js +8 -19
- package/dist/kernel/definition.d.ts +2 -0
- package/dist/kernel/definition.d.ts.map +1 -1
- package/dist/kernel/facets.d.ts +5 -0
- package/dist/kernel/facets.d.ts.map +1 -1
- package/dist/kernel/facets.js +5 -0
- package/dist/kernel/runtime.d.ts +2 -1
- package/dist/kernel/runtime.d.ts.map +1 -1
- package/dist/kernel/runtime.js +4 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -253,19 +253,24 @@ Family-specific conventions (a fixed path env var + a keyring service)
|
|
|
253
253
|
belong in the consumer's own convention module, not in this package — they
|
|
254
254
|
are a plain instance of the same preset shape.
|
|
255
255
|
|
|
256
|
-
## Host plane: skills & MCP (operator)
|
|
256
|
+
## Host plane: execution availability, skills & MCP (operator)
|
|
257
257
|
|
|
258
|
-
Agents expose optional `agent.
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
258
|
+
Agents expose an optional `agent.availability` facet for ambient execution
|
|
259
|
+
readiness. CLI definitions receive a PATH-only default; Claude and Codex also
|
|
260
|
+
run their vendor authentication-status commands with the bound `HostContext`
|
|
261
|
+
environment unchanged. The result distinguishes runnable, unavailable, and
|
|
262
|
+
indeterminate states and includes definition-owned remediation where relevant.
|
|
263
|
+
|
|
264
|
+
The separate optional `agent.skills` / `agent.mcp` / `agent.doctor` facets
|
|
265
|
+
cover provisioning and health checks. Claude local-dir skills and Claude /
|
|
266
|
+
Codex stdio MCP registration are implemented; broad inventory listing for
|
|
267
|
+
installed skills and MCP servers remains in progress.
|
|
263
268
|
|
|
264
269
|
## Package entries
|
|
265
270
|
|
|
266
271
|
| Entry | Contents |
|
|
267
272
|
|---|---|
|
|
268
|
-
| `.` | runtime, fleet, structured output, auth materials, guards, errors, and every extension point |
|
|
273
|
+
| `.` | runtime, ambient execution availability, fleet, structured output, auth materials, guards, errors, and every extension point |
|
|
269
274
|
| `/config` | machine-local profile / agent-settings / fleet-state storage |
|
|
270
275
|
| `/config/xdg` | XDG Base Directory config-root preset (general apps) |
|
|
271
276
|
| `/config/extension` | custom agent-config kinds (`defineAgentConfigType`) |
|
|
@@ -276,9 +281,9 @@ listing are in progress.
|
|
|
276
281
|
## Status
|
|
277
282
|
|
|
278
283
|
Implemented: kernel (runtime, run handle, guards, classification), CLI
|
|
279
|
-
blueprint with built-in `claude()` / `codex()`,
|
|
280
|
-
repair, fleet with cooldown / auth-mark stores, auth
|
|
281
|
-
resolvers, `openaiCompatible` (engine port; the built-in HTTP
|
|
284
|
+
blueprint with built-in `claude()` / `codex()`, ambient execution availability,
|
|
285
|
+
structured output with repair, fleet with cooldown / auth-mark stores, auth
|
|
286
|
+
materials and secret resolvers, `openaiCompatible` (engine port; the built-in HTTP
|
|
282
287
|
chat-completions engine is the dependency-free default), and the first
|
|
283
288
|
host-plane skill / MCP implementations (Claude local-dir skills plus
|
|
284
289
|
Claude / Codex stdio MCP registration). Not yet implemented: the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8CH,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAC7D,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAyJ1D;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CA0CvD;AAoSD,wBAAgB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CA0ElD"}
|
package/dist/agents/claude.js
CHANGED
|
@@ -15,6 +15,7 @@ import { isErrnoCode } from "../core/fs.js";
|
|
|
15
15
|
import { readBoolean, readJsonRecord, readNumber, readRecord, readString, readUnknownRecord, } from "../core/json.js";
|
|
16
16
|
import { AGENT_EVENT_TYPE } from "../core/run.js";
|
|
17
17
|
import { TEXT_ENCODING } from "../core/values.js";
|
|
18
|
+
import { cliAvailability } from "../host/availability.js";
|
|
18
19
|
import { INSTALL_STATUS, MCP_TRANSPORT, SKILL_SOURCE_KIND, } from "../host/capabilities.js";
|
|
19
20
|
import { withStagedGithubDirectory, } from "../host/github-dir.js";
|
|
20
21
|
import { listMcpServersViaCli } from "../host/mcp-list.js";
|
|
@@ -42,6 +43,7 @@ const CLAUDE = {
|
|
|
42
43
|
},
|
|
43
44
|
auth: {
|
|
44
45
|
statusArgs: ["auth", "status", "--json"],
|
|
46
|
+
loginArgs: ["auth", "login", "--claudeai"],
|
|
45
47
|
},
|
|
46
48
|
mcp: {
|
|
47
49
|
addJson: "add-json",
|
|
@@ -455,6 +457,23 @@ export function claude() {
|
|
|
455
457
|
classify: [structuredQuotaMatcher()],
|
|
456
458
|
// F6: Claude CLI can report a structured quota rejection on exit 0.
|
|
457
459
|
classifyOnSuccess: [structuredQuotaMatcher()],
|
|
460
|
+
availability: cliAvailability({
|
|
461
|
+
command: CLAUDE.command,
|
|
462
|
+
commandMissingRemediation: {
|
|
463
|
+
detail: "Install Claude Code and ensure `claude` is on PATH.",
|
|
464
|
+
command: null,
|
|
465
|
+
},
|
|
466
|
+
authentication: {
|
|
467
|
+
args: CLAUDE.auth.statusArgs,
|
|
468
|
+
remediation: {
|
|
469
|
+
detail: "Sign in to Claude Code.",
|
|
470
|
+
command: {
|
|
471
|
+
executable: CLAUDE.command,
|
|
472
|
+
args: CLAUDE.auth.loginArgs,
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
},
|
|
476
|
+
}),
|
|
458
477
|
auth: {
|
|
459
478
|
[AUTH_MATERIAL_KIND.homeDir]: homeDirHandler,
|
|
460
479
|
[AUTH_MATERIAL_KIND.apiKey]: envVarAuthMaterial({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyCH,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AA6GtD;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAepD;AAiND,wBAAgB,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,CAqFhD"}
|
package/dist/agents/codex.js
CHANGED
|
@@ -14,6 +14,7 @@ import { CODEX_APP_SERVER_METHOD } from "../codex/protocol.js";
|
|
|
14
14
|
import { AGENT_ERROR_CODE, AgentError, AUTH_FAILURE_REASON, } from "../core/error.js";
|
|
15
15
|
import { readJsonRecord, readRecord, readString } from "../core/json.js";
|
|
16
16
|
import { AGENT_EVENT_TYPE } from "../core/run.js";
|
|
17
|
+
import { cliAvailability } from "../host/availability.js";
|
|
17
18
|
import { INSTALL_STATUS, MCP_SCOPE, MCP_TRANSPORT, SKILL_SOURCE_KIND, } from "../host/capabilities.js";
|
|
18
19
|
import { runHostCommand } from "../host/run-command.js";
|
|
19
20
|
import { parseCooldownHint } from "../kernel/classify.js";
|
|
@@ -315,6 +316,23 @@ export function codex() {
|
|
|
315
316
|
readString(record, CODEX.json.field.type) ===
|
|
316
317
|
CODEX.json.event.turnCompleted);
|
|
317
318
|
},
|
|
319
|
+
availability: cliAvailability({
|
|
320
|
+
command: CODEX.command,
|
|
321
|
+
commandMissingRemediation: {
|
|
322
|
+
detail: "Install Codex and ensure `codex` is on PATH.",
|
|
323
|
+
command: null,
|
|
324
|
+
},
|
|
325
|
+
authentication: {
|
|
326
|
+
args: CODEX.auth.statusArgs,
|
|
327
|
+
remediation: {
|
|
328
|
+
detail: "Sign in to Codex.",
|
|
329
|
+
command: {
|
|
330
|
+
executable: CODEX.command,
|
|
331
|
+
args: CODEX.auth.oauthLoginArgs,
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
},
|
|
335
|
+
}),
|
|
318
336
|
auth: {
|
|
319
337
|
[AUTH_MATERIAL_KIND.homeDir]: envVarAuthMaterial({
|
|
320
338
|
set: (material) => ({ [CODEX_HOME_ENV_VAR]: material.path }),
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent execution availability (ambient, not profile-bound). Definitions own
|
|
3
|
+
* vendor-specific probes and remediation; the runtime only binds HostContext.
|
|
4
|
+
*/
|
|
5
|
+
import type { HostContext } from "./context.js";
|
|
6
|
+
export declare const AGENT_AVAILABILITY_STATUS: {
|
|
7
|
+
readonly runnable: "runnable";
|
|
8
|
+
readonly unavailable: "unavailable";
|
|
9
|
+
readonly indeterminate: "indeterminate";
|
|
10
|
+
};
|
|
11
|
+
export declare const AGENT_UNAVAILABLE_REASON: {
|
|
12
|
+
readonly commandMissing: "command_missing";
|
|
13
|
+
readonly authenticationRequired: "authentication_required";
|
|
14
|
+
};
|
|
15
|
+
export declare const AGENT_INDETERMINATE_REASON: {
|
|
16
|
+
readonly probeTimeout: "probe_timeout";
|
|
17
|
+
readonly probeFault: "probe_fault";
|
|
18
|
+
};
|
|
19
|
+
export type AgentRemediation = {
|
|
20
|
+
readonly detail: string;
|
|
21
|
+
readonly command: {
|
|
22
|
+
readonly executable: string;
|
|
23
|
+
readonly args: readonly string[];
|
|
24
|
+
} | null;
|
|
25
|
+
};
|
|
26
|
+
export type AgentAvailability = {
|
|
27
|
+
readonly status: typeof AGENT_AVAILABILITY_STATUS.runnable;
|
|
28
|
+
} | {
|
|
29
|
+
readonly status: typeof AGENT_AVAILABILITY_STATUS.unavailable;
|
|
30
|
+
readonly reason: typeof AGENT_UNAVAILABLE_REASON.commandMissing | typeof AGENT_UNAVAILABLE_REASON.authenticationRequired;
|
|
31
|
+
readonly remediation: AgentRemediation | null;
|
|
32
|
+
} | {
|
|
33
|
+
readonly status: typeof AGENT_AVAILABILITY_STATUS.indeterminate;
|
|
34
|
+
readonly reason: typeof AGENT_INDETERMINATE_REASON.probeTimeout | typeof AGENT_INDETERMINATE_REASON.probeFault;
|
|
35
|
+
readonly detail: string;
|
|
36
|
+
};
|
|
37
|
+
export interface AgentAvailabilityCapability {
|
|
38
|
+
probe(ctx: HostContext): Promise<AgentAvailability>;
|
|
39
|
+
}
|
|
40
|
+
/** The single bounded default for CLI availability subprocesses. */
|
|
41
|
+
export declare const DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS = 30000;
|
|
42
|
+
export type CliAvailabilityOptions = {
|
|
43
|
+
readonly command: string;
|
|
44
|
+
readonly commandMissingRemediation: AgentRemediation | null;
|
|
45
|
+
readonly authentication?: {
|
|
46
|
+
readonly args: readonly string[];
|
|
47
|
+
readonly remediation: AgentRemediation | null;
|
|
48
|
+
};
|
|
49
|
+
readonly timeoutMs?: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Build a CLI definition-side availability capability. With no
|
|
53
|
+
* authentication command this is the generic PATH-only default.
|
|
54
|
+
*/
|
|
55
|
+
export declare function cliAvailability(options: CliAvailabilityOptions): AgentAvailabilityCapability;
|
|
56
|
+
//# sourceMappingURL=availability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/host/availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;KAClC,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,QAAQ,CAAA;CAAE,GAC9D;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EACX,OAAO,wBAAwB,CAAC,cAAc,GAC9C,OAAO,wBAAwB,CAAC,sBAAsB,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,aAAa,CAAC;IAChE,QAAQ,CAAC,MAAM,EACX,OAAO,0BAA0B,CAAC,YAAY,GAC9C,OAAO,0BAA0B,CAAC,UAAU,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED,oEAAoE;AACpE,eAAO,MAAM,2CAA2C,QAAS,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC/C,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAiHF;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,2BAA2B,CAqE7B"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent execution availability (ambient, not profile-bound). Definitions own
|
|
3
|
+
* vendor-specific probes and remediation; the runtime only binds HostContext.
|
|
4
|
+
*/
|
|
5
|
+
import { PROCESS_SIGNAL } from "../core/values.js";
|
|
6
|
+
export const AGENT_AVAILABILITY_STATUS = {
|
|
7
|
+
runnable: "runnable",
|
|
8
|
+
unavailable: "unavailable",
|
|
9
|
+
indeterminate: "indeterminate",
|
|
10
|
+
};
|
|
11
|
+
export const AGENT_UNAVAILABLE_REASON = {
|
|
12
|
+
commandMissing: "command_missing",
|
|
13
|
+
authenticationRequired: "authentication_required",
|
|
14
|
+
};
|
|
15
|
+
export const AGENT_INDETERMINATE_REASON = {
|
|
16
|
+
probeTimeout: "probe_timeout",
|
|
17
|
+
probeFault: "probe_fault",
|
|
18
|
+
};
|
|
19
|
+
/** The single bounded default for CLI availability subprocesses. */
|
|
20
|
+
export const DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS = 30_000;
|
|
21
|
+
const AVAILABILITY_DETAIL = {
|
|
22
|
+
timeout: "Agent availability probe timed out.",
|
|
23
|
+
commandResolutionFault: "Agent availability probe failed during command resolution.",
|
|
24
|
+
spawnFault: "Agent availability probe failed while starting the command.",
|
|
25
|
+
processFault: "Agent availability probe process failed.",
|
|
26
|
+
cleanupFault: "Agent availability probe process cleanup failed.",
|
|
27
|
+
timerFault: "Agent availability probe timer failed.",
|
|
28
|
+
};
|
|
29
|
+
const PROBE_OBSERVATION_KIND = {
|
|
30
|
+
exit: "exit",
|
|
31
|
+
timeout: "timeout",
|
|
32
|
+
fault: "fault",
|
|
33
|
+
};
|
|
34
|
+
function probeFault(detail) {
|
|
35
|
+
return {
|
|
36
|
+
status: AGENT_AVAILABILITY_STATUS.indeterminate,
|
|
37
|
+
reason: AGENT_INDETERMINATE_REASON.probeFault,
|
|
38
|
+
detail,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async function observeProcess(child) {
|
|
42
|
+
const drain = (async () => {
|
|
43
|
+
for await (const _chunk of child.chunks) {
|
|
44
|
+
// Availability is exit-code-only. Never retain CLI output.
|
|
45
|
+
}
|
|
46
|
+
})();
|
|
47
|
+
try {
|
|
48
|
+
const [, exit] = await Promise.all([drain, child.exit]);
|
|
49
|
+
return { kind: PROBE_OBSERVATION_KIND.exit, code: exit.code };
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return { kind: PROBE_OBSERVATION_KIND.fault };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function stopProcess(child) {
|
|
56
|
+
try {
|
|
57
|
+
child.kill(PROCESS_SIGNAL.sigkill);
|
|
58
|
+
await child.awaitTerminationEscalation();
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function resolveAuthenticationObservation(observation, child, cancelTimeout, remediation) {
|
|
66
|
+
let timeoutCleanupFailed = false;
|
|
67
|
+
try {
|
|
68
|
+
cancelTimeout();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
timeoutCleanupFailed = true;
|
|
72
|
+
}
|
|
73
|
+
if (observation.kind === PROBE_OBSERVATION_KIND.timeout) {
|
|
74
|
+
try {
|
|
75
|
+
await child.awaitTerminationEscalation();
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return probeFault(AVAILABILITY_DETAIL.cleanupFault);
|
|
79
|
+
}
|
|
80
|
+
if (timeoutCleanupFailed) {
|
|
81
|
+
return probeFault(AVAILABILITY_DETAIL.cleanupFault);
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
status: AGENT_AVAILABILITY_STATUS.indeterminate,
|
|
85
|
+
reason: AGENT_INDETERMINATE_REASON.probeTimeout,
|
|
86
|
+
detail: AVAILABILITY_DETAIL.timeout,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (observation.kind === PROBE_OBSERVATION_KIND.fault) {
|
|
90
|
+
const stopped = await stopProcess(child);
|
|
91
|
+
return probeFault(stopped && !timeoutCleanupFailed
|
|
92
|
+
? AVAILABILITY_DETAIL.processFault
|
|
93
|
+
: AVAILABILITY_DETAIL.cleanupFault);
|
|
94
|
+
}
|
|
95
|
+
if (timeoutCleanupFailed) {
|
|
96
|
+
return probeFault(AVAILABILITY_DETAIL.cleanupFault);
|
|
97
|
+
}
|
|
98
|
+
if (observation.code === 0) {
|
|
99
|
+
return { status: AGENT_AVAILABILITY_STATUS.runnable };
|
|
100
|
+
}
|
|
101
|
+
if (observation.code === null) {
|
|
102
|
+
return probeFault(AVAILABILITY_DETAIL.processFault);
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
status: AGENT_AVAILABILITY_STATUS.unavailable,
|
|
106
|
+
reason: AGENT_UNAVAILABLE_REASON.authenticationRequired,
|
|
107
|
+
remediation,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Build a CLI definition-side availability capability. With no
|
|
112
|
+
* authentication command this is the generic PATH-only default.
|
|
113
|
+
*/
|
|
114
|
+
export function cliAvailability(options) {
|
|
115
|
+
return {
|
|
116
|
+
probe: async (ctx) => {
|
|
117
|
+
let command;
|
|
118
|
+
try {
|
|
119
|
+
command = await ctx.exec.which(options.command, ctx.env);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return probeFault(AVAILABILITY_DETAIL.commandResolutionFault);
|
|
123
|
+
}
|
|
124
|
+
if (command === null) {
|
|
125
|
+
return {
|
|
126
|
+
status: AGENT_AVAILABILITY_STATUS.unavailable,
|
|
127
|
+
reason: AGENT_UNAVAILABLE_REASON.commandMissing,
|
|
128
|
+
remediation: options.commandMissingRemediation,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (options.authentication === undefined) {
|
|
132
|
+
return { status: AGENT_AVAILABILITY_STATUS.runnable };
|
|
133
|
+
}
|
|
134
|
+
let child;
|
|
135
|
+
try {
|
|
136
|
+
child = ctx.exec.spawn({
|
|
137
|
+
command,
|
|
138
|
+
args: [...options.authentication.args],
|
|
139
|
+
cwd: ctx.location.homeDir,
|
|
140
|
+
env: ctx.env,
|
|
141
|
+
stdin: null,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return probeFault(AVAILABILITY_DETAIL.spawnFault);
|
|
146
|
+
}
|
|
147
|
+
const processObservation = observeProcess(child);
|
|
148
|
+
let settleTimeout = () => { };
|
|
149
|
+
const timeoutObservation = new Promise((resolve) => {
|
|
150
|
+
settleTimeout = resolve;
|
|
151
|
+
});
|
|
152
|
+
let cancelTimeout;
|
|
153
|
+
try {
|
|
154
|
+
cancelTimeout = ctx.clock.setTimeout(() => {
|
|
155
|
+
try {
|
|
156
|
+
child.kill(PROCESS_SIGNAL.sigkill);
|
|
157
|
+
settleTimeout({ kind: PROBE_OBSERVATION_KIND.timeout });
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
settleTimeout({ kind: PROBE_OBSERVATION_KIND.fault });
|
|
161
|
+
}
|
|
162
|
+
}, options.timeoutMs ?? DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
const stopped = await stopProcess(child);
|
|
166
|
+
return probeFault(stopped
|
|
167
|
+
? AVAILABILITY_DETAIL.timerFault
|
|
168
|
+
: AVAILABILITY_DETAIL.cleanupFault);
|
|
169
|
+
}
|
|
170
|
+
const observation = await Promise.race([
|
|
171
|
+
processObservation,
|
|
172
|
+
timeoutObservation,
|
|
173
|
+
]);
|
|
174
|
+
return resolveAuthenticationObservation(observation, child, cancelTimeout, options.authentication.remediation);
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-doctor.d.ts","sourceRoot":"","sources":["../../src/host/command-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAmBtE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DOCTOR_CHECK_STATUS } from "./capabilities.js";
|
|
2
|
+
/** Default CLI Doctor: command presence only, with no auth inference. */
|
|
3
|
+
export function cliCommandDoctor(commandName) {
|
|
4
|
+
return {
|
|
5
|
+
probe: async (ctx) => {
|
|
6
|
+
const command = await ctx.exec.which(commandName, ctx.env);
|
|
7
|
+
return {
|
|
8
|
+
available: command !== null,
|
|
9
|
+
checks: [
|
|
10
|
+
{
|
|
11
|
+
id: "command-on-path",
|
|
12
|
+
status: command === null
|
|
13
|
+
? DOCTOR_CHECK_STATUS.fail
|
|
14
|
+
: DOCTOR_CHECK_STATUS.pass,
|
|
15
|
+
detail: command,
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,12 +20,12 @@ export type { ApiKeyProfileOptions, AuthCapability, AuthMaterial, AuthMaterialDe
|
|
|
20
20
|
export { AUTH_MATERIAL_KIND, AUTH_STATUS, createApiKeyProfile, createHomeDirProfile, envVarAuthMaterial, } from "./auth/material.js";
|
|
21
21
|
export { fileProfileStore, type ProfileStore } from "./auth/profile-store.js";
|
|
22
22
|
export { envResolver, requireSecret } from "./auth/secrets.js";
|
|
23
|
+
export type { ChildProcessAbsenceProof, ChildProcessCompletion, ChildProcessIdentity, ChildProcessLifecycle, ChildProcessTerminationEvidence, ChildProcessTerminationPhase, ChildProcessTerminationResult, ChildProcessUnkillableReason, ControlledExec, ControlledExecOptions, ControlledExecProcess, ControlledProcessRecovery, } from "./core/controlled-process.js";
|
|
24
|
+
export { CHILD_PROCESS_ABSENCE_PROOF, CHILD_PROCESS_TERMINATION_EVIDENCE_KIND, CHILD_PROCESS_TERMINATION_KIND, CHILD_PROCESS_TERMINATION_PHASE, CHILD_PROCESS_UNKILLABLE_REASON, } from "./core/controlled-process.js";
|
|
23
25
|
export type { EnvPatch } from "./core/env.js";
|
|
24
26
|
export { applyEnvPatch, EMPTY_ENV_PATCH, mergeEnvPatches, processEnv, } from "./core/env.js";
|
|
25
|
-
export type { AgentErrorCode, AgentErrorData, AgentErrorOptions, AgentFailure,
|
|
27
|
+
export type { AgentErrorCode, AgentErrorData, AgentErrorOptions, AgentFailure, AgentFailureClass, AgentFailureCode, AgentInfrastructureFailureCode, AuthFailureReason, GuardViolation, Issue, NotAvailableCause, TimeoutKind, } from "./core/error.js";
|
|
26
28
|
export { AGENT_ERROR_CODE, AGENT_FAILURE_CLASS, AGENT_INFRASTRUCTURE_FAILURE_CODE, AgentError, AUTH_FAILURE_REASON, agentFailure, infrastructureFailure, isAgentError, NOT_AVAILABLE_CAUSE, TIMEOUT_KIND, } from "./core/error.js";
|
|
27
|
-
export type { ChildProcessAbsenceProof, ChildProcessCompletion, ChildProcessIdentity, ChildProcessLifecycle, ChildProcessTerminationEvidence, ChildProcessTerminationPhase, ChildProcessTerminationResult, ChildProcessUnkillableReason, ControlledExec, ControlledExecOptions, ControlledExecProcess, ControlledProcessRecovery, } from "./core/controlled-process.js";
|
|
28
|
-
export { CHILD_PROCESS_TERMINATION_EVIDENCE_KIND, CHILD_PROCESS_ABSENCE_PROOF, CHILD_PROCESS_TERMINATION_KIND, CHILD_PROCESS_TERMINATION_PHASE, CHILD_PROCESS_UNKILLABLE_REASON, } from "./core/controlled-process.js";
|
|
29
29
|
export { createControlledExec } from "./core/node-controlled-exec.js";
|
|
30
30
|
export type { Clock, Exec, ExecChunk, ExecExit, ExecProcess, ExecSpawnOptions, HttpClient, InteractiveExecProcess, InteractiveExecSpawnOptions, Logger, LogLevel, Ports, SecretResolver, SecretResolvers, TelemetrySink, } from "./core/ports.js";
|
|
31
31
|
export { LOG_LEVEL } from "./core/ports.js";
|
|
@@ -36,12 +36,14 @@ export type { OutputChannel, ProcessSignal } from "./core/values.js";
|
|
|
36
36
|
export { OUTPUT_CHANNEL, PROCESS_SIGNAL } from "./core/values.js";
|
|
37
37
|
export type { FailureCorpusRecorder, FailureCorpusRecorderOptions, } from "./corpus/failure-corpus.js";
|
|
38
38
|
export { createFailureCorpusRecorder } from "./corpus/failure-corpus.js";
|
|
39
|
-
export type { AttemptStatus, AttemptTrace, Blocker, BlockerReason, Candidate, CandidateOptions, CreateFleetOptions,
|
|
39
|
+
export type { AttemptStatus, AttemptTrace, Blocker, BlockerReason, Candidate, CandidateOptions, CreateFleetOptions, Fleet, FleetAttemptRunOptions, FleetOutcome, FleetOutcomeStatus, FleetPlainRunOptions, FleetRunOptions, FleetStructuredRunOptions, } from "./fleet/fleet.js";
|
|
40
40
|
export { ATTEMPT_STATUS, BLOCKER_REASON, candidateForAgent, candidateFromProfile, candidateKey, createFleet, FLEET_OUTCOME_STATUS, profileCooldownKey, } from "./fleet/fleet.js";
|
|
41
41
|
export type { CooldownScope, FailureAction, FailureActionKind, FailurePolicy, PolicyCode, } from "./fleet/policy.js";
|
|
42
42
|
export { CAPACITY_DEFAULT_COOLDOWN_MS, COOLDOWN_SCOPE, defaultFailurePolicy, FAILURE_ACTION_KIND, QUOTA_DEFAULT_COOLDOWN_MS, } from "./fleet/policy.js";
|
|
43
43
|
export type { CooldownKey, FleetStateStore } from "./fleet/store.js";
|
|
44
44
|
export { fileFleetStore, memoryFleetStore } from "./fleet/store.js";
|
|
45
|
+
export type { AgentAvailability, AgentAvailabilityCapability, AgentRemediation, } from "./host/availability.js";
|
|
46
|
+
export { AGENT_AVAILABILITY_STATUS, AGENT_INDETERMINATE_REASON, AGENT_UNAVAILABLE_REASON, DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS, } from "./host/availability.js";
|
|
45
47
|
export type { DoctorCapability, DoctorCheck, DoctorReport, InstalledSkill, InstallOptions, InstallOutcome, McpAvailability, McpCapability, McpScope, McpServerSpec, McpServerState, McpTransport, SkillAvailability, SkillSource, SkillSourceKind, SkillsCapability, StdioMcpServerSpec, } from "./host/capabilities.js";
|
|
46
48
|
export { CAPABILITY_AVAILABILITY_STATUS, checkMcpAvailability, checkSkillAvailability, DOCTOR_CHECK_STATUS, INSTALL_STATUS, MCP_SCOPE, MCP_TRANSPORT, SKILL_SOURCE_KIND, } from "./host/capabilities.js";
|
|
47
49
|
export type { HostContext, HostLocation } from "./host/context.js";
|
|
@@ -56,10 +58,10 @@ export type { AgentDefinition, AgentRun, RunContext, } from "./kernel/definition
|
|
|
56
58
|
export { defineAgent } from "./kernel/definition.js";
|
|
57
59
|
export type { EnvTemplate, EnvTemplateResolution, } from "./kernel/env-template.js";
|
|
58
60
|
export { referencedEnvNames, resolveEnvTemplate, } from "./kernel/env-template.js";
|
|
59
|
-
export type { AgentAuth, AgentDoctor, AgentLogin, AgentMcp, AgentSkills, } from "./kernel/facets.js";
|
|
61
|
+
export type { AgentAuth, AgentAvailabilityProbe, AgentDoctor, AgentLogin, AgentMcp, AgentSkills, } from "./kernel/facets.js";
|
|
60
62
|
export type { Guard, GuardContext, GuardFactory } from "./kernel/guard.js";
|
|
61
63
|
export { maxToolCalls, maxTurns, noProgress, repeatedOutput, } from "./kernel/guard.js";
|
|
62
|
-
export type { ControlledChildProcessResource, Grant, Limits, ResolvedLimits,
|
|
64
|
+
export type { ControlledChildProcessResource, Grant, Limits, ResolvedLimits, ResolvedRunOptions, ResolvedRunResources, ResolvedSandbox, RunOptions, RunResources, Sandbox, SandboxMode, } from "./kernel/options.js";
|
|
63
65
|
export { GRANT_KIND, SANDBOX_MODE } from "./kernel/options.js";
|
|
64
66
|
export type { Agent, AgentRuntime, AgentRuntimeOptions, } from "./kernel/runtime.js";
|
|
65
67
|
export { createAgentRuntime, resolvePorts } from "./kernel/runtime.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,GAChB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,9 +16,9 @@ export { LOGIN_EVENT_TYPE, LOGIN_METHOD } from "./auth/login.js";
|
|
|
16
16
|
export { AUTH_MATERIAL_KIND, AUTH_STATUS, createApiKeyProfile, createHomeDirProfile, envVarAuthMaterial, } from "./auth/material.js";
|
|
17
17
|
export { fileProfileStore } from "./auth/profile-store.js";
|
|
18
18
|
export { envResolver, requireSecret } from "./auth/secrets.js";
|
|
19
|
+
export { CHILD_PROCESS_ABSENCE_PROOF, CHILD_PROCESS_TERMINATION_EVIDENCE_KIND, CHILD_PROCESS_TERMINATION_KIND, CHILD_PROCESS_TERMINATION_PHASE, CHILD_PROCESS_UNKILLABLE_REASON, } from "./core/controlled-process.js";
|
|
19
20
|
export { applyEnvPatch, EMPTY_ENV_PATCH, mergeEnvPatches, processEnv, } from "./core/env.js";
|
|
20
21
|
export { AGENT_ERROR_CODE, AGENT_FAILURE_CLASS, AGENT_INFRASTRUCTURE_FAILURE_CODE, AgentError, AUTH_FAILURE_REASON, agentFailure, infrastructureFailure, isAgentError, NOT_AVAILABLE_CAUSE, TIMEOUT_KIND, } from "./core/error.js";
|
|
21
|
-
export { CHILD_PROCESS_TERMINATION_EVIDENCE_KIND, CHILD_PROCESS_ABSENCE_PROOF, CHILD_PROCESS_TERMINATION_KIND, CHILD_PROCESS_TERMINATION_PHASE, CHILD_PROCESS_UNKILLABLE_REASON, } from "./core/controlled-process.js";
|
|
22
22
|
export { createControlledExec } from "./core/node-controlled-exec.js";
|
|
23
23
|
export { LOG_LEVEL } from "./core/ports.js";
|
|
24
24
|
export { redactJsonSecrets, redactSecrets } from "./core/redact.js";
|
|
@@ -28,6 +28,7 @@ export { createFailureCorpusRecorder } from "./corpus/failure-corpus.js";
|
|
|
28
28
|
export { ATTEMPT_STATUS, BLOCKER_REASON, candidateForAgent, candidateFromProfile, candidateKey, createFleet, FLEET_OUTCOME_STATUS, profileCooldownKey, } from "./fleet/fleet.js";
|
|
29
29
|
export { CAPACITY_DEFAULT_COOLDOWN_MS, COOLDOWN_SCOPE, defaultFailurePolicy, FAILURE_ACTION_KIND, QUOTA_DEFAULT_COOLDOWN_MS, } from "./fleet/policy.js";
|
|
30
30
|
export { fileFleetStore, memoryFleetStore } from "./fleet/store.js";
|
|
31
|
+
export { AGENT_AVAILABILITY_STATUS, AGENT_INDETERMINATE_REASON, AGENT_UNAVAILABLE_REASON, DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS, } from "./host/availability.js";
|
|
31
32
|
export { CAPABILITY_AVAILABILITY_STATUS, checkMcpAvailability, checkSkillAvailability, DOCTOR_CHECK_STATUS, INSTALL_STATUS, MCP_SCOPE, MCP_TRANSPORT, SKILL_SOURCE_KIND, } from "./host/capabilities.js";
|
|
32
33
|
export { parseMcpRequirementRef, parseSkillRequirementRef, } from "./host/requirement-ref.js";
|
|
33
34
|
export { validateSpecSecrets } from "./host/validate-spec.js";
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import type { LoginCapability } from "../auth/login.js";
|
|
10
10
|
import type { MaterialHandlers } from "../auth/material.js";
|
|
11
11
|
import type { AgentEvent, RunUsage } from "../core/run.js";
|
|
12
|
+
import { type AgentAvailabilityCapability, type AgentRemediation } from "../host/availability.js";
|
|
12
13
|
import type { DoctorCapability, McpCapability, SkillsCapability } from "../host/capabilities.js";
|
|
13
14
|
import { type FailureMatcher } from "./classify.js";
|
|
14
15
|
import type { AgentDefinition } from "./definition.js";
|
|
@@ -52,6 +53,8 @@ export type CliAgentBlueprint<Id extends string = string> = {
|
|
|
52
53
|
* output would misclassify runs that merely talk about limits.
|
|
53
54
|
*/
|
|
54
55
|
readonly classifyOnSuccess?: readonly FailureMatcher[];
|
|
56
|
+
readonly availability?: AgentAvailabilityCapability;
|
|
57
|
+
readonly commandMissingRemediation?: AgentRemediation | null;
|
|
55
58
|
readonly auth?: MaterialHandlers;
|
|
56
59
|
readonly login?: LoginCapability;
|
|
57
60
|
readonly doctor?: DoctorCapability;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-agent.d.ts","sourceRoot":"","sources":["../../src/kernel/cli-agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-agent.d.ts","sourceRoot":"","sources":["../../src/kernel/cli-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoB5D,OAAO,KAAK,EACV,UAAU,EAGV,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,cAAc,CAAC;AAMtB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,CAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,EACxD,GAAG,EAAE,UAAU,KACZ,SAAS,MAAM,EAAE;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,IAAI;IAC1D,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,UAAU,EAAE,CAAC;IAC7D,oEAAoE;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACjE,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IACpD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAqrBF,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EACpD,SAAS,EAAE,iBAAiB,CAAC,EAAE,CAAC,GAC/B,eAAe,CAAC,EAAE,CAAC,CAsCrB"}
|
package/dist/kernel/cli-agent.js
CHANGED
|
@@ -11,7 +11,8 @@ import { AGENT_ERROR_CODE, AGENT_INFRASTRUCTURE_FAILURE_CODE, AgentError, infras
|
|
|
11
11
|
import { redactSecrets } from "../core/redact.js";
|
|
12
12
|
import { AGENT_EVENT_TYPE, RUN_COMPLETION_KIND } from "../core/run.js";
|
|
13
13
|
import { OUTPUT_CHANNEL, PROCESS_SIGNAL, } from "../core/values.js";
|
|
14
|
-
import {
|
|
14
|
+
import { cliAvailability, } from "../host/availability.js";
|
|
15
|
+
import { cliCommandDoctor } from "../host/command-doctor.js";
|
|
15
16
|
import { classifyFailure, sharedFailureMatchers, } from "./classify.js";
|
|
16
17
|
import { requireKeyedHandler } from "./keyed.js";
|
|
17
18
|
const SIGKILL_ESCALATION_MS = 5_000;
|
|
@@ -538,27 +539,15 @@ export function defineCliAgent(blueprint) {
|
|
|
538
539
|
detectCompletion: blueprint.detectCompletion?.bind(blueprint) ?? (() => false),
|
|
539
540
|
};
|
|
540
541
|
const matchers = [...(blueprint.classify ?? []), ...sharedFailureMatchers];
|
|
541
|
-
const doctor = blueprint.doctor ??
|
|
542
|
-
{
|
|
543
|
-
probe: async (ctx) => {
|
|
544
|
-
const command = await ctx.exec.which(blueprint.command, ctx.env);
|
|
545
|
-
return {
|
|
546
|
-
available: command !== null,
|
|
547
|
-
checks: [
|
|
548
|
-
{
|
|
549
|
-
id: "command-on-path",
|
|
550
|
-
status: command === null
|
|
551
|
-
? DOCTOR_CHECK_STATUS.fail
|
|
552
|
-
: DOCTOR_CHECK_STATUS.pass,
|
|
553
|
-
detail: command,
|
|
554
|
-
},
|
|
555
|
-
],
|
|
556
|
-
};
|
|
557
|
-
},
|
|
558
|
-
};
|
|
542
|
+
const doctor = blueprint.doctor ?? cliCommandDoctor(blueprint.command);
|
|
559
543
|
const definition = {
|
|
560
544
|
id: blueprint.id,
|
|
561
545
|
run: buildRun(blueprint, hooks, matchers, blueprint.classifyOnSuccess ?? []),
|
|
546
|
+
availability: blueprint.availability ??
|
|
547
|
+
cliAvailability({
|
|
548
|
+
command: blueprint.command,
|
|
549
|
+
commandMissingRemediation: blueprint.commandMissingRemediation ?? null,
|
|
550
|
+
}),
|
|
562
551
|
doctor,
|
|
563
552
|
};
|
|
564
553
|
if (blueprint.auth !== undefined) {
|
|
@@ -8,6 +8,7 @@ import type { LoginCapability } from "../auth/login.js";
|
|
|
8
8
|
import type { AuthCapability } from "../auth/material.js";
|
|
9
9
|
import type { Clock, Exec, HttpClient, Logger } from "../core/ports.js";
|
|
10
10
|
import type { AgentEvent, AgentRunOutcome } from "../core/run.js";
|
|
11
|
+
import type { AgentAvailabilityCapability } from "../host/availability.js";
|
|
11
12
|
import type { DoctorCapability, McpCapability, SkillsCapability } from "../host/capabilities.js";
|
|
12
13
|
import type { ResolvedRunOptions } from "./options.js";
|
|
13
14
|
/** Resolved (rule 2): the adapter's whole world. */
|
|
@@ -27,6 +28,7 @@ export type AgentRun = AsyncGenerator<AgentEvent, AgentRunOutcome, void>;
|
|
|
27
28
|
export interface AgentDefinition<Id extends string = string> {
|
|
28
29
|
id: Id;
|
|
29
30
|
run(options: ResolvedRunOptions, ctx: RunContext): AgentRun;
|
|
31
|
+
availability?: AgentAvailabilityCapability;
|
|
30
32
|
auth?: AuthCapability;
|
|
31
33
|
login?: LoginCapability;
|
|
32
34
|
doctor?: DoctorCapability;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/kernel/definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG;IACvB,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAC;IACpB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,2EAA2E;IAC3E,KAAK,EAAE,KAAK,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,WAAW,eAAe,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM;IACzD,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EACjD,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC,GAC9B,eAAe,CAAC,EAAE,CAAC,CAErB"}
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/kernel/definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG;IACvB,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAC;IACpB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,2EAA2E;IAC3E,KAAK,EAAE,KAAK,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,WAAW,eAAe,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM;IACzD,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5D,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EACjD,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC,GAC9B,eAAe,CAAC,EAAE,CAAC,CAErB"}
|
package/dist/kernel/facets.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { type LoginCapability, type LoginHandle, type LoginMethod, type LoginReq
|
|
|
8
8
|
import type { AuthCapability, AuthMaterial, AuthMaterialDescriptor, AuthMaterialKind, AuthStatus } from "../auth/material.js";
|
|
9
9
|
import type { EnvPatch } from "../core/env.js";
|
|
10
10
|
import type { Clock, Exec, HttpClient, Logger, SecretResolvers } from "../core/ports.js";
|
|
11
|
+
import type { AgentAvailability, AgentAvailabilityCapability } from "../host/availability.js";
|
|
11
12
|
import type { DoctorCapability, DoctorReport, InstalledSkill, InstallOptions, InstallOutcome, McpCapability, McpScope, McpServerSpec, McpServerState, SkillSource, SkillsCapability } from "../host/capabilities.js";
|
|
12
13
|
import type { HostLocation } from "../host/context.js";
|
|
13
14
|
export type AgentAuth = {
|
|
@@ -19,6 +20,9 @@ export type AgentAuth = {
|
|
|
19
20
|
toEnv(material: AuthMaterial): Promise<EnvPatch>;
|
|
20
21
|
check(material: AuthMaterial, location: HostLocation): Promise<AuthStatus>;
|
|
21
22
|
};
|
|
23
|
+
export type AgentAvailabilityProbe = {
|
|
24
|
+
probe(location: HostLocation): Promise<AgentAvailability>;
|
|
25
|
+
};
|
|
22
26
|
export type AgentDoctor = {
|
|
23
27
|
probe(location: HostLocation): Promise<DoctorReport>;
|
|
24
28
|
};
|
|
@@ -51,6 +55,7 @@ export type FacetBinding = {
|
|
|
51
55
|
secrets: SecretResolvers;
|
|
52
56
|
};
|
|
53
57
|
export declare function bindAuth(capability: AuthCapability, binding: FacetBinding): AgentAuth;
|
|
58
|
+
export declare function bindAvailability(capability: AgentAvailabilityCapability, binding: FacetBinding): AgentAvailabilityProbe;
|
|
54
59
|
export declare function bindLogin(capability: LoginCapability, binding: FacetBinding): AgentLogin;
|
|
55
60
|
export declare function bindDoctor(capability: DoctorCapability, binding: FacetBinding): AgentDoctor;
|
|
56
61
|
export declare function bindSkills(capability: SkillsCapability, binding: FacetBinding): AgentSkills;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/kernel/facets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/kernel/facets.ts"],"names":[],"mappings":"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"}
|
package/dist/kernel/facets.js
CHANGED
|
@@ -48,6 +48,11 @@ export function bindAuth(capability, binding) {
|
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
+
export function bindAvailability(capability, binding) {
|
|
52
|
+
return {
|
|
53
|
+
probe: (location) => capability.probe(hostContext(binding, location)),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
51
56
|
export function bindLogin(capability, binding) {
|
|
52
57
|
const requireHandler = (method) => requireKeyedHandler(capability.methods, method, binding.agentId, `login method "${method}"`);
|
|
53
58
|
return {
|
package/dist/kernel/runtime.d.ts
CHANGED
|
@@ -8,13 +8,14 @@ import { type Ports } from "../core/ports.js";
|
|
|
8
8
|
import type { RunHandle } from "../core/run.js";
|
|
9
9
|
import { type StructuredHandle, type StructuredRunOptions } from "../structured/run-structured.js";
|
|
10
10
|
import type { AgentDefinition } from "./definition.js";
|
|
11
|
-
import { type AgentAuth, type AgentDoctor, type AgentLogin, type AgentMcp, type AgentSkills } from "./facets.js";
|
|
11
|
+
import { type AgentAuth, type AgentAvailabilityProbe, type AgentDoctor, type AgentLogin, type AgentMcp, type AgentSkills } from "./facets.js";
|
|
12
12
|
import { type RunOptions } from "./options.js";
|
|
13
13
|
export interface Agent<Id extends string = string> {
|
|
14
14
|
readonly id: Id;
|
|
15
15
|
run<T>(options: StructuredRunOptions<T>): StructuredHandle<T>;
|
|
16
16
|
run(options: RunOptions): RunHandle;
|
|
17
17
|
run<T>(options: RunOptions | StructuredRunOptions<T>): RunHandle | StructuredHandle<T>;
|
|
18
|
+
availability: AgentAvailabilityProbe | null;
|
|
18
19
|
auth: AgentAuth | null;
|
|
19
20
|
login: AgentLogin | null;
|
|
20
21
|
skills: AgentSkills | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/kernel/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/kernel/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EAQjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM;IAC/C,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,CAAC,EACH,OAAO,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAC5C,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnC,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM;IACtD,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,SAAS,eAAe,EAAE,IAAI;IACzE,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAS1D;AAyED,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,IAAI,SAAS,SAAS,eAAe,EAAE,EAC7C,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAoCtE"}
|
package/dist/kernel/runtime.js
CHANGED
|
@@ -10,7 +10,7 @@ import { AGENT_ERROR_CODE, AgentError } from "../core/error.js";
|
|
|
10
10
|
import { fetchHttp, nodeExec, systemClock } from "../core/node-ports.js";
|
|
11
11
|
import { noopLogger, noopTelemetry } from "../core/ports.js";
|
|
12
12
|
import { isStructuredRunOptions, resolveStructuredRunOptions, startStructuredRun, } from "../structured/run-structured.js";
|
|
13
|
-
import { bindAuth, bindDoctor, bindLogin, bindMcp, bindSkills, } from "./facets.js";
|
|
13
|
+
import { bindAuth, bindAvailability, bindDoctor, bindLogin, bindMcp, bindSkills, } from "./facets.js";
|
|
14
14
|
import { resolveRunOptions } from "./options.js";
|
|
15
15
|
import { startRun } from "./run.js";
|
|
16
16
|
/**
|
|
@@ -63,6 +63,9 @@ function bindAgent(definition, ports, baseEnv) {
|
|
|
63
63
|
return {
|
|
64
64
|
id: definition.id,
|
|
65
65
|
run,
|
|
66
|
+
availability: definition.availability === undefined
|
|
67
|
+
? null
|
|
68
|
+
: bindAvailability(definition.availability, binding),
|
|
66
69
|
auth: definition.auth === undefined ? null : bindAuth(definition.auth, binding),
|
|
67
70
|
login: definition.login === undefined
|
|
68
71
|
? null
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpacakit/agents",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.35",
|
|
4
4
|
"description": "Run AI coding agents programmatically: execute, stream, classify failures, fail over.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"zod": "^4.3.6",
|
|
52
|
-
"@alpacakit/core": "0.1.0-beta.
|
|
52
|
+
"@alpacakit/core": "0.1.0-beta.35"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"typescript": "^5.9.3",
|