@agentdeck/bridge 0.2.1 → 0.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/assets/fonts/IBMPlexSans-Bold.ttf +0 -0
- package/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
- package/assets/fonts/JetBrainsMono-Bold.ttf +0 -0
- package/assets/fonts/JetBrainsMono-Regular.ttf +0 -0
- package/assets/fonts/LICENSES.md +22 -0
- package/dist/adapters/claude-code.d.ts +6 -0
- package/dist/adapters/claude-code.d.ts.map +1 -1
- package/dist/adapters/claude-code.js +8 -0
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adapters/openclaw.d.ts +24 -0
- package/dist/adapters/openclaw.d.ts.map +1 -1
- package/dist/adapters/openclaw.js +291 -35
- package/dist/adapters/openclaw.js.map +1 -1
- package/dist/adapters/opencode-adapter.d.ts +59 -0
- package/dist/adapters/opencode-adapter.d.ts.map +1 -1
- package/dist/adapters/opencode-adapter.js +297 -35
- package/dist/adapters/opencode-adapter.js.map +1 -1
- package/dist/adb-reverse.d.ts +1 -1
- package/dist/adb-reverse.js +1 -1
- package/dist/antigravity-local.d.ts +1 -0
- package/dist/antigravity-local.d.ts.map +1 -1
- package/dist/antigravity-local.js +33 -0
- package/dist/antigravity-local.js.map +1 -1
- package/dist/apme/adapters/claude-hook.d.ts.map +1 -1
- package/dist/apme/adapters/claude-hook.js +5 -0
- package/dist/apme/adapters/claude-hook.js.map +1 -1
- package/dist/apme/adapters/codex-hook.d.ts +17 -0
- package/dist/apme/adapters/codex-hook.d.ts.map +1 -0
- package/dist/apme/adapters/codex-hook.js +95 -0
- package/dist/apme/adapters/codex-hook.js.map +1 -0
- package/dist/apme/adapters/codex-turn-manager.d.ts +86 -0
- package/dist/apme/adapters/codex-turn-manager.d.ts.map +1 -0
- package/dist/apme/adapters/codex-turn-manager.js +496 -0
- package/dist/apme/adapters/codex-turn-manager.js.map +1 -0
- package/dist/apme/adapters/openclaw-hook.d.ts +99 -0
- package/dist/apme/adapters/openclaw-hook.d.ts.map +1 -0
- package/dist/apme/adapters/openclaw-hook.js +234 -0
- package/dist/apme/adapters/openclaw-hook.js.map +1 -0
- package/dist/apme/adapters/opencode-hook.d.ts +56 -0
- package/dist/apme/adapters/opencode-hook.d.ts.map +1 -0
- package/dist/apme/adapters/opencode-hook.js +182 -0
- package/dist/apme/adapters/opencode-hook.js.map +1 -0
- package/dist/apme/adapters/timeline.d.ts.map +1 -1
- package/dist/apme/adapters/timeline.js +6 -1
- package/dist/apme/adapters/timeline.js.map +1 -1
- package/dist/apme/antigravity-transcript.d.ts +18 -0
- package/dist/apme/antigravity-transcript.d.ts.map +1 -0
- package/dist/apme/antigravity-transcript.js +94 -0
- package/dist/apme/antigravity-transcript.js.map +1 -0
- package/dist/apme/classify-turn.d.ts +13 -0
- package/dist/apme/classify-turn.d.ts.map +1 -0
- package/dist/apme/classify-turn.js +49 -0
- package/dist/apme/classify-turn.js.map +1 -0
- package/dist/apme/claude-transcript-reader.d.ts +10 -0
- package/dist/apme/claude-transcript-reader.d.ts.map +1 -1
- package/dist/apme/claude-transcript-reader.js +35 -0
- package/dist/apme/claude-transcript-reader.js.map +1 -1
- package/dist/apme/collector.d.ts +129 -6
- package/dist/apme/collector.d.ts.map +1 -1
- package/dist/apme/collector.js +470 -23
- package/dist/apme/collector.js.map +1 -1
- package/dist/apme/dashboard-html.d.ts.map +1 -1
- package/dist/apme/dashboard-html.js +87 -11
- package/dist/apme/dashboard-html.js.map +1 -1
- package/dist/apme/http.d.ts.map +1 -1
- package/dist/apme/http.js +43 -6
- package/dist/apme/http.js.map +1 -1
- package/dist/apme/index.d.ts +26 -5
- package/dist/apme/index.d.ts.map +1 -1
- package/dist/apme/index.js +135 -9
- package/dist/apme/index.js.map +1 -1
- package/dist/apme/pareto.d.ts +39 -0
- package/dist/apme/pareto.d.ts.map +1 -0
- package/dist/apme/pareto.js +59 -0
- package/dist/apme/pareto.js.map +1 -0
- package/dist/apme/recommend.d.ts +3 -0
- package/dist/apme/recommend.d.ts.map +1 -1
- package/dist/apme/recommend.js +43 -1
- package/dist/apme/recommend.js.map +1 -1
- package/dist/apme/runner.d.ts +92 -4
- package/dist/apme/runner.d.ts.map +1 -1
- package/dist/apme/runner.js +586 -70
- package/dist/apme/runner.js.map +1 -1
- package/dist/apme/sample-to-timeline.d.ts +26 -0
- package/dist/apme/sample-to-timeline.d.ts.map +1 -0
- package/dist/apme/sample-to-timeline.js +95 -0
- package/dist/apme/sample-to-timeline.js.map +1 -0
- package/dist/apme/scorers/index.d.ts +47 -0
- package/dist/apme/scorers/index.d.ts.map +1 -0
- package/dist/apme/scorers/index.js +96 -0
- package/dist/apme/scorers/index.js.map +1 -0
- package/dist/apme/settings.d.ts +14 -10
- package/dist/apme/settings.d.ts.map +1 -1
- package/dist/apme/settings.js +34 -8
- package/dist/apme/settings.js.map +1 -1
- package/dist/apme/store.d.ts +33 -1
- package/dist/apme/store.d.ts.map +1 -1
- package/dist/apme/store.js +334 -25
- package/dist/apme/store.js.map +1 -1
- package/dist/awaiting-overlay.d.ts +99 -0
- package/dist/awaiting-overlay.d.ts.map +1 -0
- package/dist/awaiting-overlay.js +148 -0
- package/dist/awaiting-overlay.js.map +1 -0
- package/dist/ble-sync-spawn.d.ts +63 -0
- package/dist/ble-sync-spawn.d.ts.map +1 -0
- package/dist/ble-sync-spawn.js +196 -0
- package/dist/ble-sync-spawn.js.map +1 -0
- package/dist/bridge-core.d.ts +24 -1
- package/dist/bridge-core.d.ts.map +1 -1
- package/dist/bridge-core.js +157 -24
- package/dist/bridge-core.js.map +1 -1
- package/dist/broadcast.d.ts +3 -0
- package/dist/broadcast.d.ts.map +1 -0
- package/dist/broadcast.js +122 -0
- package/dist/broadcast.js.map +1 -0
- package/dist/check-deps.d.ts.map +1 -1
- package/dist/check-deps.js +25 -9
- package/dist/check-deps.js.map +1 -1
- package/dist/cli.d.ts +15 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1025 -94
- package/dist/cli.js.map +1 -1
- package/dist/codex-auth.d.ts +21 -0
- package/dist/codex-auth.d.ts.map +1 -1
- package/dist/codex-auth.js +52 -1
- package/dist/codex-auth.js.map +1 -1
- package/dist/codex-output-parser.d.ts +8 -0
- package/dist/codex-output-parser.d.ts.map +1 -1
- package/dist/codex-output-parser.js +110 -25
- package/dist/codex-output-parser.js.map +1 -1
- package/dist/codex-rate-limits.d.ts +16 -0
- package/dist/codex-rate-limits.d.ts.map +1 -0
- package/dist/codex-rate-limits.js +197 -0
- package/dist/codex-rate-limits.js.map +1 -0
- package/dist/codex-rollout-response.d.ts +31 -0
- package/dist/codex-rollout-response.d.ts.map +1 -0
- package/dist/codex-rollout-response.js +135 -0
- package/dist/codex-rollout-response.js.map +1 -0
- package/dist/daemon-server.d.ts +85 -0
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +1627 -159
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon.js +15 -6
- package/dist/daemon.js.map +1 -1
- package/dist/display-dim.d.ts +9 -0
- package/dist/display-dim.d.ts.map +1 -0
- package/dist/display-dim.js +53 -0
- package/dist/display-dim.js.map +1 -0
- package/dist/display-monitor.d.ts +15 -2
- package/dist/display-monitor.d.ts.map +1 -1
- package/dist/display-monitor.js +104 -26
- package/dist/display-monitor.js.map +1 -1
- package/dist/esp32-serial.d.ts +160 -1
- package/dist/esp32-serial.d.ts.map +1 -1
- package/dist/esp32-serial.js +950 -153
- package/dist/esp32-serial.js.map +1 -1
- package/dist/fallback-task-timeline.d.ts +42 -0
- package/dist/fallback-task-timeline.d.ts.map +1 -0
- package/dist/fallback-task-timeline.js +112 -0
- package/dist/fallback-task-timeline.js.map +1 -0
- package/dist/foundation-models-helper.d.ts +11 -0
- package/dist/foundation-models-helper.d.ts.map +1 -0
- package/dist/foundation-models-helper.js +241 -0
- package/dist/foundation-models-helper.js.map +1 -0
- package/dist/hook-migration.js +1 -1
- package/dist/hook-migration.js.map +1 -1
- package/dist/hook-server.d.ts +2 -3
- package/dist/hook-server.d.ts.map +1 -1
- package/dist/hook-server.js +22 -10
- package/dist/hook-server.js.map +1 -1
- package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts +33 -0
- package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts.map +1 -0
- package/dist/idotmatrix/idotmatrix-daemon-sync.js +164 -0
- package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -0
- package/dist/idotmatrix/idotmatrix-discover.d.ts +18 -0
- package/dist/idotmatrix/idotmatrix-discover.d.ts.map +1 -0
- package/dist/idotmatrix/idotmatrix-discover.js +85 -0
- package/dist/idotmatrix/idotmatrix-discover.js.map +1 -0
- package/dist/idotmatrix/idotmatrix-settings.d.ts +20 -0
- package/dist/idotmatrix/idotmatrix-settings.d.ts.map +1 -0
- package/dist/idotmatrix/idotmatrix-settings.js +57 -0
- package/dist/idotmatrix/idotmatrix-settings.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +215 -179
- package/dist/index.js.map +1 -1
- package/dist/log-stream.d.ts +15 -16
- package/dist/log-stream.d.ts.map +1 -1
- package/dist/log-stream.js +18 -96
- package/dist/log-stream.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +12 -3
- package/dist/logger.js.map +1 -1
- package/dist/mdns.d.ts +17 -0
- package/dist/mdns.d.ts.map +1 -1
- package/dist/mdns.js +52 -18
- package/dist/mdns.js.map +1 -1
- package/dist/modules/adb-module.d.ts +1 -1
- package/dist/modules/adb-module.d.ts.map +1 -1
- package/dist/modules/adb-module.js +4 -3
- package/dist/modules/adb-module.js.map +1 -1
- package/dist/modules/broadcast-module.d.ts +17 -0
- package/dist/modules/broadcast-module.d.ts.map +1 -0
- package/dist/modules/broadcast-module.js +26 -0
- package/dist/modules/broadcast-module.js.map +1 -0
- package/dist/modules/idotmatrix-module.d.ts +9 -0
- package/dist/modules/idotmatrix-module.d.ts.map +1 -0
- package/dist/modules/idotmatrix-module.js +46 -0
- package/dist/modules/idotmatrix-module.js.map +1 -0
- package/dist/modules/index.d.ts +3 -1
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +9 -3
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/pixoo-module.d.ts.map +1 -1
- package/dist/modules/pixoo-module.js +14 -4
- package/dist/modules/pixoo-module.js.map +1 -1
- package/dist/modules/serial-module.d.ts +4 -0
- package/dist/modules/serial-module.d.ts.map +1 -1
- package/dist/modules/serial-module.js +14 -12
- package/dist/modules/serial-module.js.map +1 -1
- package/dist/modules/timebox-module.d.ts +9 -0
- package/dist/modules/timebox-module.d.ts.map +1 -0
- package/dist/modules/timebox-module.js +46 -0
- package/dist/modules/timebox-module.js.map +1 -0
- package/dist/modules/types.d.ts +4 -2
- package/dist/modules/types.d.ts.map +1 -1
- package/dist/openclaw-session.d.ts +18 -0
- package/dist/openclaw-session.d.ts.map +1 -0
- package/dist/openclaw-session.js +34 -0
- package/dist/openclaw-session.js.map +1 -0
- package/dist/output-parser.d.ts +30 -0
- package/dist/output-parser.d.ts.map +1 -1
- package/dist/output-parser.js +125 -9
- package/dist/output-parser.js.map +1 -1
- package/dist/passive-observer.d.ts +26 -0
- package/dist/passive-observer.d.ts.map +1 -1
- package/dist/passive-observer.js +258 -49
- package/dist/passive-observer.js.map +1 -1
- package/dist/permission-resolver.d.ts +47 -0
- package/dist/permission-resolver.d.ts.map +1 -0
- package/dist/permission-resolver.js +103 -0
- package/dist/permission-resolver.js.map +1 -0
- package/dist/pixoo/micro-glyphs.d.ts +49 -0
- package/dist/pixoo/micro-glyphs.d.ts.map +1 -0
- package/dist/pixoo/micro-glyphs.js +276 -0
- package/dist/pixoo/micro-glyphs.js.map +1 -0
- package/dist/pixoo/pixoo-bridge.d.ts +2 -2
- package/dist/pixoo/pixoo-bridge.d.ts.map +1 -1
- package/dist/pixoo/pixoo-bridge.js +93 -25
- package/dist/pixoo/pixoo-bridge.js.map +1 -1
- package/dist/pixoo/pixoo-camera.d.ts +19 -3
- package/dist/pixoo/pixoo-camera.d.ts.map +1 -1
- package/dist/pixoo/pixoo-camera.js +62 -27
- package/dist/pixoo/pixoo-camera.js.map +1 -1
- package/dist/pixoo/pixoo-client.d.ts +13 -3
- package/dist/pixoo/pixoo-client.d.ts.map +1 -1
- package/dist/pixoo/pixoo-client.js +51 -22
- package/dist/pixoo/pixoo-client.js.map +1 -1
- package/dist/pixoo/pixoo-discover.d.ts +37 -0
- package/dist/pixoo/pixoo-discover.d.ts.map +1 -0
- package/dist/pixoo/pixoo-discover.js +105 -0
- package/dist/pixoo/pixoo-discover.js.map +1 -0
- package/dist/pixoo/pixoo-renderer.d.ts +8 -3
- package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
- package/dist/pixoo/pixoo-renderer.js +189 -60
- package/dist/pixoo/pixoo-renderer.js.map +1 -1
- package/dist/pixoo/pixoo-settings.d.ts +6 -0
- package/dist/pixoo/pixoo-settings.d.ts.map +1 -1
- package/dist/pixoo/pixoo-settings.js +9 -0
- package/dist/pixoo/pixoo-settings.js.map +1 -1
- package/dist/pixoo/pixoo-sprites.d.ts +60 -11
- package/dist/pixoo/pixoo-sprites.d.ts.map +1 -1
- package/dist/pixoo/pixoo-sprites.js +512 -209
- package/dist/pixoo/pixoo-sprites.js.map +1 -1
- package/dist/pty-manager.d.ts.map +1 -1
- package/dist/pty-manager.js +8 -2
- package/dist/pty-manager.js.map +1 -1
- package/dist/session-activity.d.ts +14 -0
- package/dist/session-activity.d.ts.map +1 -0
- package/dist/session-activity.js +160 -0
- package/dist/session-activity.js.map +1 -0
- package/dist/session-aggregator.d.ts +17 -0
- package/dist/session-aggregator.d.ts.map +1 -1
- package/dist/session-aggregator.js +48 -9
- package/dist/session-aggregator.js.map +1 -1
- package/dist/session-registry.d.ts +71 -3
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/session-registry.js +137 -8
- package/dist/session-registry.js.map +1 -1
- package/dist/session-timeline-relay.d.ts.map +1 -1
- package/dist/session-timeline-relay.js +13 -4
- package/dist/session-timeline-relay.js.map +1 -1
- package/dist/session-transcript-timeline.d.ts +49 -0
- package/dist/session-transcript-timeline.d.ts.map +1 -0
- package/dist/session-transcript-timeline.js +276 -0
- package/dist/session-transcript-timeline.js.map +1 -0
- package/dist/state-machine.d.ts +6 -1
- package/dist/state-machine.d.ts.map +1 -1
- package/dist/state-machine.js +86 -28
- package/dist/state-machine.js.map +1 -1
- package/dist/timebox/timebox-daemon-sync.d.ts +19 -0
- package/dist/timebox/timebox-daemon-sync.d.ts.map +1 -0
- package/dist/timebox/timebox-daemon-sync.js +135 -0
- package/dist/timebox/timebox-daemon-sync.js.map +1 -0
- package/dist/timebox/timebox-discover.d.ts +19 -0
- package/dist/timebox/timebox-discover.d.ts.map +1 -0
- package/dist/timebox/timebox-discover.js +87 -0
- package/dist/timebox/timebox-discover.js.map +1 -0
- package/dist/timebox/timebox-settings.d.ts +32 -0
- package/dist/timebox/timebox-settings.d.ts.map +1 -0
- package/dist/timebox/timebox-settings.js +80 -0
- package/dist/timebox/timebox-settings.js.map +1 -0
- package/dist/timeline-store.d.ts +63 -3
- package/dist/timeline-store.d.ts.map +1 -1
- package/dist/timeline-store.js +292 -14
- package/dist/timeline-store.js.map +1 -1
- package/dist/timeline-summarizer.d.ts.map +1 -1
- package/dist/timeline-summarizer.js +29 -5
- package/dist/timeline-summarizer.js.map +1 -1
- package/dist/tui/ansi.d.ts +0 -4
- package/dist/tui/ansi.d.ts.map +1 -1
- package/dist/tui/ansi.js +14 -7
- package/dist/tui/ansi.js.map +1 -1
- package/dist/tui/dashboard.d.ts +1 -0
- package/dist/tui/dashboard.d.ts.map +1 -1
- package/dist/tui/dashboard.js +24 -7
- package/dist/tui/dashboard.js.map +1 -1
- package/dist/tui/renderer.d.ts +36 -0
- package/dist/tui/renderer.d.ts.map +1 -1
- package/dist/tui/renderer.js +303 -119
- package/dist/tui/renderer.js.map +1 -1
- package/dist/tui/terrarium.d.ts.map +1 -1
- package/dist/tui/terrarium.js +37 -49
- package/dist/tui/terrarium.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/dist/usage-api.d.ts.map +1 -1
- package/dist/usage-api.js +7 -1
- package/dist/usage-api.js.map +1 -1
- package/dist/usage-event.d.ts +10 -3
- package/dist/usage-event.d.ts.map +1 -1
- package/dist/usage-event.js +74 -12
- package/dist/usage-event.js.map +1 -1
- package/dist/utility-proxy.d.ts.map +1 -1
- package/dist/utility-proxy.js +8 -0
- package/dist/utility-proxy.js.map +1 -1
- package/dist/utils/project-name.d.ts +3 -0
- package/dist/utils/project-name.d.ts.map +1 -1
- package/dist/utils/project-name.js +44 -2
- package/dist/utils/project-name.js.map +1 -1
- package/dist/windows-service.d.ts +26 -0
- package/dist/windows-service.d.ts.map +1 -0
- package/dist/windows-service.js +145 -0
- package/dist/windows-service.js.map +1 -0
- package/dist/ws-server.d.ts +22 -1
- package/dist/ws-server.d.ts.map +1 -1
- package/dist/ws-server.js +89 -4
- package/dist/ws-server.js.map +1 -1
- package/fm-helper/AgentDeckFMHelper.swift +112 -0
- package/package.json +9 -3
- package/scripts/build-fm-helper.mjs +26 -0
- package/LICENSE +0 -21
- package/dist/apme/tuner.d.ts +0 -64
- package/dist/apme/tuner.d.ts.map +0 -1
- package/dist/apme/tuner.js +0 -297
- package/dist/apme/tuner.js.map +0 -1
- package/dist/d200h/hid-protocol.d.ts +0 -62
- package/dist/d200h/hid-protocol.d.ts.map +0 -1
- package/dist/d200h/hid-protocol.js +0 -124
- package/dist/d200h/hid-protocol.js.map +0 -1
- package/dist/d200h/image-renderer.d.ts +0 -36
- package/dist/d200h/image-renderer.d.ts.map +0 -1
- package/dist/d200h/image-renderer.js +0 -487
- package/dist/d200h/image-renderer.js.map +0 -1
- package/dist/modules/d200h-module.d.ts +0 -43
- package/dist/modules/d200h-module.d.ts.map +0 -1
- package/dist/modules/d200h-module.js +0 -360
- package/dist/modules/d200h-module.js.map +0 -1
- package/dist/modules/d200h-renderer.d.ts +0 -7
- package/dist/modules/d200h-renderer.d.ts.map +0 -1
- package/dist/modules/d200h-renderer.js +0 -321
- package/dist/modules/d200h-renderer.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-transcript.js","sourceRoot":"","sources":["../../src/apme/antigravity-transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mid-session turn classification glue.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `bridge/src/index.ts` so non-index modules
|
|
5
|
+
* (`apme/adapters/codex-turn-manager.ts`, future agent managers)
|
|
6
|
+
* can call it without forcing a circular import on the bridge entry.
|
|
7
|
+
*
|
|
8
|
+
* The legacy logic was inline in wireAgentApme; this module preserves
|
|
9
|
+
* the same behaviour byte-for-byte.
|
|
10
|
+
*/
|
|
11
|
+
import type { ApmeModule } from './index.js';
|
|
12
|
+
export declare function classifyAndEnqueueTurn(apme: ApmeModule, sid: string): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=classify-turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-turn.d.ts","sourceRoot":"","sources":["../../src/apme/classify-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mid-session turn classification glue.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `bridge/src/index.ts` so non-index modules
|
|
5
|
+
* (`apme/adapters/codex-turn-manager.ts`, future agent managers)
|
|
6
|
+
* can call it without forcing a circular import on the bridge entry.
|
|
7
|
+
*
|
|
8
|
+
* The legacy logic was inline in wireAgentApme; this module preserves
|
|
9
|
+
* the same behaviour byte-for-byte.
|
|
10
|
+
*/
|
|
11
|
+
import { debug } from '../logger.js';
|
|
12
|
+
export async function classifyAndEnqueueTurn(apme, sid) {
|
|
13
|
+
const turnId = apme.collector.getActiveTurnId(sid);
|
|
14
|
+
const runId = apme.collector.getRunId(sid);
|
|
15
|
+
if (!turnId || !runId)
|
|
16
|
+
return;
|
|
17
|
+
const run = apme.store.getRun(runId);
|
|
18
|
+
if (!run)
|
|
19
|
+
return;
|
|
20
|
+
let category = run.taskCategory ?? null;
|
|
21
|
+
if (!category) {
|
|
22
|
+
try {
|
|
23
|
+
const { classifyRun } = await import('./classifier.js');
|
|
24
|
+
const { category: c, signals } = classifyRun(apme.store, run.id);
|
|
25
|
+
if (c && c !== 'unknown') {
|
|
26
|
+
category = c;
|
|
27
|
+
apme.store.updateRun(run.id, {
|
|
28
|
+
taskCategory: c,
|
|
29
|
+
taskSignals: JSON.stringify(signals),
|
|
30
|
+
taskCategorySource: 'rule',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
debug('APME', `mid-session classify failed: ${String(err)}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (category) {
|
|
39
|
+
try {
|
|
40
|
+
apme.store.updateTurn(turnId, { taskCategory: category });
|
|
41
|
+
}
|
|
42
|
+
catch { /* ignore */ }
|
|
43
|
+
}
|
|
44
|
+
const NON_CODE = new Set(['conversation', 'planning', 'research', 'review']);
|
|
45
|
+
if (category && NON_CODE.has(category)) {
|
|
46
|
+
apme.runner.enqueueTurn({ runId: run.id, turnId, category });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=classify-turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-turn.js","sourceRoot":"","sources":["../../src/apme/classify-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAgB,EAChB,GAAW;IAEX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,IAAI,QAAQ,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACxD,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzB,QAAQ,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE;oBAC3B,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBACpC,kBAAkB,EAAE,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,EAAE,gCAAgC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,CAAC;QAClE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -35,4 +35,14 @@ export interface LastTurnExcerpt {
|
|
|
35
35
|
* string (legacy shape) or an array of blocks with `type: 'text' | 'tool_use'`.
|
|
36
36
|
*/
|
|
37
37
|
export declare function readLastTurn(transcriptPath: string): LastTurnExcerpt | null;
|
|
38
|
+
/**
|
|
39
|
+
* Extract the model id from a Claude Code transcript JSONL — the last
|
|
40
|
+
* assistant record's `message.model`. Returns `null` when unavailable.
|
|
41
|
+
*
|
|
42
|
+
* Why this exists: direct `claude` runs reach the daemon only via hook POSTs,
|
|
43
|
+
* which never carry the model. Without this, every such run persisted
|
|
44
|
+
* `model_id=NULL` (the bulk of the "unknown" rows in the APME scorecard). The
|
|
45
|
+
* transcript is the authoritative source Claude writes. Never throws.
|
|
46
|
+
*/
|
|
47
|
+
export declare function readModelFromTranscript(transcriptPath: string): string | null;
|
|
38
48
|
//# sourceMappingURL=claude-transcript-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-transcript-reader.d.ts","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAsD3E"}
|
|
1
|
+
{"version":3,"file":"claude-transcript-reader.d.ts","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAsD3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB7E"}
|
|
@@ -88,6 +88,41 @@ export function readLastTurn(transcriptPath) {
|
|
|
88
88
|
hasAssistantText: assistantText.trim().length > 0,
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Extract the model id from a Claude Code transcript JSONL — the last
|
|
93
|
+
* assistant record's `message.model`. Returns `null` when unavailable.
|
|
94
|
+
*
|
|
95
|
+
* Why this exists: direct `claude` runs reach the daemon only via hook POSTs,
|
|
96
|
+
* which never carry the model. Without this, every such run persisted
|
|
97
|
+
* `model_id=NULL` (the bulk of the "unknown" rows in the APME scorecard). The
|
|
98
|
+
* transcript is the authoritative source Claude writes. Never throws.
|
|
99
|
+
*/
|
|
100
|
+
export function readModelFromTranscript(transcriptPath) {
|
|
101
|
+
let raw;
|
|
102
|
+
try {
|
|
103
|
+
raw = readFileSync(transcriptPath, 'utf-8');
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const MAX_TAIL = 512 * 1024;
|
|
109
|
+
const tail = raw.length > MAX_TAIL ? raw.slice(raw.length - MAX_TAIL) : raw;
|
|
110
|
+
const lines = tail.split('\n');
|
|
111
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
112
|
+
const line = lines[i];
|
|
113
|
+
if (!line.trim())
|
|
114
|
+
continue;
|
|
115
|
+
try {
|
|
116
|
+
const rec = JSON.parse(line);
|
|
117
|
+
const model = rec?.message?.model;
|
|
118
|
+
if (rec?.message?.role === 'assistant' && typeof model === 'string' && model) {
|
|
119
|
+
return model;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch { /* skip malformed line */ }
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
91
126
|
function contentToString(content) {
|
|
92
127
|
if (typeof content === 'string')
|
|
93
128
|
return content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-transcript-reader.js","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-transcript-reader.js","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAkBrC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,cAAsB;IACjD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,MAAM,EAAE,2BAA2B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,yEAAyE;IACzE,+CAA+C;IAC/C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,0DAA0D;IAC1D,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC;QACvC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAAC,WAAW,GAAG,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAClD,CAAC;IACD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3E,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC;QACvC,IAAI,IAAI,KAAK,WAAW;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,CAAC;QACD,YAAY,IAAI,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACtC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;QAC7C,YAAY;QACZ,gBAAgB,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAAsB;IAC5D,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoD,CAAC;YAChF,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;YAClC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7E,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,CAAC,GAAG,KAA4D,CAAC;QACvE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,CAAC,GAAG,KAAyC,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,QAAQ,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC"}
|
package/dist/apme/collector.d.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import type { UsageSnapshot } from '../types.js';
|
|
15
15
|
import type { SessionEntry } from '../session-registry.js';
|
|
16
16
|
import type { ApmeStore } from './store.js';
|
|
17
|
-
import type { AgentType, TelemetrySpan } from '@agentdeck/shared';
|
|
17
|
+
import type { AgentType, TelemetrySpan, ApmeSampleEventRow } from '@agentdeck/shared';
|
|
18
18
|
import type { ApmeHwSampler } from './hw-sampler.js';
|
|
19
19
|
export interface OpenRunInput {
|
|
20
20
|
sessionId: string;
|
|
@@ -24,41 +24,144 @@ export interface OpenRunInput {
|
|
|
24
24
|
projectPath?: string;
|
|
25
25
|
taskPrompt?: string;
|
|
26
26
|
}
|
|
27
|
-
export type TaskBoundarySignal = 'todo_complete' | 'clear' | 'session_end' | 'manual';
|
|
27
|
+
export type TaskBoundarySignal = 'todo_complete' | 'clear' | 'session_end' | 'manual' | 'idle_gap';
|
|
28
28
|
/** Callback fired after a task is closed in DB. Used to enqueue task-level eval
|
|
29
29
|
* without creating a direct dependency from collector → runner. */
|
|
30
30
|
export type OnTaskClosed = (args: {
|
|
31
31
|
taskId: string;
|
|
32
32
|
runId: string;
|
|
33
|
+
sessionId: string;
|
|
34
|
+
agentType: AgentType | null;
|
|
35
|
+
projectName: string | null;
|
|
36
|
+
startedAt: number;
|
|
37
|
+
endedAt: number;
|
|
33
38
|
boundarySignal: TaskBoundarySignal;
|
|
34
39
|
taskCategory: string | null;
|
|
40
|
+
/** True when this task's `task_start` row reached the timeline. The timeline
|
|
41
|
+
* emitter gates the `task_end` row on this so an unpromoted single-turn task
|
|
42
|
+
* never leaves an orphan end row; the eval enqueue runs regardless. */
|
|
43
|
+
timelineEmitted: boolean;
|
|
44
|
+
}) => void;
|
|
45
|
+
/** Fired after a typed trajectory event is appended to a sample. The timeline
|
|
46
|
+
* projection (Phase 3) wires this to emit a single TimelineEntry per event —
|
|
47
|
+
* making the timeline a projection of the sample rather than a parallel
|
|
48
|
+
* emitter. `event` carries the assembled sample-event facts. */
|
|
49
|
+
export type OnSampleEvent = (args: {
|
|
50
|
+
taskId: string;
|
|
51
|
+
runId: string;
|
|
52
|
+
sessionId: string;
|
|
53
|
+
agentType: AgentType | null;
|
|
54
|
+
projectName: string | null;
|
|
55
|
+
event: ApmeSampleEventRow;
|
|
56
|
+
}) => void;
|
|
57
|
+
/** Callback fired after a task is opened. Used by the timeline emitter to
|
|
58
|
+
* insert a `task_start` row so the dashboard sees task hierarchy. */
|
|
59
|
+
export type OnTaskOpened = (args: {
|
|
60
|
+
taskId: string;
|
|
61
|
+
runId: string;
|
|
62
|
+
sessionId: string;
|
|
63
|
+
agentType: AgentType | null;
|
|
64
|
+
projectName: string | null;
|
|
65
|
+
taskIndex: number;
|
|
66
|
+
startedAt: number;
|
|
67
|
+
}) => void;
|
|
68
|
+
/** Callback fired when the agent declares its todos done mid-task (the
|
|
69
|
+
* TodoWrite-all-completed soft hint). Non-segmenting — the task stays open —
|
|
70
|
+
* but the timeline emitter surfaces it as a `task_milestone` row so long
|
|
71
|
+
* sessions show WHERE work units completed without waiting for `/clear` or
|
|
72
|
+
* `session_end`. */
|
|
73
|
+
export type OnTaskMilestone = (args: {
|
|
74
|
+
taskId: string;
|
|
75
|
+
runId: string;
|
|
76
|
+
sessionId: string;
|
|
77
|
+
agentType: AgentType | null;
|
|
78
|
+
projectName: string | null;
|
|
79
|
+
turnIndex: number;
|
|
80
|
+
todoCount: number | null;
|
|
81
|
+
at: number;
|
|
35
82
|
}) => void;
|
|
36
83
|
export declare class ApmeCollector {
|
|
37
84
|
private readonly store;
|
|
38
85
|
private readonly hwSampler?;
|
|
39
86
|
private readonly sessionToRun;
|
|
87
|
+
private readonly sessionToAgentType;
|
|
40
88
|
private readonly sessionToTurn;
|
|
41
89
|
private readonly sessionToLastTurnId;
|
|
42
90
|
private readonly sessionToTask;
|
|
43
91
|
private readonly runTaskCount;
|
|
92
|
+
private readonly sessionToUsage;
|
|
44
93
|
/** Optional listener fired after `closeTask` persists the row. The runner
|
|
45
94
|
* wires this to enqueue a task-level judge call. */
|
|
46
95
|
onTaskClosed: OnTaskClosed | null;
|
|
96
|
+
/** Optional listener fired after `openTaskIfNone` inserts a fresh task row.
|
|
97
|
+
* The dashboard timeline emitter wires this to push a `task_start` entry. */
|
|
98
|
+
onTaskOpened: OnTaskOpened | null;
|
|
99
|
+
/** Optional listener fired after a typed trajectory event is persisted.
|
|
100
|
+
* The timeline projection (Phase 3) consumes this. */
|
|
101
|
+
onSampleEvent: OnSampleEvent | null;
|
|
102
|
+
/** Optional listener fired on the TodoWrite-all-completed soft hint.
|
|
103
|
+
* The timeline emitter wires this to push a `task_milestone` row. */
|
|
104
|
+
onTaskMilestone: OnTaskMilestone | null;
|
|
105
|
+
/** Last milestone key (`taskId:turnIndex`) per session — a turn can carry
|
|
106
|
+
* several all-completed TodoWrite calls; surface only the first. */
|
|
107
|
+
private readonly sessionToLastMilestone;
|
|
47
108
|
constructor(store: ApmeStore, hwSampler?: ApmeHwSampler | undefined);
|
|
48
109
|
/** Start a new run and return its id. Safe to call if store disabled (returns ''). */
|
|
49
110
|
openRun(input: OpenRunInput): string;
|
|
50
|
-
/** Record a hook event as a step + manage turn lifecycle.
|
|
51
|
-
|
|
111
|
+
/** Record a hook event as a step + manage turn lifecycle.
|
|
112
|
+
*
|
|
113
|
+
* `event` is normalized up-front so callers may pass EITHER the PascalCase
|
|
114
|
+
* hook name (`UserPromptSubmit`, managed session bridge + span ingest) OR
|
|
115
|
+
* the snake_case name the daemon's `/hooks/` handler maps to
|
|
116
|
+
* (`user_prompt_submit`, `tool_start`, `tool_end`). Before this, snake_case
|
|
117
|
+
* silently fell through every branch — the daemon's direct-`claude` hooks
|
|
118
|
+
* never opened a turn, so those sessions produced no tasks and the device
|
|
119
|
+
* timeline showed every prompt as a bare top-level chat. Making the matcher
|
|
120
|
+
* case-tolerant means no caller can quietly no-op the segmentation. */
|
|
121
|
+
ingestHook(sessionId: string, rawEvent: string, data: Record<string, unknown>): void;
|
|
122
|
+
/** Public wrapper for the private `closeTurn`. Used by adapters that
|
|
123
|
+
* see an explicit turn-end signal (Codex `codex_stop` hook) and want
|
|
124
|
+
* to finalize the turn row immediately rather than wait for the next
|
|
125
|
+
* UserPromptSubmit / closeRun to flush endedAt + buffered counters.
|
|
126
|
+
* Idempotent — no-op when no active turn for the session. */
|
|
127
|
+
closeTurnForSession(sessionId: string): void;
|
|
52
128
|
/** Close the current turn for a session (called on new prompt or session end). */
|
|
53
129
|
private closeTurn;
|
|
54
130
|
/** Get the current active turn ID for a session (if any). */
|
|
55
131
|
getActiveTurnId(sessionId: string): string | null;
|
|
56
132
|
/** Get the current active task ID for a session (if any). Exposed for tests. */
|
|
57
133
|
getActiveTaskId(sessionId: string): string | null;
|
|
134
|
+
/** Fire the `onTaskMilestone` listener for a TodoWrite-all-completed hint,
|
|
135
|
+
* at most once per (task, turn) — the agent may rewrite an all-completed
|
|
136
|
+
* todo list several times inside one turn. */
|
|
137
|
+
private fireTaskMilestone;
|
|
58
138
|
/** Open a new task if none is active for this session. Returns the active
|
|
59
139
|
* task (new or existing), or null if no run is open. Idempotent: repeat
|
|
60
|
-
* calls while a task is already active are no-ops.
|
|
140
|
+
* calls while a task is already active are no-ops.
|
|
141
|
+
*
|
|
142
|
+
* The `task_start` timeline row is NOT emitted here — it is deferred to
|
|
143
|
+
* `emitDeferredTaskStartIfNeeded`, fired when a "real task" signal lands
|
|
144
|
+
* (a second turn on the same task, or a TodoWrite plan). Short single-turn
|
|
145
|
+
* conversations therefore never produce a TASK header on the dashboard,
|
|
146
|
+
* keeping the timeline focused on the turn rows worth evaluating. The DB
|
|
147
|
+
* `tasks` row is inserted immediately so eval/analytics see every unit.
|
|
148
|
+
* Mirrors ApmeCollector.swift `openTaskIfNone` + `emitDeferredTaskStartIfNeeded`. */
|
|
61
149
|
private openTaskIfNone;
|
|
150
|
+
/** Emit the deferred `task_start` timeline row for the session's active task,
|
|
151
|
+
* once. Idempotent — repeat calls after the first are no-ops. Uses the
|
|
152
|
+
* task's original `startedAt` as the row ts so the TASK header anchors above
|
|
153
|
+
* the first turn it groups instead of jumping in mid-conversation. Called
|
|
154
|
+
* when a task proves itself "real" (second turn, or TodoWrite plan).
|
|
155
|
+
* Mirrors ApmeCollector.swift `emitDeferredTaskStartIfNeeded`. */
|
|
156
|
+
private emitDeferredTaskStartIfNeeded;
|
|
157
|
+
/** Public wrapper for closeTask. Used by the manual-boundary CLI /
|
|
158
|
+
* HTTP route + the macOS detail-pane button — lets the user declare
|
|
159
|
+
* "this task is done" without `/clear` (which would also split the
|
|
160
|
+
* run). No-op when no task is active. Passing `outcome` overrides the
|
|
161
|
+
* judge's coarse score-derived class — handy for `task cancel` where
|
|
162
|
+
* the user wants the row tagged "abandoned" regardless of partial
|
|
163
|
+
* progress. */
|
|
164
|
+
closeTaskExternal(sessionId: string, boundarySignal?: TaskBoundarySignal, outcome?: 'success' | 'fail' | 'partial' | 'abandoned'): boolean;
|
|
62
165
|
/** Close the current task for a session, persisting boundary metadata.
|
|
63
166
|
* No-op if no task is active. Fires `onTaskClosed` so the runner can
|
|
64
167
|
* enqueue a task-level judge call. Tasks that never saw a turn
|
|
@@ -66,6 +169,23 @@ export declare class ApmeCollector {
|
|
|
66
169
|
private closeTask;
|
|
67
170
|
/** Get the current run ID for a session (if any). */
|
|
68
171
|
getRunId(sessionId: string): string | null;
|
|
172
|
+
/** Agent type established for a session at `openRun` (survives closeRun so a
|
|
173
|
+
* late-attributed timeline row still resolves its brand). This is the single
|
|
174
|
+
* authoritative agentType source the timeline attributor backfills from, so
|
|
175
|
+
* every timeline entry ships with an agentType regardless of which emitter
|
|
176
|
+
* produced it (observed hook `chat_start`, relayed managed `tool_exec`, …). */
|
|
177
|
+
getRunAgentType(sessionId: string): AgentType | null;
|
|
178
|
+
/** Resolve the (taskId, runId, turnIndex) a sample event should attach to.
|
|
179
|
+
* Prefers the active task/turn; falls back to a turn row in the DB when the
|
|
180
|
+
* task already closed (e.g. PTY response captured after session_end). */
|
|
181
|
+
private sampleCtxForTurn;
|
|
182
|
+
/** Append one typed trajectory event to the active sample. Storage-time dedup
|
|
183
|
+
* is handled by the UNIQUE (task_id, dedup_key) index. Fires `onSampleEvent`
|
|
184
|
+
* only when a row was actually inserted (not a dup), so the timeline
|
|
185
|
+
* projection never double-emits. */
|
|
186
|
+
private appendSampleEvent;
|
|
187
|
+
/** Reverse-lookup sessionId for a runId (best-effort; only the live map). */
|
|
188
|
+
private runToSessionId;
|
|
69
189
|
/** Store Claude's response text on the current turn.
|
|
70
190
|
* Falls back to the last closed turn if closeTurn() already ran (race with session exit).
|
|
71
191
|
* Tags turns.efficiency_json.response_kind so the runner can skip tool-only / empty
|
|
@@ -85,7 +205,10 @@ export declare class ApmeCollector {
|
|
|
85
205
|
ingestSpan(sessionId: string, span: TelemetrySpan): void;
|
|
86
206
|
/** Ingest a generic timeline-style event (non-hook). */
|
|
87
207
|
ingestStep(sessionId: string, kind: string, payload: Record<string, unknown>, toolName?: string): void;
|
|
88
|
-
/** Update token / cost columns from the bridge's UsageTracker snapshot.
|
|
208
|
+
/** Update token / cost columns from the bridge's UsageTracker snapshot.
|
|
209
|
+
* Snapshots carry CUMULATIVE session totals, so we emit a priced ModelEvent
|
|
210
|
+
* for the delta and attribute it to the active task (the SessionSample cost
|
|
211
|
+
* is the sum of its ModelEvents). */
|
|
89
212
|
updateUsage(sessionId: string, snapshot: UsageSnapshot): void;
|
|
90
213
|
/** Split the current run — closes the active run and opens a fresh one.
|
|
91
214
|
* Triggered on `/clear` or other context-reset events so each logical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/apme/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/apme/collector.ts"],"names":[],"mappings":"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"}
|