@exellix/ai-tasks 8.2.1 → 8.2.3
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/.env.example +0 -10
- package/.metadata/log-diagnostics.json +13 -0
- package/README.md +48 -21
- package/dist/activix/activixClient.d.ts +13 -0
- package/dist/activix/activixClient.d.ts.map +1 -1
- package/dist/activix/activixClient.js +25 -3
- package/dist/activix/activixClient.js.map +1 -1
- package/dist/activix/getTaskActivities.d.ts +1 -1
- package/dist/activix/getTaskActivities.js +1 -1
- package/dist/activix/phaseTracking.js +1 -1
- package/dist/activix/phaseTracking.js.map +1 -1
- package/dist/core/task-sdk.d.ts.map +1 -1
- package/dist/core/task-sdk.js +7 -0
- package/dist/core/task-sdk.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/runPostStepLlmCall.d.ts.map +1 -1
- package/dist/internal/runPostStepLlmCall.js +65 -1
- package/dist/internal/runPostStepLlmCall.js.map +1 -1
- package/dist/logxer/aiTasksDiagnosticCodes.d.ts +1 -0
- package/dist/logxer/aiTasksDiagnosticCodes.d.ts.map +1 -1
- package/dist/logxer/aiTasksDiagnosticCodes.js +1 -0
- package/dist/logxer/aiTasksDiagnosticCodes.js.map +1 -1
- package/dist/logxer/packageLogxers.d.ts.map +1 -1
- package/dist/logxer/packageLogxers.js +2 -1
- package/dist/logxer/packageLogxers.js.map +1 -1
- package/dist/observability/extractHttpEndpointFromError.d.ts +4 -0
- package/dist/observability/extractHttpEndpointFromError.d.ts.map +1 -0
- package/dist/observability/extractHttpEndpointFromError.js +54 -0
- package/dist/observability/extractHttpEndpointFromError.js.map +1 -0
- package/dist/observability/logLlmProviderInvocation.d.ts +55 -0
- package/dist/observability/logLlmProviderInvocation.d.ts.map +1 -0
- package/dist/observability/logLlmProviderInvocation.js +187 -0
- package/dist/observability/logLlmProviderInvocation.js.map +1 -0
- package/dist/observability/logRunTaskFailure.d.ts.map +1 -1
- package/dist/observability/logRunTaskFailure.js +7 -0
- package/dist/observability/logRunTaskFailure.js.map +1 -1
- package/dist/strategies/direct-execution-strategy.d.ts.map +1 -1
- package/dist/strategies/direct-execution-strategy.js +56 -1
- package/dist/strategies/direct-execution-strategy.js.map +1 -1
- package/documenations/activix.md +15 -3
- package/documenations/xynthesis-activix-telemetry.md +1 -1
- package/package.json +8 -7
package/.env.example
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
# ============================================
|
|
2
|
-
# LLM routing (see .docs/prefer-openrouter-routing-policy.md)
|
|
3
|
-
# ============================================
|
|
4
|
-
# Prefer OpenRouter when OPENROUTER_API_KEY is set (default when omitted).
|
|
5
|
-
# PREFER_OPENROUTER=true
|
|
6
|
-
# PREFER_OPENROUTER=false
|
|
7
|
-
# Deprecated alias: USE_OPENROUTER (read only if PREFER_OPENROUTER unset)
|
|
8
|
-
# OPENROUTER_API_KEY=
|
|
9
|
-
# ANTHROPIC_API_KEY=
|
|
10
|
-
|
|
11
1
|
# ============================================
|
|
12
2
|
# nx-mongo Configuration
|
|
13
3
|
# ============================================
|
|
@@ -72,5 +72,18 @@
|
|
|
72
72
|
"retryable": true,
|
|
73
73
|
"userActionRequired": false,
|
|
74
74
|
"confidence": "medium"
|
|
75
|
+
},
|
|
76
|
+
"LLM_PROVIDER_INVOCATION": {
|
|
77
|
+
"defaultLevel": "warn",
|
|
78
|
+
"title": "LLM provider invocation routing",
|
|
79
|
+
"impact": "Structured per-phase model routing and best-effort HTTP endpoint confirmation for PRE, MAIN, and POST LLM calls.",
|
|
80
|
+
"remediation": [
|
|
81
|
+
"Compare intendedBaseUrl and routing with observedProvider/httpEndpoint.",
|
|
82
|
+
"PRE/POST xynthesis uses FuncX OpenRouter when OPENROUTER_API_KEY is set; MAIN skill routing is separate via ai-skills.",
|
|
83
|
+
"Search FUNCX / ai-skills activity logs for openrouter.ai when httpConfirmed is false."
|
|
84
|
+
],
|
|
85
|
+
"retryable": true,
|
|
86
|
+
"userActionRequired": false,
|
|
87
|
+
"confidence": "medium"
|
|
75
88
|
}
|
|
76
89
|
}
|
package/README.md
CHANGED
|
@@ -2389,52 +2389,79 @@ console.log(result.flexMd.payloads);
|
|
|
2389
2389
|
|
|
2390
2390
|
## Activix — task activity tracking
|
|
2391
2391
|
|
|
2392
|
-
`@
|
|
2392
|
+
`@x12i/activix` (**8.4+**) provides multi-phase activity tracking: each `runTask()` invocation emits several phase records (`local`, `narrix`, `pipeline_pre`, `direct`, `audit`, `polish`, `narrix_then_direct`). All phase records share the same `correlationId` (runtime `taskId`), so you can group them into one logical task run.
|
|
2393
2393
|
|
|
2394
|
-
**
|
|
2394
|
+
**Operational checklist:** [documenations/activix.md](./documenations/activix.md) · **Full reference:** [docs/activix.md](./docs/activix.md)
|
|
2395
2395
|
|
|
2396
|
-
###
|
|
2396
|
+
### How wiring works (Activix 8.4+)
|
|
2397
|
+
|
|
2398
|
+
ai-tasks **always calls Activix lifecycle APIs** on AI activity phases when Mongo is configured. **Activix decides whether rows are persisted** — do not branch in application code on a local write toggle.
|
|
2397
2399
|
|
|
2398
2400
|
```
|
|
2399
|
-
|
|
2401
|
+
runTask() phase → startRecord / completeRecord / failRecord
|
|
2402
|
+
↓
|
|
2403
|
+
activix-collections legend state
|
|
2404
|
+
track → Mongo write | off → same API, skip write
|
|
2400
2405
|
```
|
|
2401
2406
|
|
|
2402
|
-
|
|
2407
|
+
| Layer | Owns |
|
|
2408
|
+
|---|---|
|
|
2409
|
+
| **ai-tasks** | Construct Activix when `MONGO_URI` or `MONGO_LOGS_URI` is set; call lifecycle APIs per phase; pass `runContext`, `outer`, domain metadata |
|
|
2410
|
+
| **Activix** | `recordId`, `status`, `startTime`, `endTime`, `duration`; read legend `state` and skip or perform Mongo writes |
|
|
2411
|
+
| **Ops** | Toggle persistence via `activix-collections` (`state: track \| off`) or `setCollectionTrackingState()` — no redeploy required |
|
|
2412
|
+
|
|
2413
|
+
Lifecycle fields (`status`, timestamps, primary key) are **never** set by ai-tasks; Activix manages them on every write.
|
|
2414
|
+
|
|
2415
|
+
### Enable / disable
|
|
2416
|
+
|
|
2417
|
+
**Client construction** (whether phase APIs are called):
|
|
2418
|
+
|
|
2419
|
+
- **On by default** when `MONGO_URI` or `MONGO_LOGS_URI` is set.
|
|
2420
|
+
- **Opt out entirely:** `ACTIVIX_ENABLED=false` — no Activix client, no API calls (zero overhead for local dev/CI).
|
|
2421
|
+
- **`ACTIVIX_ENABLED=true` is no longer required** to turn tracking on.
|
|
2422
|
+
|
|
2423
|
+
**Mongo persistence** (whether rows reach the database):
|
|
2424
|
+
|
|
2425
|
+
- Controlled by Activix collection legend **`state`** in `activix-collections` (default **`track`**).
|
|
2426
|
+
- Set **`off`** to skip writes while keeping the same API surface: `await ax.setCollectionTrackingState('task-activities', 'off')`.
|
|
2427
|
+
- Legend state is cached (default TTL **600 s**); override with `ACTIVIX_COLLECTION_TRACKING_STATE_TTL_SEC`.
|
|
2428
|
+
|
|
2429
|
+
All Activix failures are **non-fatal** — a MongoDB outage never surfaces to the `runTask()` caller.
|
|
2403
2430
|
|
|
2404
2431
|
### Configuration
|
|
2405
2432
|
|
|
2406
2433
|
| Variable | Default | Description |
|
|
2407
2434
|
|---|---|---|
|
|
2408
|
-
| `
|
|
2409
|
-
| `
|
|
2410
|
-
| `ACTIVIX_COLLECTION` | `task-activities` |
|
|
2435
|
+
| `MONGO_URI` / `MONGO_LOGS_URI` | — | Required to construct Activix (first set wins) |
|
|
2436
|
+
| `ACTIVIX_ENABLED` | _(unset)_ | Set to `false` to opt out of client construction |
|
|
2437
|
+
| `ACTIVIX_COLLECTION` | `task-activities` | Dev/CI override only; package hard-codes `task-activities` in source |
|
|
2411
2438
|
| `ACTIVIX_STALE_TTL_MS` | `300000` | TTL (ms) before a stuck `started` record is marked `timeout` |
|
|
2412
|
-
| `
|
|
2413
|
-
| `
|
|
2414
|
-
| `
|
|
2439
|
+
| `ACTIVIX_COLLECTION_TRACKING_STATE_TTL_SEC` | `600` | Legend `state` cache TTL (Activix 8.4+) |
|
|
2440
|
+
| `ACTIVIX_LOGS_LEVEL` | _(see below)_ | Injected Activix logger threshold (`@x12i/logxer`, prefix **`ACTIVIX`**). Falls back to `ACTIVIX_LOG_LEVEL`, then `warn`. Values: `verbose` \| `debug` \| `info` \| `warn` \| `error` \| `off` / `silent` / `none`. |
|
|
2441
|
+
| `ACTIVIX_LOG_LEVEL` | `warn` | Legacy alias when `ACTIVIX_LOGS_LEVEL` is unset |
|
|
2442
|
+
| `AI_TASKS_LOGS_LEVEL` | `warn` | ai-tasks diagnostics threshold (`warnCode` + `.metadata/log-diagnostics.json`). Legacy alias: `AI_TASKS_LOG_LEVEL`. |
|
|
2443
|
+
|
|
2444
|
+
**Debug tooling (logxer 4.4.2):** **`getAiTasksJobLogs({ jobId, level, limit })`** queries in-process structured log envelopes captured during **`runTask()`**. Correlation ids are set via **`runAiTasksWithLogContext`** / **`patchRunTaskLogContext`**.
|
|
2415
2445
|
|
|
2416
|
-
**
|
|
2446
|
+
**Query API:** **`getTaskActivities(taskId)`** returns all phase records for one run (by `correlationId`).
|
|
2417
2447
|
|
|
2418
2448
|
### What is recorded
|
|
2419
2449
|
|
|
2420
|
-
Each record in `
|
|
2450
|
+
Each record in the `task-activities` collection captures:
|
|
2421
2451
|
|
|
2422
2452
|
- `correlationId`, `phase` — join key for grouping phase records into one `runTask()` invocation
|
|
2423
|
-
- `runContext`
|
|
2424
|
-
- `outer`
|
|
2453
|
+
- `runContext` — correlation envelope: `sessionId` matches `correlationId`; `taskId`, `skillId`, graph/node ids live here (not a top-level `identity` blob)
|
|
2454
|
+
- `outer` — required I/O tier (`input` / `output` / `metadata`); minimal placeholders until completion metadata is merged
|
|
2425
2455
|
- `skillKey`, `executionType`, `jobId`, `agentId`, `graphId`, `nodeId` — from the request
|
|
2426
2456
|
- `hasPipeline`, `hasNarrix`, `hasNarrixInput` — execution path flags
|
|
2427
|
-
- `status`
|
|
2428
|
-
- `
|
|
2429
|
-
- `instructionVersion`, `durationMs`, `stepCount` — from the response on success
|
|
2457
|
+
- `status`, `startTime`, `endTime`, `duration` — **auto-managed by Activix**
|
|
2458
|
+
- `instructionVersion`, `durationMs`, `stepCount` — from the response on success (phase-dependent)
|
|
2430
2459
|
- `error` / `errorMessage`, `errorCode` — on failure
|
|
2431
2460
|
|
|
2432
2461
|
### Stale record cleanup
|
|
2433
2462
|
|
|
2434
2463
|
Crashed or hung tasks leave records stuck in `started`. Call `ax.markStaleRecords()` from a periodic job (e.g. every 5 minutes) in the host process to flip them to `timeout`.
|
|
2435
2464
|
|
|
2436
|
-
**Full integration plan → [documenations/activix.md](./documenations/activix.md)**
|
|
2437
|
-
|
|
2438
2465
|
---
|
|
2439
2466
|
|
|
2440
2467
|
## Development Notes
|
|
@@ -2544,5 +2571,5 @@ ISC
|
|
|
2544
2571
|
- [documenations/synthesized-context-guide.md](./documenations/synthesized-context-guide.md) - User-facing guide for `synthesized-context` PRE-step behavior and controls
|
|
2545
2572
|
- [documenations/task-core-and-core-aware-synthesis.md](./documenations/task-core-and-core-aware-synthesis.md) - Template core token model and structured synthesis behavior
|
|
2546
2573
|
- [documenations/synthesis-invocation-notes.md](./documenations/synthesis-invocation-notes.md) - Notes on synthesis call behavior, cost, and operational implications
|
|
2547
|
-
- [documenations/activix.md](./documenations/activix.md) - Activix integration
|
|
2574
|
+
- [documenations/activix.md](./documenations/activix.md) - Activix integration: lifecycle tracking, collection legend `state` (Activix 8.4+), record schema, env config, execution path mapping, stale cleanup
|
|
2548
2575
|
- [documenations/downstream-test-runtime-teardown-cleanup.md](./documenations/downstream-test-runtime-teardown-cleanup.md) - Downstream `ai-skills` lifecycle cleanup note for open handles/process-exit hygiene in tests
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { Activix } from "@x12i/activix";
|
|
2
|
+
/** Package-owned Activix collection (Activix 7+ — hard-code in source; do not override in production). */
|
|
3
|
+
export declare const TASK_ACTIVITIES_COLLECTION: "task-activities";
|
|
2
4
|
/** MongoDB collection name for task activity records (must match `getActivixClient` and `getTaskActivities`). */
|
|
3
5
|
export declare function getActivixCollectionName(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Whether ai-tasks constructs an Activix client and calls lifecycle APIs on AI activity phases.
|
|
8
|
+
*
|
|
9
|
+
* **Persistence** (Mongo writes) is controlled by Activix collection legend `state` (`track` | `off`) in
|
|
10
|
+
* `activix-collections`, not by this helper. Integrators always call `startRecord` / `completeRecord` /
|
|
11
|
+
* `failRecord`; Activix decides whether rows reach Mongo.
|
|
12
|
+
*
|
|
13
|
+
* Returns `false` when Mongo is not configured, or when `ACTIVIX_ENABLED=false` (explicit opt-out).
|
|
14
|
+
*/
|
|
15
|
+
export declare function isActivixWired(): boolean;
|
|
16
|
+
/** @deprecated Prefer {@link isActivixWired}. Kept for callers that checked the old `ACTIVIX_ENABLED=true` gate. */
|
|
4
17
|
export declare function isActivixEnabled(): boolean;
|
|
5
18
|
export declare function getActivixClient(): Promise<Activix | null>;
|
|
6
19
|
//# sourceMappingURL=activixClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activixClient.d.ts","sourceRoot":"","sources":["../../src/activix/activixClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,iHAAiH;AACjH,wBAAgB,wBAAwB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"activixClient.d.ts","sourceRoot":"","sources":["../../src/activix/activixClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,0GAA0G;AAC1G,eAAO,MAAM,0BAA0B,EAAG,iBAA0B,CAAC;AAErE,iHAAiH;AACjH,wBAAgB,wBAAwB,IAAI,MAAM,CAGjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED,oHAAoH;AACpH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA4EhE"}
|
|
@@ -2,15 +2,33 @@ import { Activix } from "@x12i/activix";
|
|
|
2
2
|
import { getActivixLogxer, toActivixLogger } from "../logxer/packageLogxers.js";
|
|
3
3
|
let _client = null;
|
|
4
4
|
let _initPromise = null;
|
|
5
|
+
/** Package-owned Activix collection (Activix 7+ — hard-code in source; do not override in production). */
|
|
6
|
+
export const TASK_ACTIVITIES_COLLECTION = "task-activities";
|
|
5
7
|
/** MongoDB collection name for task activity records (must match `getActivixClient` and `getTaskActivities`). */
|
|
6
8
|
export function getActivixCollectionName() {
|
|
7
|
-
|
|
9
|
+
const fromEnv = process.env.ACTIVIX_COLLECTION?.trim();
|
|
10
|
+
return fromEnv || TASK_ACTIVITIES_COLLECTION;
|
|
8
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Whether ai-tasks constructs an Activix client and calls lifecycle APIs on AI activity phases.
|
|
14
|
+
*
|
|
15
|
+
* **Persistence** (Mongo writes) is controlled by Activix collection legend `state` (`track` | `off`) in
|
|
16
|
+
* `activix-collections`, not by this helper. Integrators always call `startRecord` / `completeRecord` /
|
|
17
|
+
* `failRecord`; Activix decides whether rows reach Mongo.
|
|
18
|
+
*
|
|
19
|
+
* Returns `false` when Mongo is not configured, or when `ACTIVIX_ENABLED=false` (explicit opt-out).
|
|
20
|
+
*/
|
|
21
|
+
export function isActivixWired() {
|
|
22
|
+
if (process.env.ACTIVIX_ENABLED === "false")
|
|
23
|
+
return false;
|
|
24
|
+
return !!(process.env.MONGO_URI?.trim() || process.env.MONGO_LOGS_URI?.trim());
|
|
25
|
+
}
|
|
26
|
+
/** @deprecated Prefer {@link isActivixWired}. Kept for callers that checked the old `ACTIVIX_ENABLED=true` gate. */
|
|
9
27
|
export function isActivixEnabled() {
|
|
10
|
-
return
|
|
28
|
+
return isActivixWired();
|
|
11
29
|
}
|
|
12
30
|
export async function getActivixClient() {
|
|
13
|
-
if (!
|
|
31
|
+
if (!isActivixWired())
|
|
14
32
|
return null;
|
|
15
33
|
if (_client) {
|
|
16
34
|
if (!_initPromise)
|
|
@@ -63,6 +81,10 @@ export async function getActivixClient() {
|
|
|
63
81
|
collections: [collectionConfig],
|
|
64
82
|
defaultCollection: collectionName,
|
|
65
83
|
staleRecordTTL,
|
|
84
|
+
diagnostics: {
|
|
85
|
+
owner: "@exellix/ai-tasks",
|
|
86
|
+
component: "task-activities",
|
|
87
|
+
},
|
|
66
88
|
logger: toActivixLogger(getActivixLogxer()),
|
|
67
89
|
});
|
|
68
90
|
_client = ax;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activixClient.js","sourceRoot":"","sources":["../../src/activix/activixClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEhF,IAAI,OAAO,GAAmB,IAAI,CAAC;AACnC,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,iHAAiH;AACjH,MAAM,UAAU,wBAAwB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,
|
|
1
|
+
{"version":3,"file":"activixClient.js","sourceRoot":"","sources":["../../src/activix/activixClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export type TaskActivityRecord = Record<string, unknown>;
|
|
|
3
3
|
* Retrieve Activix phase records for a single logical task run.
|
|
4
4
|
*
|
|
5
5
|
* Notes:
|
|
6
|
-
* - Requires `
|
|
6
|
+
* - Requires Mongo configured (`MONGO_URI` or `MONGO_LOGS_URI`) and Activix not opted out (`ACTIVIX_ENABLED=false`).
|
|
7
7
|
* - `taskId` is the runtime task identifier and also the Activix `correlationId`.
|
|
8
8
|
*/
|
|
9
9
|
export declare function getTaskActivities(taskId: string): Promise<TaskActivityRecord[]>;
|
|
@@ -3,7 +3,7 @@ import { getActivixClient, getActivixCollectionName } from "./activixClient.js";
|
|
|
3
3
|
* Retrieve Activix phase records for a single logical task run.
|
|
4
4
|
*
|
|
5
5
|
* Notes:
|
|
6
|
-
* - Requires `
|
|
6
|
+
* - Requires Mongo configured (`MONGO_URI` or `MONGO_LOGS_URI`) and Activix not opted out (`ACTIVIX_ENABLED=false`).
|
|
7
7
|
* - `taskId` is the runtime task identifier and also the Activix `correlationId`.
|
|
8
8
|
*/
|
|
9
9
|
export async function getTaskActivities(taskId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phaseTracking.js","sourceRoot":"","sources":["../../src/activix/phaseTracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAYjD,MAAM,UAAU,eAAe,CAAC,IAI/B;IACC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,EAAW,EACX,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"phaseTracking.js","sourceRoot":"","sources":["../../src/activix/phaseTracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-sdk.d.ts","sourceRoot":"","sources":["../../src/core/task-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAazD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAuB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-sdk.d.ts","sourceRoot":"","sources":["../../src/core/task-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAazD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AA2BzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA0OxD,KAAK,iBAAiB,GAAG,mBAAmB,CAAC;AA0S7C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,qBAAa,gBAAgB;IAIzB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;gBAGjC,YAAY,EAAE,iBAAiB,EACjC,QAAQ,EAAE;QACzB,OAAO,CAAC,OAAO,GAAG,GAAG,EACnB,KAAK,EAAE,GAAG,EACV,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;KACtC,EACD,OAAO,CAAC,EAAE,uBAAuB;IAQ7B,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IA4kDtF;;OAEG;YACW,6BAA6B;IAmhB3C;;;;;OAKG;YACW,cAAc;CAuR7B"}
|
package/dist/core/task-sdk.js
CHANGED
|
@@ -7,6 +7,7 @@ import { resolveSafeExecutionStrategyCatalogDefaultFunctionId } from "../executi
|
|
|
7
7
|
import { SYNTHESIZED_CONTEXT } from "../types/index.js";
|
|
8
8
|
import { runAuditPostStep } from "../post-steps/audit/runAudit.js";
|
|
9
9
|
import { buildRunTaskResultMetaFromModelId } from "../invocation/buildRunTaskResultMeta.js";
|
|
10
|
+
import { logRunTaskInvocationPlan } from "../observability/logLlmProviderInvocation.js";
|
|
10
11
|
import { runPolishPostStep } from "../post-steps/polish/runPolish.js";
|
|
11
12
|
import { getLocalTask } from "../localTasks/registry.js";
|
|
12
13
|
import { registerBuiltInLocalTasks } from "../localTasks/index.js";
|
|
@@ -476,6 +477,12 @@ export class WorexClientTasks {
|
|
|
476
477
|
graphId: input.graphId,
|
|
477
478
|
nodeId: input.nodeId,
|
|
478
479
|
});
|
|
480
|
+
await logRunTaskInvocationPlan({
|
|
481
|
+
modelConfig: input.modelConfig,
|
|
482
|
+
skillKey: input.skillKey,
|
|
483
|
+
}).catch(() => {
|
|
484
|
+
/* plan logging is best-effort diagnostics */
|
|
485
|
+
});
|
|
479
486
|
const coreSkillId = input.coreSkillId;
|
|
480
487
|
const upstreamIdentity = isRecord(input.identity) ? input.identity : undefined;
|
|
481
488
|
const executingSkillId = coreSkillId ?? input.skillKey;
|