@pennyfarthing/core 11.1.1 → 11.2.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.
Files changed (160) hide show
  1. package/README.md +8 -8
  2. package/package.json +1 -1
  3. package/packages/core/dist/server/otlp-receiver.d.ts +16 -11
  4. package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
  5. package/packages/core/dist/server/otlp-receiver.js +185 -24
  6. package/packages/core/dist/server/otlp-receiver.js.map +1 -1
  7. package/packages/core/dist/server/otlp-receiver.test.d.ts +21 -0
  8. package/packages/core/dist/server/otlp-receiver.test.d.ts.map +1 -0
  9. package/packages/core/dist/server/otlp-receiver.test.js +446 -0
  10. package/packages/core/dist/server/otlp-receiver.test.js.map +1 -0
  11. package/packages/core/dist/shared/portrait-resolver.d.ts +9 -0
  12. package/packages/core/dist/shared/portrait-resolver.d.ts.map +1 -1
  13. package/packages/core/dist/shared/portrait-resolver.js +27 -0
  14. package/packages/core/dist/shared/portrait-resolver.js.map +1 -1
  15. package/packages/core/dist/shared/portrait-resolver.test.js +47 -1
  16. package/packages/core/dist/shared/portrait-resolver.test.js.map +1 -1
  17. package/packages/core/dist/shared/tandem-portrait-inventory.test.d.ts +13 -0
  18. package/packages/core/dist/shared/tandem-portrait-inventory.test.d.ts.map +1 -0
  19. package/packages/core/dist/shared/tandem-portrait-inventory.test.js +126 -0
  20. package/packages/core/dist/shared/tandem-portrait-inventory.test.js.map +1 -0
  21. package/pennyfarthing-dist/agents/dev.md +1 -1
  22. package/pennyfarthing-dist/agents/reviewer.md +1 -1
  23. package/pennyfarthing-dist/agents/sm-setup.md +1 -1
  24. package/pennyfarthing-dist/agents/sm.md +2 -2
  25. package/pennyfarthing-dist/agents/tea.md +1 -1
  26. package/pennyfarthing-dist/agents/testing-runner.md +2 -1
  27. package/pennyfarthing-dist/commands/pf-chore.md +2 -2
  28. package/pennyfarthing-dist/commands/pf-standalone.md +7 -2
  29. package/pennyfarthing-dist/guides/agent-behavior.md +1 -1
  30. package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +1 -1
  31. package/pennyfarthing-dist/guides/bikerack.md +3 -3
  32. package/pennyfarthing-dist/guides/hooks.md +1 -1
  33. package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
  34. package/pennyfarthing-dist/guides/xml-tags.md +2 -2
  35. package/pennyfarthing-dist/scripts/README.md +1 -1
  36. package/pennyfarthing-dist/scripts/core/check-context.sh +1 -1
  37. package/pennyfarthing-dist/scripts/git/README.md +24 -14
  38. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +5 -266
  39. package/pennyfarthing-dist/scripts/git/git-status-all.sh +5 -151
  40. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +6 -144
  41. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +5 -496
  42. package/pennyfarthing-dist/scripts/hooks/README.md +1 -1
  43. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +1 -1
  44. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +9 -11
  45. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +1 -1
  46. package/pennyfarthing-dist/scripts/portraits/generate-tandem-portraits.sh +76 -0
  47. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +4 -221
  48. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +5 -13
  49. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +4 -123
  50. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +4 -33
  51. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +4 -156
  52. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +4 -131
  53. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +4 -249
  54. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +4 -160
  55. package/pennyfarthing-dist/skills/pf-bc/usage.md +1 -1
  56. package/pennyfarthing-dist/skills/pf-jira/examples.md +5 -2
  57. package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -16
  58. package/pennyfarthing-dist/skills/pf-workflow/skill.md +9 -12
  59. package/pennyfarthing-dist/skills/pf-workflow/usage.md +33 -8
  60. package/pennyfarthing-dist/workflows/bdd-tandem.yaml +18 -6
  61. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
  62. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
  63. package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
  64. package/pennyfarthing-dist/workflows/review-tandem.yaml +65 -0
  65. package/pennyfarthing-dist/workflows/tdd-tandem.yaml +16 -8
  66. package/pennyfarthing_scripts/CLAUDE.md +26 -4
  67. package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
  68. package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
  69. package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
  70. package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
  71. package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
  72. package/pennyfarthing_scripts/bc/cli.py +3 -5
  73. package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
  74. package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
  75. package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
  76. package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
  77. package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  78. package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  79. package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  80. package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
  81. package/pennyfarthing_scripts/bikerack/__pycache__/portrait.cpython-314.pyc +0 -0
  82. package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  83. package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  84. package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  85. package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  86. package/pennyfarthing_scripts/bikerack/background_panel.py +86 -5
  87. package/pennyfarthing_scripts/bikerack/base_panel.py +62 -0
  88. package/pennyfarthing_scripts/bikerack/changed_panel.py +32 -28
  89. package/pennyfarthing_scripts/bikerack/debug_panel.py +31 -1
  90. package/pennyfarthing_scripts/bikerack/diffs_panel.py +74 -17
  91. package/pennyfarthing_scripts/bikerack/git_panel.py +103 -33
  92. package/pennyfarthing_scripts/bikerack/launcher.py +15 -15
  93. package/pennyfarthing_scripts/bikerack/progress_panel.py +315 -0
  94. package/pennyfarthing_scripts/bikerack/sprint_panel.py +158 -26
  95. package/pennyfarthing_scripts/bikerack/tui.py +336 -30
  96. package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
  97. package/pennyfarthing_scripts/cli.py +37 -65
  98. package/pennyfarthing_scripts/consultation/__init__.py +1 -0
  99. package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
  100. package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
  101. package/pennyfarthing_scripts/consultation/cli.py +149 -0
  102. package/pennyfarthing_scripts/consultation/dialogue_manager.py +417 -0
  103. package/pennyfarthing_scripts/context.py +3 -3
  104. package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-314.pyc +0 -0
  105. package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-314.pyc +0 -0
  106. package/pennyfarthing_scripts/git/__init__.py +12 -1
  107. package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
  108. package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  109. package/pennyfarthing_scripts/git/__pycache__/hooks_installer.cpython-314.pyc +0 -0
  110. package/pennyfarthing_scripts/git/__pycache__/repos.cpython-314.pyc +0 -0
  111. package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
  112. package/pennyfarthing_scripts/git/__pycache__/worktree.cpython-314.pyc +0 -0
  113. package/pennyfarthing_scripts/git/create_branches.py +3 -4
  114. package/pennyfarthing_scripts/git/hooks_installer.py +152 -0
  115. package/pennyfarthing_scripts/git/repos.py +196 -0
  116. package/pennyfarthing_scripts/git/status_all.py +27 -11
  117. package/pennyfarthing_scripts/git/worktree.py +302 -0
  118. package/pennyfarthing_scripts/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
  119. package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
  120. package/pennyfarthing_scripts/git_group/cli.py +143 -40
  121. package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
  122. package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
  123. package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
  124. package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
  125. package/pennyfarthing_scripts/handoff/complete_phase.py +12 -0
  126. package/pennyfarthing_scripts/handoff/resolve_gate.py +5 -14
  127. package/pennyfarthing_scripts/hooks.py +3 -17
  128. package/pennyfarthing_scripts/pretooluse_hook.py +1 -1
  129. package/pennyfarthing_scripts/prime/__pycache__/heatmap.cpython-314.pyc +0 -0
  130. package/pennyfarthing_scripts/prime/heatmap.py +655 -0
  131. package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-314.pyc +0 -0
  132. package/pennyfarthing_scripts/session/__pycache__/cli.cpython-314.pyc +0 -0
  133. package/pennyfarthing_scripts/session_start_hook.py +1 -1
  134. package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  135. package/pennyfarthing_scripts/sprint/loader.py +15 -1
  136. package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  137. package/pennyfarthing_scripts/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
  138. package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  139. package/pennyfarthing_scripts/tests/test_bikerack.py +51 -51
  140. package/pennyfarthing_scripts/tests/test_dialogue_manager.py +811 -0
  141. package/pennyfarthing_scripts/tests/test_handoff_cli.py +16 -11
  142. package/pennyfarthing_scripts/tests/test_workflow_check.py +2 -3
  143. package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
  144. package/pennyfarthing_scripts/validate/adapters/tandem_awareness.py +254 -0
  145. package/pennyfarthing_scripts/validate/cli.py +17 -5
  146. package/pennyfarthing_scripts/workflow/__init__.py +40 -0
  147. package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
  148. package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
  149. package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  150. package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
  151. package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
  152. package/pennyfarthing_scripts/workflow/cli.py +1099 -0
  153. package/pennyfarthing_scripts/workflow/helpers.py +241 -0
  154. package/pennyfarthing_scripts/{workflow.py → workflow/scale.py} +0 -104
  155. package/pennyfarthing_scripts/workflow/state.py +112 -0
  156. package/pennyfarthing-dist/skills/pf-workflow/scripts/list-workflows.sh +0 -91
  157. package/pennyfarthing-dist/skills/pf-workflow/scripts/resume-workflow.sh +0 -163
  158. package/pennyfarthing-dist/skills/pf-workflow/scripts/show-workflow.sh +0 -138
  159. package/pennyfarthing-dist/skills/pf-workflow/scripts/start-workflow.sh +0 -273
  160. package/pennyfarthing-dist/skills/pf-workflow/scripts/workflow-status.sh +0 -167
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Pennyfarthing
2
2
 
3
- **v11.1.1** | *The outer loop goes once, the inner loop goes many times.*
3
+ **v11.2.0** | *The outer loop goes once, the inner loop goes many times.*
4
4
 
5
5
  <img src="pennyfarthing.png" alt="Pennyfarthing Logo" width="75" style="float:left; margin:10px">
6
6
 
@@ -15,8 +15,8 @@ A Claude Code agent orchestration framework built around three pillars: a flexib
15
15
  A multi-agent system with customizable BikeLane workflows for structured software development:
16
16
 
17
17
  - **11 Coordinated Agents** - SM, TEA, Dev, Reviewer, Architect, PM, Tech Writer, UX Designer, DevOps, Orchestrator, BA
18
- - **11 BikeLane Workflows** - Phased (TDD, BDD, Trivial, 2pTDD, TDD-Tandem, BDD-Tandem, Patch, Agent-Docs), Stepped (Architecture, Release, Git Cleanup)
19
- - **51 Slash Commands** - Entry points for agent activation and workflows
18
+ - **12 BikeLane Workflows** - Phased (TDD, BDD, Trivial, 2pTDD, TDD-Tandem, BDD-Tandem, Review-Tandem, Patch, Agent-Docs), Stepped (Architecture, Release, Git Cleanup)
19
+ - **60 Slash Commands** - Entry points for agent activation and workflows
20
20
  - **22 Skills** - Reusable knowledge domains (testing, code-review, jira, mermaid, etc.)
21
21
  - **Prime Context System** - Tiered context injection assembles agent definition, persona, session state, and sidecar memory
22
22
  - **Automatic Handoffs** - Context-aware agent transitions via subagent delegation
@@ -254,18 +254,18 @@ See [Benchmarking Documentation](docs/BENCHMARKING.md) for methodology.
254
254
  | [Brownfield Tools](pennyfarthing-dist/guides/brownfield-tools.md) | Codebase analysis CLI tools |
255
255
  | [Benchmarks](packages/benchmark/docs/benchmarks-guide.md) | Persona evaluation system |
256
256
 
257
- ## Available Themes (98)
257
+ ## Available Themes (100)
258
258
 
259
- Core includes 27 themes. Optional theme packs add 71 more across 7 packages:
259
+ Core includes 29 themes. Optional theme packs add 71 more across 7 packages:
260
260
 
261
261
  | Package | Themes | Examples |
262
262
  |---------|--------|----------|
263
- | `@pennyfarthing/core` (included) | 27 | `the-expanse`, `star-trek-tng`, `breaking-bad`, `discworld`, `fifth-element` |
263
+ | `@pennyfarthing/core` (included) | 29 | `the-expanse`, `star-trek-tng`, `breaking-bad`, `discworld`, `fifth-element` |
264
264
  | `@pennyfarthing/themes-prestige-tv` | 17 | `succession`, `the-wire`, `mad-men`, `fargo`, `the-sopranos` |
265
265
  | `@pennyfarthing/themes-literary` | 15 | `shakespeare`, `jane-austen`, `sherlock-holmes`, `1984`, `great-gatsby` |
266
266
  | `@pennyfarthing/themes-realistic` | 14 | `ancient-philosophers`, `jazz-legends`, `film-auteurs`, `software-pioneers` |
267
- | `@pennyfarthing/themes-comedy` | 9 | `the-office`, `parks-and-rec`, `ted-lasso`, `monty-python`, `futurama` |
268
- | `@pennyfarthing/themes-scifi` | 8 | `foundation`, `snow-crash`, `neuromancer`, `babylon-5` |
267
+ | `@pennyfarthing/themes-comedy` | 8 | `the-office`, `parks-and-rec`, `ted-lasso`, `monty-python`, `futurama` |
268
+ | `@pennyfarthing/themes-scifi` | 9 | `foundation`, `snow-crash`, `neuromancer`, `babylon-5` |
269
269
  | `@pennyfarthing/themes-mythology-fantasy` | 4 | `greek-mythology`, `norse-mythology`, `his-dark-materials`, `the-witcher` |
270
270
  | `@pennyfarthing/themes-superheroes` | 4 | `marvel-mcu`, `avatar-the-last-airbender`, `legion-of-doom` |
271
271
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pennyfarthing/core",
3
- "version": "11.1.1",
3
+ "version": "11.2.0",
4
4
  "description": "Claude Code agent framework with TDD workflow and persona system",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,10 +1,11 @@
1
1
  /**
2
- * OTLP receiver stub for server module.
3
- * Provides functions/types used by API routes without cyclist OTLP dependency.
2
+ * OTLP receiver for server module.
3
+ * Provides real OTLP processing for standalone mode (BikeRack/WheelHub)
4
+ * without requiring Cyclist's provider.
4
5
  *
5
6
  * Supports a provider pattern: call setOTLPProvider() with the real implementation
6
7
  * (e.g. from cyclist's otlp-receiver) to wire live data through the API routes.
7
- * Without a provider, all functions return safe empty defaults.
8
+ * Without a provider, functions use in-memory stores for standalone operation.
8
9
  */
9
10
  export interface TokenStats {
10
11
  inputTokens: number;
@@ -73,15 +74,19 @@ export declare function getAuditLogStats(): Record<string, unknown>;
73
74
  export declare function exportAuditLogAsJSON(toolType?: string): string;
74
75
  export declare function exportAuditLogAsCSV(toolType?: string): string;
75
76
  export declare function resetEventStore(): void;
76
- export declare function getBackgroundTaskByToolId(_toolId: string): BackgroundTask | undefined;
77
- export declare function trackBackgroundTask(_task: Partial<BackgroundTask>): void;
78
- export declare function completeBackgroundTask(_taskId: string, _success: boolean, _result?: string, _error?: string): BackgroundTask | undefined;
79
- export declare function addToolEventListener(_callback: (event: ToolEvent) => void): void;
77
+ export declare function parseOTLPMetrics(body: unknown): Record<string, number>;
78
+ export declare function aggregateTokenStats(data: unknown): TokenStats;
79
+ export declare function parseOTLPLogs(body: unknown): Array<{
80
+ name: string;
81
+ timestamp: number;
82
+ attributes: Record<string, unknown>;
83
+ }>;
84
+ export declare function processLogEvents(events: unknown): void;
85
+ export declare function trackBackgroundTask(task: Partial<BackgroundTask>): void;
86
+ export declare function getBackgroundTaskByToolId(toolId: string): BackgroundTask | undefined;
87
+ export declare function completeBackgroundTask(taskId: string, success: boolean, result?: string, error?: string): BackgroundTask | undefined;
88
+ export declare function addToolEventListener(callback: (event: ToolEvent) => void): void;
80
89
  export declare function getUserEmail(): string | null;
81
90
  export declare function isOtelDebugEnabled(): boolean;
82
91
  export declare function clearAuditLog(): void;
83
- export declare function parseOTLPMetrics(_body: unknown): unknown;
84
- export declare function aggregateTokenStats(_data: unknown): TokenStats;
85
- export declare function parseOTLPLogs(_body: unknown): unknown;
86
- export declare function processLogEvents(_events: unknown): void;
87
92
  //# sourceMappingURL=otlp-receiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otlp-receiver.d.ts","sourceRoot":"","sources":["../../src/server/otlp-receiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otlp-receiver.d.ts","sourceRoot":"","sources":["../../src/server/otlp-receiver.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,71 @@
1
1
  /**
2
- * OTLP receiver stub for server module.
3
- * Provides functions/types used by API routes without cyclist OTLP dependency.
2
+ * OTLP receiver for server module.
3
+ * Provides real OTLP processing for standalone mode (BikeRack/WheelHub)
4
+ * without requiring Cyclist's provider.
4
5
  *
5
6
  * Supports a provider pattern: call setOTLPProvider() with the real implementation
6
7
  * (e.g. from cyclist's otlp-receiver) to wire live data through the API routes.
7
- * Without a provider, all functions return safe empty defaults.
8
+ * Without a provider, functions use in-memory stores for standalone operation.
8
9
  */
9
10
  let _provider = null;
10
11
  export function setOTLPProvider(provider) {
11
12
  _provider = provider;
12
13
  }
13
14
  // =============================================================================
14
- // Delegating stubsroute through provider when set, empty defaults otherwise
15
+ // In-memory storesstandalone mode (used when no provider is set)
16
+ // =============================================================================
17
+ const _emptyStats = () => ({
18
+ inputTokens: 0, outputTokens: 0, cacheCreationTokens: 0, cacheReadTokens: 0, totalCost: 0,
19
+ });
20
+ let _tokenStats = _emptyStats();
21
+ let _tokenStatsListeners = [];
22
+ let _backgroundTasks = [];
23
+ let _backgroundTaskStartCb = null;
24
+ let _backgroundTaskCompleteCb = null;
25
+ let _auditLog = [];
26
+ let _toolEventListeners = [];
27
+ let _userEmail = null;
28
+ // =============================================================================
29
+ // Delegating stubs — route through provider when set, local stores otherwise
15
30
  // =============================================================================
16
31
  export function getTokenStats() {
17
32
  if (_provider)
18
33
  return _provider.getTokenStats();
19
- return { inputTokens: 0, outputTokens: 0, cacheCreationTokens: 0, cacheReadTokens: 0, totalCost: 0 };
34
+ return { ..._tokenStats };
20
35
  }
21
36
  export function addTokenStatsListener(callback) {
22
37
  if (_provider)
23
38
  return _provider.addTokenStatsListener(callback);
39
+ _tokenStatsListeners.push(callback);
24
40
  }
25
41
  export function getBackgroundTasks() {
26
42
  if (_provider)
27
43
  return _provider.getBackgroundTasks();
28
- return [];
44
+ return [..._backgroundTasks];
29
45
  }
30
46
  export function setBackgroundTaskStartCallback(callback) {
31
47
  if (_provider)
32
48
  return _provider.setBackgroundTaskStartCallback(callback);
49
+ _backgroundTaskStartCb = callback;
33
50
  }
34
51
  export function setBackgroundTaskCallback(callback) {
35
52
  if (_provider)
36
53
  return _provider.setBackgroundTaskCallback(callback);
54
+ _backgroundTaskCompleteCb = callback;
37
55
  }
38
56
  export function processOTLPLogs(body) {
39
57
  if (_provider)
40
58
  return _provider.processOTLPLogs(body);
59
+ const events = parseOTLPLogs(body);
60
+ if (Array.isArray(events))
61
+ processLogEvents(events);
41
62
  }
42
63
  export function processOTLPMetrics(body) {
43
64
  if (_provider)
44
65
  return _provider.processOTLPMetrics(body);
66
+ const parsed = parseOTLPMetrics(body);
67
+ if (parsed && typeof parsed === 'object')
68
+ aggregateTokenStats(parsed);
45
69
  }
46
70
  export function processOTLPTraces(body) {
47
71
  if (_provider)
@@ -50,7 +74,7 @@ export function processOTLPTraces(body) {
50
74
  export function getAuditLog() {
51
75
  if (_provider)
52
76
  return _provider.getAuditLog();
53
- return [];
77
+ return [..._auditLog];
54
78
  }
55
79
  export function getToolEventsFiltered(opts) {
56
80
  if (_provider)
@@ -60,47 +84,184 @@ export function getToolEventsFiltered(opts) {
60
84
  export function getToolTypes() {
61
85
  if (_provider)
62
86
  return _provider.getToolTypes();
63
- return [];
87
+ const types = new Set();
88
+ for (const entry of _auditLog) {
89
+ if (entry.tool)
90
+ types.add(entry.tool);
91
+ }
92
+ return [...types];
64
93
  }
65
94
  export function getAuditLogStats() {
66
95
  if (_provider)
67
96
  return _provider.getAuditLogStats();
68
- return {};
97
+ return { total: _auditLog.length };
69
98
  }
70
99
  export function exportAuditLogAsJSON(toolType) {
71
100
  if (_provider)
72
101
  return _provider.exportAuditLogAsJSON(toolType);
73
- return '[]';
102
+ const entries = toolType ? _auditLog.filter(e => e.tool === toolType) : _auditLog;
103
+ return JSON.stringify(entries);
74
104
  }
75
105
  export function exportAuditLogAsCSV(toolType) {
76
106
  if (_provider)
77
107
  return _provider.exportAuditLogAsCSV(toolType);
78
- return '';
108
+ const entries = toolType ? _auditLog.filter(e => e.tool === toolType) : _auditLog;
109
+ if (entries.length === 0)
110
+ return '';
111
+ const headers = ['timestamp', 'type', 'toolName', 'success'];
112
+ const rows = entries.map(e => [e.timestamp, e.type, e.tool ?? '', e.success ?? ''].join(','));
113
+ return [headers.join(','), ...rows].join('\n');
79
114
  }
80
115
  export function resetEventStore() {
81
116
  if (_provider)
82
117
  return _provider.resetEventStore();
118
+ _tokenStats = _emptyStats();
119
+ _tokenStatsListeners = [];
120
+ _backgroundTasks = [];
121
+ _backgroundTaskStartCb = null;
122
+ _backgroundTaskCompleteCb = null;
123
+ _auditLog = [];
124
+ _toolEventListeners = [];
125
+ _userEmail = null;
83
126
  }
84
127
  // =============================================================================
85
- // Plain stubsNOT used by core's API routes, only imported directly by cyclist
128
+ // Real implementationsstandalone OTLP processing
86
129
  // =============================================================================
87
- export function getBackgroundTaskByToolId(_toolId) {
88
- return undefined;
130
+ /* eslint-disable @typescript-eslint/no-explicit-any */
131
+ export function parseOTLPMetrics(body) {
132
+ const result = {};
133
+ const payload = body;
134
+ if (!payload?.resourceMetrics)
135
+ return result;
136
+ for (const rm of payload.resourceMetrics) {
137
+ for (const sm of rm.scopeMetrics ?? []) {
138
+ for (const metric of sm.metrics ?? []) {
139
+ if (metric.name !== 'claude_code.token.usage')
140
+ continue;
141
+ for (const dp of metric.sum?.dataPoints ?? []) {
142
+ const typeAttr = dp.attributes?.find((a) => a.key === 'type');
143
+ if (!typeAttr)
144
+ continue;
145
+ const type = typeAttr.value?.stringValue;
146
+ const value = dp.asInt;
147
+ if (type === 'input')
148
+ result.inputTokens = value;
149
+ else if (type === 'output')
150
+ result.outputTokens = value;
151
+ else if (type === 'cacheRead')
152
+ result.cacheReadTokens = value;
153
+ else if (type === 'cacheCreation')
154
+ result.cacheCreationTokens = value;
155
+ }
156
+ }
157
+ }
158
+ }
159
+ return result;
160
+ }
161
+ export function aggregateTokenStats(data) {
162
+ const d = data;
163
+ _tokenStats.inputTokens += d.inputTokens ?? 0;
164
+ _tokenStats.outputTokens += d.outputTokens ?? 0;
165
+ _tokenStats.cacheCreationTokens += d.cacheCreationTokens ?? 0;
166
+ _tokenStats.cacheReadTokens += d.cacheReadTokens ?? 0;
167
+ for (const listener of _tokenStatsListeners) {
168
+ listener({ ..._tokenStats });
169
+ }
170
+ return { ..._tokenStats };
89
171
  }
90
- export function trackBackgroundTask(_task) { }
91
- export function completeBackgroundTask(_taskId, _success, _result, _error) {
92
- return undefined;
172
+ export function parseOTLPLogs(body) {
173
+ const payload = body;
174
+ const events = [];
175
+ if (!payload?.resourceLogs)
176
+ return events;
177
+ for (const rl of payload.resourceLogs) {
178
+ for (const sl of rl.scopeLogs ?? []) {
179
+ for (const record of sl.logRecords ?? []) {
180
+ const name = record.body?.stringValue ?? '';
181
+ const timestampNs = Number(record.timeUnixNano);
182
+ const timestamp = Math.floor(timestampNs / 1_000_000);
183
+ const attributes = {};
184
+ for (const attr of record.attributes ?? []) {
185
+ if (attr.value?.stringValue !== undefined)
186
+ attributes[attr.key] = attr.value.stringValue;
187
+ else if (attr.value?.intValue !== undefined)
188
+ attributes[attr.key] = attr.value.intValue;
189
+ else if (attr.value?.boolValue !== undefined)
190
+ attributes[attr.key] = attr.value.boolValue;
191
+ }
192
+ events.push({ name, timestamp, attributes });
193
+ }
194
+ }
195
+ }
196
+ return events;
197
+ }
198
+ export function processLogEvents(events) {
199
+ if (!Array.isArray(events))
200
+ return;
201
+ for (const event of events) {
202
+ if (event.attributes?.['user.email']) {
203
+ _userEmail = event.attributes['user.email'];
204
+ }
205
+ if (event.name === 'claude_code.tool_result') {
206
+ const toolName = event.attributes?.tool_name ?? 'unknown';
207
+ const success = event.attributes?.success === 'true';
208
+ const entry = {
209
+ timestamp: event.timestamp,
210
+ type: 'tool_result',
211
+ tool: toolName,
212
+ toolName,
213
+ success,
214
+ };
215
+ _auditLog.push(entry);
216
+ const toolEvent = { toolName, success };
217
+ for (const listener of _toolEventListeners) {
218
+ listener(toolEvent);
219
+ }
220
+ }
221
+ }
222
+ }
223
+ /* eslint-enable @typescript-eslint/no-explicit-any */
224
+ export function trackBackgroundTask(task) {
225
+ const fullTask = {
226
+ taskId: task.taskId ?? '',
227
+ description: task.description ?? '',
228
+ subagentType: task.subagentType ?? '',
229
+ startedAt: task.startedAt ?? Date.now(),
230
+ status: 'pending',
231
+ };
232
+ _backgroundTasks.push(fullTask);
233
+ if (_backgroundTaskStartCb)
234
+ _backgroundTaskStartCb(fullTask);
235
+ }
236
+ export function getBackgroundTaskByToolId(toolId) {
237
+ return _backgroundTasks.find(t => t.taskId === toolId);
238
+ }
239
+ export function completeBackgroundTask(taskId, success, result, error) {
240
+ const task = _backgroundTasks.find(t => t.taskId === taskId);
241
+ if (!task)
242
+ return undefined;
243
+ task.status = 'completed';
244
+ task.success = success;
245
+ task.completedAt = Date.now();
246
+ task.durationMs = task.completedAt - task.startedAt;
247
+ if (result)
248
+ task.output = result;
249
+ if (error)
250
+ task.error = error;
251
+ if (_backgroundTaskCompleteCb)
252
+ _backgroundTaskCompleteCb(task);
253
+ return task;
254
+ }
255
+ export function addToolEventListener(callback) {
256
+ _toolEventListeners.push(callback);
93
257
  }
94
- export function addToolEventListener(_callback) { }
95
258
  export function getUserEmail() {
96
- return null;
259
+ return _userEmail;
97
260
  }
98
261
  export function isOtelDebugEnabled() {
99
262
  return false;
100
263
  }
101
- export function clearAuditLog() { }
102
- export function parseOTLPMetrics(_body) { return null; }
103
- export function aggregateTokenStats(_data) { return { inputTokens: 0, outputTokens: 0, cacheCreationTokens: 0, cacheReadTokens: 0, totalCost: 0 }; }
104
- export function parseOTLPLogs(_body) { return null; }
105
- export function processLogEvents(_events) { }
264
+ export function clearAuditLog() {
265
+ _auditLog = [];
266
+ }
106
267
  //# sourceMappingURL=otlp-receiver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"otlp-receiver.js","sourceRoot":"","sources":["../../src/server/otlp-receiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otlp-receiver.js","sourceRoot":"","sources":["../../src/server/otlp-receiver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Tests for Story 98-23: Implement real OTLP integrations for core server stubs
3
+ *
4
+ * Core's otlp-receiver module must provide real OTLP processing without
5
+ * requiring Cyclist's provider. WheelHub standalone (BikeRack mode) needs
6
+ * working telemetry ingestion.
7
+ *
8
+ * Acceptance Criteria:
9
+ * AC1: parseOTLPMetrics extracts token usage from OTLP JSON payloads
10
+ * AC2: aggregateTokenStats accumulates stats and notifies listeners
11
+ * AC3: parseOTLPLogs extracts structured events from OTLP log payloads
12
+ * AC4: processLogEvents categorizes and records tool/prompt events
13
+ * AC5: Background task lifecycle — track, complete, retrieve, callbacks
14
+ * AC6: Tool event listeners fire when events are recorded
15
+ * AC7: Session state management — reset clears stores, email extracted
16
+ * AC8: Delegating stubs work standalone (no provider required)
17
+ *
18
+ * Run with: cd packages/core && npm test
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=otlp-receiver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-receiver.test.d.ts","sourceRoot":"","sources":["../../src/server/otlp-receiver.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}