@agenticros/core 0.6.0 → 0.8.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/dist/mission.d.ts CHANGED
@@ -45,13 +45,13 @@
45
45
  *
46
46
  * What's still deferred:
47
47
  * - Parallel step execution (today: sequential only).
48
- * - Per-tool cancellation (cancel TIES to step boundaries today;
49
- * pause/resume also ties to step boundaries).
50
- * - Retry / backoff policies.
51
48
  *
52
49
  * Shipped since the original Phase 1.f header:
53
50
  * - Natural-language plan compilation (`compileGoalToMission` + goal arg).
54
51
  * - Pause / resume via the same control token (`paused` flag).
52
+ * - Step-level retry / backoff (`MissionStep.retry`).
53
+ * - Mid-step cancel for interruptible capabilities via AbortSignal
54
+ * on the dispatcher (non-interruptible steps still finish naturally).
55
55
  *
56
56
  * See: docs/strategy-ai-agents-plus-ros.md §4 (Phase 1.c / 1.f).
57
57
  */
@@ -123,8 +123,22 @@ export interface MissionStep {
123
123
  * Optional behaviour when this step fails. Defaults to "stop".
124
124
  * - "stop": halt the mission, mark it failed
125
125
  * - "continue": record the failure and run the next step anyway
126
+ * Applied only after retry attempts (if any) are exhausted.
126
127
  */
127
128
  on_fail?: "stop" | "continue";
129
+ /**
130
+ * Optional retry / backoff when the step errors. Default is a single
131
+ * attempt (`max_attempts: 1`). Retries re-invoke the same tool with
132
+ * the same resolved args; `on_fail` applies only after the last attempt.
133
+ */
134
+ retry?: {
135
+ /** Total attempts including the first (minimum 1). */
136
+ max_attempts: number;
137
+ /** Delay before the second attempt (ms). Default 0. */
138
+ backoff_ms?: number;
139
+ /** Multiply backoff after each failed attempt. Default 1. */
140
+ backoff_multiplier?: number;
141
+ };
128
142
  }
129
143
  /** A complete mission plan. */
130
144
  export interface Mission {
@@ -170,6 +184,8 @@ export interface MissionStepResult {
170
184
  error?: string;
171
185
  /** Wall time in ms. */
172
186
  duration_ms: number;
187
+ /** Number of dispatcher attempts used (including the successful one). */
188
+ attempts?: number;
173
189
  }
174
190
  /** Result of a mission run. */
175
191
  export interface MissionResult {
@@ -210,6 +226,15 @@ export interface MissionResult {
210
226
  */
211
227
  cancellation_reason?: string;
212
228
  }
229
+ /** Optional context passed to each dispatcher invocation. */
230
+ export interface MissionDispatchContext {
231
+ /**
232
+ * AbortSignal aborted when the mission is cancelled mid-step and the
233
+ * capability is `interruptible`. Long-running tools should poll
234
+ * `signal.aborted` (or listen for `abort`) and stop cleanly.
235
+ */
236
+ signal?: AbortSignal;
237
+ }
213
238
  /**
214
239
  * A dispatcher invokes a single MCP tool by name and returns:
215
240
  * - `text`: the tool's text response (free-form, for human display)
@@ -218,12 +243,17 @@ export interface MissionResult {
218
243
  * `{{...}}` template resolution by later steps.
219
244
  *
220
245
  * Adapters wrap their existing tool entry points to satisfy this contract.
246
+ * The optional third argument carries an AbortSignal for mid-step cancel.
221
247
  */
222
- export type MissionToolDispatcher = (toolName: string, args: Record<string, unknown>) => Promise<{
248
+ export type MissionToolDispatcher = (toolName: string, args: Record<string, unknown>, ctx?: MissionDispatchContext) => Promise<{
223
249
  text: string;
224
250
  outputs?: Record<string, unknown>;
225
251
  isError?: boolean;
226
252
  }>;
253
+ /** Thrown (or returned via isError) when a tool stops due to AbortSignal. */
254
+ export declare class MissionStepAbortedError extends Error {
255
+ constructor(message?: string);
256
+ }
227
257
  /**
228
258
  * Capability → MCP tool mapping. Each entry says "to satisfy capability X,
229
259
  * call tool Y with these arguments". The transform receives the step's
@@ -1 +1 @@
1
- {"version":3,"file":"mission.d.ts","sourceRoot":"","sources":["../src/mission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission.d.ts","sourceRoot":"","sources":["../src/mission.ts"],"names":[],"mappings":"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"}
package/dist/mission.js CHANGED
@@ -45,16 +45,32 @@
45
45
  *
46
46
  * What's still deferred:
47
47
  * - Parallel step execution (today: sequential only).
48
- * - Per-tool cancellation (cancel TIES to step boundaries today;
49
- * pause/resume also ties to step boundaries).
50
- * - Retry / backoff policies.
51
48
  *
52
49
  * Shipped since the original Phase 1.f header:
53
50
  * - Natural-language plan compilation (`compileGoalToMission` + goal arg).
54
51
  * - Pause / resume via the same control token (`paused` flag).
52
+ * - Step-level retry / backoff (`MissionStep.retry`).
53
+ * - Mid-step cancel for interruptible capabilities via AbortSignal
54
+ * on the dispatcher (non-interruptible steps still finish naturally).
55
55
  *
56
56
  * See: docs/strategy-ai-agents-plus-ros.md §4 (Phase 1.c / 1.f).
57
57
  */
58
+ /** Thrown (or returned via isError) when a tool stops due to AbortSignal. */
59
+ export class MissionStepAbortedError extends Error {
60
+ constructor(message = "Step aborted") {
61
+ super(message);
62
+ this.name = "MissionStepAbortedError";
63
+ }
64
+ }
65
+ function isAbortError(err) {
66
+ if (err instanceof MissionStepAbortedError)
67
+ return true;
68
+ if (err instanceof Error && err.name === "AbortError")
69
+ return true;
70
+ if (err instanceof Error && /aborted|cancelled/i.test(err.message))
71
+ return true;
72
+ return false;
73
+ }
58
74
  const TEMPLATE_RE = /\{\{\s*([a-zA-Z0-9_]+)\.outputs\.([a-zA-Z0-9_]+)\s*\}\}/g;
59
75
  function sleep(ms) {
60
76
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -145,6 +161,7 @@ function tryParseJsonOutputs(text) {
145
161
  */
146
162
  export async function runMission(mission, capabilities, bindings, dispatcher, options) {
147
163
  const capIds = new Set(capabilities.map((c) => c.id));
164
+ const capById = new Map(capabilities.map((c) => [c.id, c]));
148
165
  const stepOutputs = {};
149
166
  const results = [];
150
167
  const t0Mission = Date.now();
@@ -294,42 +311,149 @@ export async function runMission(mission, capabilities, bindings, dispatcher, op
294
311
  if (effective)
295
312
  toolArgs.robot_id = effective;
296
313
  }
297
- try {
298
- const dispatched = await dispatcher(binding.tool, toolArgs);
299
- const outputs = dispatched.outputs ??
300
- binding.parseOutputs?.(dispatched.text) ??
301
- tryParseJsonOutputs(dispatched.text);
302
- stepOutputs[step.id] = outputs;
303
- const status = dispatched.isError ? "error" : "ok";
304
- const result = {
305
- id: step.id,
306
- capability: step.capability,
307
- status,
308
- inputs: resolvedInputs,
309
- outputs,
310
- message: dispatched.text,
311
- ...(dispatched.isError ? { error: dispatched.text } : {}),
312
- duration_ms: Date.now() - t0,
313
- };
314
- results.push(result);
315
- emitTranscript(idx, t0, result);
316
- if (status === "error" && (step.on_fail ?? "stop") === "stop")
317
- aborted = true;
314
+ const maxAttempts = Math.max(1, Math.floor(step.retry?.max_attempts ?? 1));
315
+ let backoffMs = Math.max(0, step.retry?.backoff_ms ?? 0);
316
+ const backoffMult = step.retry?.backoff_multiplier ?? 1;
317
+ const interruptible = capById.get(step.capability)?.interruptible === true;
318
+ let attempts = 0;
319
+ let lastError;
320
+ let stepCancelledMid = false;
321
+ let finalResult;
322
+ while (attempts < maxAttempts) {
323
+ attempts += 1;
324
+ if (attempts > 1 && backoffMs > 0) {
325
+ await sleep(backoffMs);
326
+ backoffMs = Math.max(0, Math.round(backoffMs * backoffMult));
327
+ }
328
+ // Mid-step cancel: abort in-flight work when interruptible.
329
+ const controller = new AbortController();
330
+ let cancelPoll;
331
+ if (interruptible && options?.cancellation) {
332
+ const token = options.cancellation;
333
+ const maybeAbort = () => {
334
+ if (token.cancelled && !controller.signal.aborted) {
335
+ controller.abort();
336
+ }
337
+ };
338
+ maybeAbort();
339
+ cancelPoll = setInterval(maybeAbort, PAUSE_POLL_MS);
340
+ }
341
+ try {
342
+ const dispatched = await dispatcher(binding.tool, toolArgs, {
343
+ signal: controller.signal,
344
+ });
345
+ if (cancelPoll)
346
+ clearInterval(cancelPoll);
347
+ // Cooperative cancel: tool returned after abort without throwing.
348
+ if (controller.signal.aborted || options?.cancellation?.cancelled) {
349
+ if (interruptible) {
350
+ stepCancelledMid = true;
351
+ cancelled = true;
352
+ finalResult = {
353
+ id: step.id,
354
+ capability: step.capability,
355
+ status: "cancelled",
356
+ inputs: resolvedInputs,
357
+ message: `Cancelled mid-step: ${options?.cancellation?.reason ?? "cancelled"}`,
358
+ duration_ms: Date.now() - t0,
359
+ attempts,
360
+ };
361
+ break;
362
+ }
363
+ }
364
+ const outputs = dispatched.outputs ??
365
+ binding.parseOutputs?.(dispatched.text) ??
366
+ tryParseJsonOutputs(dispatched.text);
367
+ stepOutputs[step.id] = outputs;
368
+ const status = dispatched.isError ? "error" : "ok";
369
+ if (status === "ok") {
370
+ finalResult = {
371
+ id: step.id,
372
+ capability: step.capability,
373
+ status: "ok",
374
+ inputs: resolvedInputs,
375
+ outputs,
376
+ message: dispatched.text,
377
+ duration_ms: Date.now() - t0,
378
+ attempts,
379
+ };
380
+ break;
381
+ }
382
+ lastError = dispatched.text;
383
+ if (attempts >= maxAttempts) {
384
+ finalResult = {
385
+ id: step.id,
386
+ capability: step.capability,
387
+ status: "error",
388
+ inputs: resolvedInputs,
389
+ outputs,
390
+ message: dispatched.text,
391
+ error: dispatched.text,
392
+ duration_ms: Date.now() - t0,
393
+ attempts,
394
+ };
395
+ }
396
+ }
397
+ catch (err) {
398
+ if (cancelPoll)
399
+ clearInterval(cancelPoll);
400
+ if (isAbortError(err) || controller.signal.aborted) {
401
+ stepCancelledMid = true;
402
+ cancelled = true;
403
+ finalResult = {
404
+ id: step.id,
405
+ capability: step.capability,
406
+ status: "cancelled",
407
+ inputs: resolvedInputs,
408
+ message: `Cancelled mid-step: ${options?.cancellation?.reason ?? (err instanceof Error ? err.message : "cancelled")}`,
409
+ duration_ms: Date.now() - t0,
410
+ attempts,
411
+ };
412
+ break;
413
+ }
414
+ lastError = err instanceof Error ? err.message : String(err);
415
+ if (attempts >= maxAttempts) {
416
+ finalResult = {
417
+ id: step.id,
418
+ capability: step.capability,
419
+ status: "error",
420
+ inputs: resolvedInputs,
421
+ error: lastError,
422
+ duration_ms: Date.now() - t0,
423
+ attempts,
424
+ };
425
+ }
426
+ }
427
+ finally {
428
+ if (cancelPoll)
429
+ clearInterval(cancelPoll);
430
+ }
431
+ // If cancel flipped during a non-interruptible attempt, finish
432
+ // this step's result then stop subsequent steps at the boundary.
433
+ if (!interruptible && options?.cancellation?.cancelled && !stepCancelledMid) {
434
+ cancelled = true;
435
+ }
436
+ if (finalResult)
437
+ break;
318
438
  }
319
- catch (err) {
320
- const msg = err instanceof Error ? err.message : String(err);
321
- const result = {
439
+ if (!finalResult) {
440
+ finalResult = {
322
441
  id: step.id,
323
442
  capability: step.capability,
324
443
  status: "error",
325
444
  inputs: resolvedInputs,
326
- error: msg,
445
+ error: lastError ?? "Unknown step failure",
327
446
  duration_ms: Date.now() - t0,
447
+ attempts,
328
448
  };
329
- results.push(result);
330
- emitTranscript(idx, t0, result);
331
- if ((step.on_fail ?? "stop") === "stop")
332
- aborted = true;
449
+ }
450
+ results.push(finalResult);
451
+ emitTranscript(idx, t0, finalResult);
452
+ if (finalResult.status === "error" && (step.on_fail ?? "stop") === "stop") {
453
+ aborted = true;
454
+ }
455
+ if (options?.cancellation?.cancelled) {
456
+ cancelled = true;
333
457
  }
334
458
  }
335
459
  // "Ran" counts steps that actually executed — skipped (on_fail=stop)
@@ -1 +1 @@
1
- {"version":3,"file":"mission.js","sourceRoot":"","sources":["../src/mission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission.js","sourceRoot":"","sources":["../src/mission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * skillRefs → ~/.agenticros/skills-cache resolver (marketplace auto-fetch).
3
+ *
4
+ * Declarative refs like `owner/skill`, `owner/skill@main`, or
5
+ * `@agenticros-skills/foo@^1.0.0` are resolved via the skills marketplace
6
+ * install API (or directly from npm), cached under ~/.agenticros/skills-cache,
7
+ * and returned as absolute skillPaths for capability reading / OpenClaw loading.
8
+ *
9
+ * Prefer npm when the install descriptor includes `npmPackage` (or the ref
10
+ * is already a scoped npm name). Fall back to git clone + build.
11
+ *
12
+ * Never auto-upgrades: if the cache dir for a pin already exists, reuse it
13
+ * (optional pull when AGENTICROS_SKILLS_CACHE_PULL=1 for git caches).
14
+ */
15
+ import type { AgenticROSConfig } from "./config.js";
16
+ export declare const DEFAULT_SKILLS_API = "https://skills.agenticros.com/api";
17
+ export declare const DEFAULT_SKILLS_CACHE_DIR: string;
18
+ export interface ParsedSkillRef {
19
+ kind: "marketplace" | "npm";
20
+ /** owner/skill (lowercase) — marketplace refs only */
21
+ marketplaceRef?: string;
22
+ owner?: string;
23
+ skill?: string;
24
+ /** git ref / branch pin; default main — marketplace refs */
25
+ gitRef?: string;
26
+ /** Scoped npm package name — npm refs */
27
+ npmPackage?: string;
28
+ /** Semver range or exact version pin — npm refs (default: latest resolved) */
29
+ npmVersion?: string;
30
+ }
31
+ export interface InstallDescriptor {
32
+ slug: string;
33
+ marketplaceRef?: string;
34
+ skillId: string;
35
+ packageName: string;
36
+ githubUrl: string;
37
+ ref: string;
38
+ buildCmd: string;
39
+ /** When set, prefer npm pack over git clone. */
40
+ npmPackage?: string;
41
+ /** Pinned npm version when known. */
42
+ npmVersion?: string;
43
+ }
44
+ export interface ResolveSkillRefsOptions {
45
+ apiBase?: string;
46
+ cacheDir?: string;
47
+ /** When true, git pull --ff-only if cache already exists. */
48
+ pullIfPresent?: boolean;
49
+ /** Skip network / clone (return only paths that already exist in cache). */
50
+ offline?: boolean;
51
+ onLog?: (msg: string) => void;
52
+ }
53
+ export interface ResolveSkillRefsResult {
54
+ /** Absolute directories ready to merge into skillPaths. */
55
+ paths: string[];
56
+ errors: Array<{
57
+ ref: string;
58
+ error: string;
59
+ }>;
60
+ }
61
+ /**
62
+ * Parse `owner/skill`, `owner/skill@branch`, or `@scope/name[@semver]`.
63
+ */
64
+ export declare function parseSkillRef(raw: string): ParsedSkillRef | null;
65
+ export declare function skillsApiBase(override?: string): string;
66
+ export declare function skillsCacheDir(override?: string): string;
67
+ export declare function fetchInstallDescriptor(marketplaceRef: string, apiBase?: string): Promise<InstallDescriptor>;
68
+ /**
69
+ * Pack an npm package into the skills cache and return the absolute dir.
70
+ */
71
+ export declare function ensureNpmPackageCached(npmPackage: string, versionRange: string | undefined, opts?: ResolveSkillRefsOptions): Promise<string>;
72
+ /**
73
+ * Ensure one skillRef is present under the cache. Returns absolute path or throws.
74
+ */
75
+ export declare function ensureSkillRefCached(rawRef: string, opts?: ResolveSkillRefsOptions): Promise<string>;
76
+ /**
77
+ * Resolve all config.skillRefs into absolute directories.
78
+ * Does not mutate config — caller merges into skillPaths.
79
+ */
80
+ export declare function resolveSkillRefs(refs: string[], opts?: ResolveSkillRefsOptions): Promise<ResolveSkillRefsResult>;
81
+ /**
82
+ * Return a config copy with skillRefs resolved into skillPaths (deduped).
83
+ */
84
+ export declare function withResolvedSkillRefs(config: AgenticROSConfig, opts?: ResolveSkillRefsOptions): Promise<{
85
+ config: AgenticROSConfig;
86
+ errors: ResolveSkillRefsResult["errors"];
87
+ }>;
88
+ /**
89
+ * Sync: merge skillRefs that are already present under the skills-cache
90
+ * into skillPaths. No network — use CLI install / ensureSkillRefCached to
91
+ * populate the cache first. Safe for OpenClaw's synchronous register().
92
+ */
93
+ export declare function applyCachedSkillRefs(config: AgenticROSConfig): AgenticROSConfig;
94
+ /** Repo name hint from github URL (for logging). */
95
+ export declare function githubRepoBasename(githubUrl: string): string;
96
+ //# sourceMappingURL=skill-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-refs.d.ts","sourceRoot":"","sources":["../src/skill-refs.ts"],"names":[],"mappings":"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"}