@latitude-data/openclaw-telemetry 0.0.4 → 0.0.6
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 +144 -37
- package/dist/plugin.d.ts +55 -65
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +751 -472
- package/dist/plugin.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -12
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -603
- package/dist/cli.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,71 +4,178 @@ OpenClaw plugin that streams every agent run to [Latitude](https://latitude.so)
|
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
|
-
Requires OpenClaw **2026.4.25 or newer
|
|
7
|
+
Requires OpenClaw **2026.4.25 or newer**. Get a Latitude API key + project slug from `https://console.latitude.so/settings/api-keys` first.
|
|
8
|
+
|
|
9
|
+
> **One-shot installer coming soon.** A separate `@latitude-data/openclaw-telemetry-cli` package is in flight that will collapse the steps below into `npx -y @latitude-data/openclaw-telemetry-cli install`. For now, the manual flow below is the supported path.
|
|
10
|
+
|
|
11
|
+
### Step 1 — Install the plugin runtime
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
openclaw plugins install @latitude-data/openclaw-telemetry
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
OpenClaw fetches the package from npm, runs its security scan, copies files into `~/.openclaw/extensions/<id>/`, and creates a (disabled) `plugins.entries["@latitude-data/openclaw-telemetry"]` entry in `~/.openclaw/openclaw.json`. The gateway will print:
|
|
18
|
+
|
|
19
|
+
> Plugin installed but disabled. Configure it, then run `openclaw plugins enable @latitude-data/openclaw-telemetry`.
|
|
20
|
+
|
|
21
|
+
That's expected — the next step does the configure-and-enable.
|
|
22
|
+
|
|
23
|
+
### Step 2 — Configure and enable
|
|
24
|
+
|
|
25
|
+
Run these `openclaw config set` commands (use bracket notation so the scoped package name parses correctly). Substitute your real API key and project slug in the first two:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.apiKey' "lat_xxx"
|
|
29
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.project' "my-project-slug"
|
|
30
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.allowConversationAccess' true
|
|
31
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].hooks.allowConversationAccess' true
|
|
32
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].enabled' true
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Why two `allowConversationAccess` writes? They mean different things — `hooks.*` is OpenClaw's dispatch gate (without it the plugin's hook handlers never fire), `config.*` is the plugin's payload-content gate (without it the plugin emits structural-only spans). For full content capture they must both be `true`. See [The two flags](#the-two-flags) for details.
|
|
36
|
+
|
|
37
|
+
### Step 3 — Add to `plugins.allow` (optional but loud)
|
|
38
|
+
|
|
39
|
+
OpenClaw warns at every gateway restart about non-bundled plugins that auto-load without provenance via `plugins.allow`. Silence the warning by adding the id:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# `config set` can't append to arrays — set the whole list. If you already have
|
|
43
|
+
# entries in `plugins.allow`, include them here too:
|
|
44
|
+
openclaw config set 'plugins.allow' '["@latitude-data/openclaw-telemetry"]'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Step 4 — Restart the gateway
|
|
8
48
|
|
|
9
49
|
```bash
|
|
10
|
-
npx -y @latitude-data/openclaw-telemetry install
|
|
11
50
|
openclaw gateway restart
|
|
12
51
|
```
|
|
13
52
|
|
|
14
|
-
|
|
53
|
+
Verify everything's wired:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
openclaw config validate --json
|
|
57
|
+
# → {"valid": true, ...}
|
|
58
|
+
|
|
59
|
+
grep -E "blocked|plugin not found|latitude" /tmp/openclaw/openclaw-*.log | tail
|
|
60
|
+
# → ready (N plugins: ..., @latitude-data/openclaw-telemetry, ...)
|
|
61
|
+
# → no "blocked", no "plugin not found"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Send a message to one of your OpenClaw agents — within a few seconds, traces appear at `https://console.latitude.so/projects/<your-slug>`.
|
|
65
|
+
|
|
66
|
+
### Alternative: hand-edit `~/.openclaw/openclaw.json`
|
|
67
|
+
|
|
68
|
+
If you'd rather paste a JSON block than run six commands, the equivalent edit is:
|
|
69
|
+
|
|
70
|
+
```jsonc
|
|
71
|
+
{
|
|
72
|
+
"plugins": {
|
|
73
|
+
"allow": ["@latitude-data/openclaw-telemetry"],
|
|
74
|
+
"entries": {
|
|
75
|
+
"@latitude-data/openclaw-telemetry": {
|
|
76
|
+
"enabled": true,
|
|
77
|
+
"hooks": {
|
|
78
|
+
"allowConversationAccess": true
|
|
79
|
+
},
|
|
80
|
+
"config": {
|
|
81
|
+
"apiKey": "lat_xxx",
|
|
82
|
+
"project": "my-project-slug",
|
|
83
|
+
"allowConversationAccess": true
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Merge this with whatever else is in `openclaw.json`. Then `openclaw config validate` and `openclaw gateway restart` as above.
|
|
15
92
|
|
|
16
|
-
|
|
17
|
-
2. Hands plugin placement to OpenClaw via `openclaw plugins install <package-path> --force`. OpenClaw copies files into `~/.openclaw/extensions/<id>/`, writes the install record to `~/.openclaw/plugins/installs.json`, and creates the `plugins.entries[id]` block.
|
|
18
|
-
3. Layers our config on top in `~/.openclaw/openclaw.json`:
|
|
19
|
-
- **`config.*`** — credentials, baseUrl, and `allowConversationAccess` (the payload-content gate the plugin's runtime reads).
|
|
20
|
-
- **`hooks.allowConversationAccess`** — the dispatch gate OpenClaw's runtime checks before forwarding LLM/tool/agent events to non-bundled plugins. Always mirrored to the same value as `config.allowConversationAccess`.
|
|
21
|
-
4. Adds the plugin id to `plugins.allow` (running `npx install` is the trust signal). Pass `--no-trust` to opt out.
|
|
93
|
+
### Targeting a different environment
|
|
22
94
|
|
|
23
|
-
|
|
95
|
+
For staging or local-dev, also set `baseUrl`:
|
|
24
96
|
|
|
25
|
-
|
|
97
|
+
```bash
|
|
98
|
+
# Staging:
|
|
99
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.baseUrl' "https://staging-ingest.latitude.so"
|
|
26
100
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| `--project=<slug>` | Pass the project slug instead of being prompted. |
|
|
31
|
-
| `--staging` | Target `https://staging.latitude.so` / `https://staging-ingest.latitude.so`. |
|
|
32
|
-
| `--dev` | Target `http://localhost:3000` / `http://localhost:3002`. |
|
|
33
|
-
| `--yes` / `--no-prompt` | Skip all prompts. Required for non-TTY / CI invocations. |
|
|
34
|
-
| `--no-content` | Skip raw prompt/response/tool I/O capture. Spans still emit with timing, token usage, model name, and ids. Mirrored into both `config.allowConversationAccess` and `hooks.allowConversationAccess`. |
|
|
35
|
-
| `--no-trust` | Skip auto-adding the plugin id to `plugins.allow`. OpenClaw will keep printing `plugins.allow is empty` warnings until you add it manually. |
|
|
101
|
+
# Local dev:
|
|
102
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.baseUrl' "http://localhost:3002"
|
|
103
|
+
```
|
|
36
104
|
|
|
37
|
-
|
|
105
|
+
### Structural-only telemetry (no content capture)
|
|
106
|
+
|
|
107
|
+
If you want trace metadata (timings, token usage, model name, agent name, ids) without the prompt/response content, keep `hooks.allowConversationAccess` at `true` (so OpenClaw still dispatches events to us) and set only `config.allowConversationAccess` to `false`:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].config.allowConversationAccess' false
|
|
111
|
+
openclaw config set 'plugins.entries["@latitude-data/openclaw-telemetry"].hooks.allowConversationAccess' true
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Setting `hooks.allowConversationAccess=false` would block dispatch entirely — see [The two flags](#the-two-flags). The plugin still emits the full span tree; just the content attributes (`gen_ai.input.messages`, `gen_ai.output.messages`, `gen_ai.system_instructions`, tool args/results) are scrubbed. Each span carries a `latitude.captured.content: false` boolean so the gate state is visible in the Latitude UI.
|
|
38
115
|
|
|
39
116
|
## Uninstall
|
|
40
117
|
|
|
41
118
|
```bash
|
|
42
|
-
|
|
119
|
+
openclaw plugins uninstall @latitude-data/openclaw-telemetry --force
|
|
43
120
|
```
|
|
44
121
|
|
|
45
|
-
|
|
122
|
+
OpenClaw removes the files, install record, plugin entry, and the `plugins.allow` entry. After that, restart the gateway:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
openclaw gateway restart
|
|
126
|
+
```
|
|
46
127
|
|
|
47
128
|
## What gets sent
|
|
48
129
|
|
|
49
|
-
For each agent run, the plugin emits one trace
|
|
130
|
+
For each agent run, the plugin emits one trace shaped like the actual run:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
agent (root, traceId = hash(runId))
|
|
134
|
+
├─ compaction (0..1, rare; budget-triggered)
|
|
135
|
+
├─ model_call (1..N, one per provider API call)
|
|
136
|
+
├─ tool_call: foo (between model_calls; sibling of agent)
|
|
137
|
+
├─ model_call
|
|
138
|
+
├─ tool_call: bar
|
|
139
|
+
├─ subagent (0..N — the child's full agent tree nests under here)
|
|
140
|
+
│ └─ agent
|
|
141
|
+
│ ├─ model_call
|
|
142
|
+
│ └─ tool_call: ...
|
|
143
|
+
└─ model_call (final)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Five span kinds:
|
|
147
|
+
|
|
148
|
+
- **`agent`** — root of the run. Carries `openclaw.session.key`, `openclaw.agent.id`, `openclaw.agent.name`, aggregated token usage across all generations, run duration, success/error status, the first user prompt, and the full final message list. This is where attempt-aggregate `gen_ai.*` lands.
|
|
149
|
+
- **`model_call`** — one per actual provider API call inside the run. Carries provider, request/response model, `openclaw.api`, `openclaw.transport`, per-call duration, outcome, error category, time-to-first-byte, request payload bytes, response stream bytes, upstream request id hash, and `gen_ai.input.messages` snapshotted at the moment that generation started. Per-call output messages and per-call token usage aren't surfaced by OpenClaw today (attempt-aggregate only); those stay on `agent`.
|
|
150
|
+
- **`tool_call:<name>`** — one per tool invocation. Canonical `gen_ai.tool.*` attributes: `name`, `call.id`, `call.arguments`, `call.result`. Sibling of `agent`, NOT child of `model_call` — tools run between generations, not during them.
|
|
151
|
+
- **`compaction`** — rare; fires when OpenClaw hits the message budget mid-run. Records before/after message counts and the compacted-out count.
|
|
152
|
+
- **`subagent`** — one per child run spawned by this agent. The child's entire `agent` subtree (its own `model_call`s, `tool_call`s, even further-nested `subagent`s) parents itself underneath via cross-runId trace propagation, so a spawn tree is one waterfall in one trace.
|
|
50
153
|
|
|
51
|
-
|
|
52
|
-
- **`llm_request`** — one per LLM call. Carries provider, request/response model, `gen_ai.system_instructions`, `gen_ai.input.messages` (full history + current prompt), `gen_ai.output.messages` (assistant text + tool_call parts), and full token usage (input/output/cache_read/cache_creation/total) — under both canonical `gen_ai.*` keys and legacy aliases.
|
|
53
|
-
- **`tool_execution`** — one per tool call. Canonical `gen_ai.tool.*` attributes: `name`, `call.id`, `call.arguments`, `call.result`. Failures set `error.type`, `error.message`, and OTel status code 2.
|
|
154
|
+
Every span carries `openclaw.agent.id` and `openclaw.agent.name`. Multi-agent setups produce spans tagged with the invoking agent's id, letting you filter and group by agent in the Latitude UI.
|
|
54
155
|
|
|
55
|
-
|
|
156
|
+
All spans share the same `traceId` so they group as one trace per agent run (and one trace per spawn tree, by virtue of the subagent linkage).
|
|
56
157
|
|
|
57
|
-
|
|
158
|
+
### Backend caveat: Codex / Claude-Code-style providers
|
|
159
|
+
|
|
160
|
+
OpenClaw's `model_call_started` / `model_call_ended` hooks fire from its `selection` layer, which wraps the agent's `streamFn` invocation. For "agentic" backends (Codex, Claude Code) the inner generations happen inside the backend's own loop and don't surface as separate `model_call` events. Result: a Codex-backed run shows ONE `model_call` per attempt instead of N. Anthropic and OpenAI direct don't have this issue. The fix is upstream in OpenClaw — out of scope for this plugin.
|
|
58
161
|
|
|
59
162
|
## How it works
|
|
60
163
|
|
|
61
|
-
OpenClaw
|
|
164
|
+
We subscribe to OpenClaw's typed plugin hooks (`src/plugins/hook-types.ts` upstream). The model is "one span per paired before/after (or start/end) event":
|
|
165
|
+
|
|
166
|
+
| Span | Start hook | End hook |
|
|
167
|
+
| --- | --- | --- |
|
|
168
|
+
| `agent` | `before_agent_start` | `agent_end` |
|
|
169
|
+
| `model_call` | `model_call_started` | `model_call_ended` |
|
|
170
|
+
| `tool_call` | `before_tool_call` | `after_tool_call` |
|
|
171
|
+
| `compaction` | `before_compaction` | `after_compaction` |
|
|
172
|
+
| `subagent` | `subagent_spawned` | `subagent_ended` |
|
|
62
173
|
|
|
63
|
-
|
|
64
|
-
- `llm_output` — assistant text, last assistant message, full token usage (input/output/cacheRead/cacheWrite/total), resolved provider/model ref.
|
|
65
|
-
- `before_tool_call` / `after_tool_call` — tool name, arguments, result, error, duration.
|
|
66
|
-
- `agent_end` — run completion signal. This is when we build the OTLP trace and POST it.
|
|
67
|
-
- `session_start` — currently a no-op; reserved for future session-level metadata.
|
|
174
|
+
Two more hooks (`llm_input`, `llm_output`) are subscribed to for **content only** — they don't open or close spans, they just enrich the `agent` span with attempt-aggregate data and seed the rolling history snapshot used by per-call `model_call.gen_ai.input.messages`.
|
|
68
175
|
|
|
69
|
-
|
|
176
|
+
The hook system runs handlers fire-and-forget (see [`src/plugins/hooks.ts`](https://github.com/openclaw/openclaw/blob/main/src/plugins/hooks.ts) upstream), so nothing we do here can slow the agent loop. The one exception is `before_tool_call`, which is a `runModifyingHook` — our handler returns `undefined` so OpenClaw dispatches the tool normally. Returning anything else (e.g. `{block: true}`) would block every tool call.
|
|
70
177
|
|
|
71
|
-
**No runtime wrapping.** Unlike
|
|
178
|
+
**No runtime wrapping.** Unlike third-party OpenClaw observability plugins that try to monkey-patch `@mariozechner/pi-ai` (and run into jiti's CJS/ESM module isolation), we stay inside the supported plugin API. The hooks give us everything, at lower risk of breaking on OpenClaw updates.
|
|
72
179
|
|
|
73
180
|
## Configuration reference
|
|
74
181
|
|
package/dist/plugin.d.ts
CHANGED
|
@@ -20,68 +20,56 @@ interface Logger {
|
|
|
20
20
|
warn: (msg: string) => void;
|
|
21
21
|
}
|
|
22
22
|
//#endregion
|
|
23
|
-
//#region src/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
23
|
+
//#region src/span-builder.d.ts
|
|
24
|
+
/**
|
|
25
|
+
* Builds the per-trace span tree for an OpenClaw agent run from the granular
|
|
26
|
+
* paired hooks. Replaces the older `turn-builder.ts` model that collapsed the
|
|
27
|
+
* whole attempt into a single `llm_request` span — that shape was wrong on
|
|
28
|
+
* two counts: `llm_input` / `llm_output` fire ONCE per attempt (not per
|
|
29
|
+
* generation), and an attempt is a sequence of generations interleaved with
|
|
30
|
+
* tool executions.
|
|
31
|
+
*
|
|
32
|
+
* Span set this builder produces:
|
|
33
|
+
*
|
|
34
|
+
* agent (root)
|
|
35
|
+
* ├─ compaction (0..1, rare)
|
|
36
|
+
* ├─ model_call (1..N, one per provider API call)
|
|
37
|
+
* ├─ tool_call: ... (interleaved between model_calls; siblings of agent)
|
|
38
|
+
* ├─ subagent (0..N; child agent runs nest INSIDE these via
|
|
39
|
+
* │ └─ agent ... cross-runId trace propagation)
|
|
40
|
+
* └─ model_call (final)
|
|
41
|
+
*
|
|
42
|
+
* Tool spans are siblings of `agent`, not children of `model_call`, because
|
|
43
|
+
* tools run BETWEEN generations — not during them. Nesting under model_call
|
|
44
|
+
* would falsely imply concurrency.
|
|
45
|
+
*
|
|
46
|
+
* `llm_input` / `llm_output` are NOT span boundaries here. They're data-only
|
|
47
|
+
* feeds that enrich the parent `agent` span (full message history, output
|
|
48
|
+
* messages, aggregate token usage).
|
|
49
|
+
*/
|
|
50
|
+
interface SpanRecord {
|
|
51
|
+
/** Stable id for the span (16 hex chars). */
|
|
52
|
+
spanId: string;
|
|
53
|
+
/** Span tree id (32 hex chars). */
|
|
54
|
+
traceId: string;
|
|
55
|
+
/** Empty string for root agent spans, parent's spanId otherwise. */
|
|
56
|
+
parentSpanId: string;
|
|
57
|
+
/** OpenClaw event noun (`agent` / `model_call` / `tool_call` / `compaction` / `subagent`). */
|
|
58
|
+
name: string;
|
|
58
59
|
startMs: number;
|
|
59
60
|
endMs: number | undefined;
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
/** Free-form attribute bag — flattened to OTLP key/value at emit time. */
|
|
62
|
+
attrs: Record<string, AttrValue>;
|
|
63
|
+
/** Status — set at close from the event payload's outcome/error. */
|
|
64
|
+
outcome?: "ok" | "error";
|
|
65
|
+
errorMessage?: string | undefined;
|
|
62
66
|
}
|
|
63
|
-
|
|
67
|
+
type AttrValue = string | number | boolean | unknown[] | Record<string, unknown> | undefined;
|
|
68
|
+
interface BuildResult {
|
|
69
|
+
/** Run id this batch belongs to. */
|
|
64
70
|
runId: string;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
agentId: string | undefined;
|
|
68
|
-
workspaceDir: string | undefined;
|
|
69
|
-
messageProvider: string | undefined;
|
|
70
|
-
trigger: string | undefined;
|
|
71
|
-
channelId: string | undefined;
|
|
72
|
-
modelProviderId: string | undefined;
|
|
73
|
-
modelId: string | undefined;
|
|
74
|
-
startMs: number;
|
|
75
|
-
endMs: number | undefined;
|
|
76
|
-
success: boolean | undefined;
|
|
77
|
-
error: string | undefined;
|
|
78
|
-
llmCalls: LlmCallRecord[];
|
|
79
|
-
/**
|
|
80
|
-
* Tool calls queued by `before_tool_call` but not yet matched to an `llm_call`
|
|
81
|
-
* because the most recent `llm_output` has already closed the call for this
|
|
82
|
-
* runId. Retained so `after_tool_call` can still complete the record.
|
|
83
|
-
*/
|
|
84
|
-
orphanTools: ToolCallRecord[];
|
|
71
|
+
/** All spans ready to be exported (agent + everything beneath it). */
|
|
72
|
+
spans: SpanRecord[];
|
|
85
73
|
}
|
|
86
74
|
//#endregion
|
|
87
75
|
//#region src/plugin.d.ts
|
|
@@ -112,17 +100,19 @@ interface RegisterOptions {
|
|
|
112
100
|
* Hook to observe the emitted run right before it's posted. Used by tests;
|
|
113
101
|
* not a stable public API.
|
|
114
102
|
*/
|
|
115
|
-
onEmit?: (
|
|
103
|
+
onEmit?: (result: BuildResult) => void;
|
|
116
104
|
}
|
|
117
105
|
/**
|
|
118
106
|
* Register the Latitude plugin against an OpenClaw plugin API. OpenClaw calls
|
|
119
|
-
* this once at plugin activation; we wire up
|
|
120
|
-
*
|
|
107
|
+
* this once at plugin activation; we wire up the granular paired hooks
|
|
108
|
+
* (model_call_started/_ended, before_/after_tool_call, before_/after_compaction,
|
|
109
|
+
* subagent_spawned/_ended, before_agent_start/agent_end) plus the
|
|
110
|
+
* data-only feeds (llm_input/llm_output) that enrich the agent span.
|
|
121
111
|
*
|
|
122
|
-
* Every
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
112
|
+
* Every typed hook on OpenClaw's side fires fire-and-forget for non-modifying
|
|
113
|
+
* hooks; before_tool_call is a `runModifyingHook` where returning anything
|
|
114
|
+
* other than undefined blocks the tool call. Our handler returns nothing —
|
|
115
|
+
* keep it that way.
|
|
126
116
|
*/
|
|
127
117
|
declare function registerLatitudePlugin(api: OpenClawPluginApiLike, opts?: RegisterOptions): void;
|
|
128
118
|
//#endregion
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/config.ts","../src/logger.ts","../src/
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/config.ts","../src/logger.ts","../src/span-builder.ts","../src/plugin.ts"],"mappings":";UAAiB,MAAA;EACf,MAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;EAHA;;;;;;EAUA,uBAAA;AAAA;;;UCVe,MAAA;EACf,KAAA,GAAQ,GAAA;EACR,IAAA,GAAO,GAAA;AAAA;;;ADJT;;;;;;;;;;;;;;;ACEA;;;;;;;;;;;ADFA,UEsDiB,UAAA;;EAEf,MAAA;EAFyB;EAIzB,OAAA;EAQa;EANb,YAAA;EAFA;EAIA,IAAA;EACA,OAAA;EACA,KAAA;EAAA;EAEA,KAAA,EAAO,MAAA,SAAe,SAAA;EAAf;EAEP,OAAA;EACA,YAAA;AAAA;AAAA,KAGU,SAAA,2CAAoD,MAAA;AAAA,UAoD/C,WAAA;EApDL;EAsDV,KAAA;;EAEA,KAAA,EAAO,UAAA;AAAA;;;;;;;;;;;;;;UChGQ,qBAAA;EACf,MAAA,GAAS,MAAA;EACT,YAAA,GAAe,MAAA;EACf,EAAA,qBACE,QAAA,EAAU,CAAA,EACV,OAAA,GAAU,KAAA,WAAgB,GAAA,uBAC1B,IAAA;IAAS,QAAA;EAAA;AAAA;AAAA,UAII,eAAA;EFtCf;EEwCA,MAAA,GAAS,MAAA;EFxCS;EE0ClB,MAAA,GAAS,MAAA;;;;ADQX;ECHE,MAAA,IAAU,MAAA,EAAQ,WAAA;AAAA;;;;;;;;;;;;;iBAeI,sBAAA,CAAuB,GAAA,EAAK,qBAAA,EAAuB,IAAA,GAAM,eAAA"}
|