@agentdeck/shared 0.2.0 → 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.
Files changed (99) hide show
  1. package/dist/adapter.d.ts +3 -1
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/adapter.js +24 -0
  4. package/dist/adapter.js.map +1 -1
  5. package/dist/command-builders.d.ts +7 -2
  6. package/dist/command-builders.d.ts.map +1 -1
  7. package/dist/command-builders.js +17 -2
  8. package/dist/command-builders.js.map +1 -1
  9. package/dist/connection-status.d.ts +42 -0
  10. package/dist/connection-status.d.ts.map +1 -0
  11. package/dist/connection-status.js +52 -0
  12. package/dist/connection-status.js.map +1 -0
  13. package/dist/d200h-layout.d.ts +131 -0
  14. package/dist/d200h-layout.d.ts.map +1 -0
  15. package/dist/d200h-layout.js +627 -0
  16. package/dist/d200h-layout.js.map +1 -0
  17. package/dist/design-tokens.d.ts +259 -0
  18. package/dist/design-tokens.d.ts.map +1 -0
  19. package/dist/design-tokens.js +156 -0
  20. package/dist/design-tokens.js.map +1 -0
  21. package/dist/eval-schema.d.ts +26 -2
  22. package/dist/eval-schema.d.ts.map +1 -1
  23. package/dist/eval-schema.js.map +1 -1
  24. package/dist/format-utils.d.ts +25 -0
  25. package/dist/format-utils.d.ts.map +1 -1
  26. package/dist/format-utils.js +45 -0
  27. package/dist/format-utils.js.map +1 -1
  28. package/dist/gateway-protocol.d.ts +1 -1
  29. package/dist/gateway-protocol.js +1 -1
  30. package/dist/index.d.ts +8 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/llm-settings.d.ts +3 -3
  35. package/dist/llm-settings.d.ts.map +1 -1
  36. package/dist/llm-settings.js +3 -3
  37. package/dist/llm-settings.js.map +1 -1
  38. package/dist/net-utils.d.ts +2 -1
  39. package/dist/net-utils.d.ts.map +1 -1
  40. package/dist/net-utils.js +100 -3
  41. package/dist/net-utils.js.map +1 -1
  42. package/dist/pricing.d.ts +45 -0
  43. package/dist/pricing.d.ts.map +1 -0
  44. package/dist/pricing.js +93 -0
  45. package/dist/pricing.js.map +1 -0
  46. package/dist/protocol.d.ts +175 -5
  47. package/dist/protocol.d.ts.map +1 -1
  48. package/dist/protocol.js +11 -1
  49. package/dist/protocol.js.map +1 -1
  50. package/dist/sample.d.ts +152 -0
  51. package/dist/sample.d.ts.map +1 -0
  52. package/dist/sample.js +22 -0
  53. package/dist/sample.js.map +1 -0
  54. package/dist/session-utils.d.ts +82 -2
  55. package/dist/session-utils.d.ts.map +1 -1
  56. package/dist/session-utils.js +205 -10
  57. package/dist/session-utils.js.map +1 -1
  58. package/dist/state-colors.d.ts.map +1 -1
  59. package/dist/state-colors.js +2 -0
  60. package/dist/state-colors.js.map +1 -1
  61. package/dist/states.d.ts +1 -0
  62. package/dist/states.d.ts.map +1 -1
  63. package/dist/states.js +6 -1
  64. package/dist/states.js.map +1 -1
  65. package/dist/svg-renderers/agent-logos.d.ts +17 -5
  66. package/dist/svg-renderers/agent-logos.d.ts.map +1 -1
  67. package/dist/svg-renderers/agent-logos.js +177 -39
  68. package/dist/svg-renderers/agent-logos.js.map +1 -1
  69. package/dist/svg-renderers/session-slot-renderer.d.ts +59 -6
  70. package/dist/svg-renderers/session-slot-renderer.d.ts.map +1 -1
  71. package/dist/svg-renderers/session-slot-renderer.js +398 -209
  72. package/dist/svg-renderers/session-slot-renderer.js.map +1 -1
  73. package/dist/svg-renderers/text-utils.d.ts +14 -0
  74. package/dist/svg-renderers/text-utils.d.ts.map +1 -1
  75. package/dist/svg-renderers/text-utils.js +34 -0
  76. package/dist/svg-renderers/text-utils.js.map +1 -1
  77. package/dist/telemetry-envelope.d.ts +1 -1
  78. package/dist/telemetry-envelope.d.ts.map +1 -1
  79. package/dist/timeline-icons.d.ts +70 -0
  80. package/dist/timeline-icons.d.ts.map +1 -0
  81. package/dist/timeline-icons.js +161 -0
  82. package/dist/timeline-icons.js.map +1 -0
  83. package/dist/timeline-label.d.ts +38 -0
  84. package/dist/timeline-label.d.ts.map +1 -0
  85. package/dist/timeline-label.js +95 -0
  86. package/dist/timeline-label.js.map +1 -0
  87. package/dist/timeline-markdown.d.ts +80 -0
  88. package/dist/timeline-markdown.d.ts.map +1 -0
  89. package/dist/timeline-markdown.js +221 -0
  90. package/dist/timeline-markdown.js.map +1 -0
  91. package/dist/timeline-summarizer.d.ts +24 -0
  92. package/dist/timeline-summarizer.d.ts.map +1 -1
  93. package/dist/timeline-summarizer.js +55 -13
  94. package/dist/timeline-summarizer.js.map +1 -1
  95. package/dist/timeline.d.ts +72 -2
  96. package/dist/timeline.d.ts.map +1 -1
  97. package/dist/timeline.js +187 -10
  98. package/dist/timeline.js.map +1 -1
  99. package/package.json +1 -1
package/dist/adapter.d.ts CHANGED
@@ -2,7 +2,7 @@ import { EventEmitter } from 'events';
2
2
  import type { Server } from 'http';
3
3
  import type { PluginCommand } from './protocol.js';
4
4
  import type { TimelineEntry } from './timeline.js';
5
- export type AgentType = 'claude-code' | 'openclaw' | 'codex-cli' | 'opencode' | 'monitor';
5
+ export type AgentType = 'claude-code' | 'openclaw' | 'codex-cli' | 'codex-app' | 'opencode' | 'antigravity' | 'monitor';
6
6
  export interface AgentCapabilities {
7
7
  type: AgentType;
8
8
  displayName: string;
@@ -132,7 +132,9 @@ export declare const CLAUDE_CODE_CAPABILITIES: AgentCapabilities;
132
132
  export declare const OPENCLAW_CAPABILITIES: AgentCapabilities;
133
133
  export declare const MONITOR_CAPABILITIES: AgentCapabilities;
134
134
  export declare const CODEX_CLI_CAPABILITIES: AgentCapabilities;
135
+ export declare const CODEX_APP_CAPABILITIES: AgentCapabilities;
135
136
  export declare const OPENCODE_CAPABILITIES: AgentCapabilities;
137
+ export declare const ANTIGRAVITY_CAPABILITIES: AgentCapabilities;
136
138
  /** Default OpenClaw Gateway port */
137
139
  export declare const OPENCLAW_GATEWAY_PORT = 18789;
138
140
  /** Default OpenCode server port (0 = random) */
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/adapter.js CHANGED
@@ -47,6 +47,18 @@ export const CODEX_CLI_CAPABILITIES = {
47
47
  hasApiUsage: false,
48
48
  hasModelCatalog: false,
49
49
  };
50
+ export const CODEX_APP_CAPABILITIES = {
51
+ type: 'codex-app',
52
+ displayName: 'Codex App',
53
+ hasTerminal: false,
54
+ hasModeSwitching: false,
55
+ hasDiffReview: false,
56
+ hasOptionLists: false,
57
+ hasNavigablePrompts: false,
58
+ hasSuggestedPrompts: false,
59
+ hasApiUsage: false,
60
+ hasModelCatalog: false,
61
+ };
50
62
  export const OPENCODE_CAPABILITIES = {
51
63
  type: 'opencode',
52
64
  displayName: 'OpenCode',
@@ -59,6 +71,18 @@ export const OPENCODE_CAPABILITIES = {
59
71
  hasApiUsage: false,
60
72
  hasModelCatalog: false,
61
73
  };
74
+ export const ANTIGRAVITY_CAPABILITIES = {
75
+ type: 'antigravity',
76
+ displayName: 'Antigravity',
77
+ hasTerminal: false,
78
+ hasModeSwitching: false,
79
+ hasDiffReview: false,
80
+ hasOptionLists: false,
81
+ hasNavigablePrompts: false,
82
+ hasSuggestedPrompts: false,
83
+ hasApiUsage: false,
84
+ hasModelCatalog: false,
85
+ };
62
86
  /** Default OpenClaw Gateway port */
63
87
  export const OPENCLAW_GATEWAY_PORT = 18789;
64
88
  /** Default OpenCode server port (0 = random) */
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AA2KA,6CAA6C;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AA2KA,6CAA6C;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { ResponseCommand, SelectOptionCommand, NavigateOptionCommand, SendPromptCommand, SwitchModeCommand, InterruptCommand, EscapeCommand, VoiceCommand, QueryUsageCommand, DiagCommand, UtilityCommand, SwitchAgentCommand, FocusSessionCommand, SessionCommand, ClientRegisterCommand, ApmeVibeFeedbackCommand, ApmeRecommendCommand } from "./protocol.js";
1
+ import type { ResponseCommand, SelectOptionCommand, NavigateOptionCommand, SendPromptCommand, SwitchModeCommand, InterruptCommand, EscapeCommand, VoiceCommand, QueryUsageCommand, QuerySessionTimelineCommand, DiagCommand, UtilityCommand, SwitchAgentCommand, FocusSessionCommand, ClearSessionFocusCommand, SessionCommand, ClientRegisterCommand, ApmeVibeFeedbackCommand, ApmeRecommendCommand, PermissionDecisionCommand, Esp32OtaAckCommand, Esp32OtaErrorCommand } from "./protocol.js";
2
2
  export declare const agentCommand: {
3
3
  readonly respond: (value: string) => ResponseCommand;
4
- readonly selectOption: (index: number) => SelectOptionCommand;
4
+ readonly selectOption: (index: number, sessionId?: string) => SelectOptionCommand;
5
5
  readonly navigateOption: (direction: "up" | "down") => NavigateOptionCommand;
6
6
  readonly sendPrompt: (text: string) => SendPromptCommand;
7
7
  readonly switchMode: (mode?: "plan" | "acceptEdits" | "default") => SwitchModeCommand;
@@ -9,10 +9,12 @@ export declare const agentCommand: {
9
9
  readonly escape: () => EscapeCommand;
10
10
  readonly voice: (action: "start" | "stop" | "cancel") => VoiceCommand;
11
11
  readonly queryUsage: () => QueryUsageCommand;
12
+ readonly querySessionTimeline: (sessionId: string) => QuerySessionTimelineCommand;
12
13
  readonly diag: (action: "dump" | "analyze") => DiagCommand;
13
14
  readonly utility: (action: "adjust_volume" | "toggle_mute" | "adjust_brightness" | "media_play_pause" | "media_next" | "media_prev", value?: number) => UtilityCommand;
14
15
  readonly switchAgent: (agent: "openclaw" | "claude-code") => SwitchAgentCommand;
15
16
  readonly focusSession: (sessionId: string) => FocusSessionCommand;
17
+ readonly clearSessionFocus: () => ClearSessionFocusCommand;
16
18
  readonly sessionCommand: (sessionId: string, command: {
17
19
  type: string;
18
20
  [key: string]: unknown;
@@ -26,5 +28,8 @@ export declare const agentCommand: {
26
28
  }>) => ClientRegisterCommand;
27
29
  readonly apmeVibe: (runId: string, verdict: "approve" | "reject" | "neutral", note?: string) => ApmeVibeFeedbackCommand;
28
30
  readonly apmeRecommend: (taskKind?: string, budgetUsd?: number, latencyBudgetMs?: number, preferLocal?: boolean) => ApmeRecommendCommand;
31
+ readonly permissionDecision: (requestId: string, decision: "allow" | "deny") => PermissionDecisionCommand;
32
+ readonly esp32OtaAck: (otaId: string, stage: "begin" | "chunk" | "end" | "abort", seq?: number, offset?: number, written?: number) => Esp32OtaAckCommand;
33
+ readonly esp32OtaError: (error: string, otaId?: string, stage?: string) => Esp32OtaErrorCommand;
29
34
  };
30
35
  //# sourceMappingURL=command-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-builders.d.ts","sourceRoot":"","sources":["../src/command-builders.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,YAAY;8BACR,MAAM,KAAG,eAAe;mCAGnB,MAAM,KAAG,mBAAmB;yCAGtB,IAAI,GAAG,MAAM,KAAG,qBAAqB;gCAG9C,MAAM,KAAG,iBAAiB;iCAGzB,MAAM,GAAG,aAAa,GAAG,SAAS,KAAG,iBAAiB;8BAG3D,gBAAgB;2BAGnB,aAAa;6BAGT,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAG,YAAY;+BAG1C,iBAAiB;4BAGlB,MAAM,GAAG,SAAS,KAAG,WAAW;+BAG7B,eAAe,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,GAAG,YAAY,UAAU,MAAM,KAAG,cAAc;kCAGtI,UAAU,GAAG,aAAa,KAAG,kBAAkB;uCAG1C,MAAM,KAAG,mBAAmB;yCAG1B,MAAM,WAAW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,KAAG,cAAc;0CAG1E,MAAM,gBAAgB,MAAM,YAAY,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC,KAAG,qBAAqB;+BAGjK,MAAM,WAAW,SAAS,GAAG,QAAQ,GAAG,SAAS,SAAS,MAAM,KAAG,uBAAuB;wCAGjF,MAAM,cAAc,MAAM,oBAAoB,MAAM,gBAAgB,OAAO,KAAG,oBAAoB;CAGnH,CAAC"}
1
+ {"version":3,"file":"command-builders.d.ts","sourceRoot":"","sources":["../src/command-builders.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,YAAY;8BACR,MAAM,KAAG,eAAe;mCAGnB,MAAM,cAAc,MAAM,KAAG,mBAAmB;yCAG1C,IAAI,GAAG,MAAM,KAAG,qBAAqB;gCAG9C,MAAM,KAAG,iBAAiB;iCAGzB,MAAM,GAAG,aAAa,GAAG,SAAS,KAAG,iBAAiB;8BAG3D,gBAAgB;2BAGnB,aAAa;6BAGT,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAG,YAAY;+BAG1C,iBAAiB;+CAGC,MAAM,KAAG,2BAA2B;4BAGvD,MAAM,GAAG,SAAS,KAAG,WAAW;+BAG7B,eAAe,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,GAAG,YAAY,UAAU,MAAM,KAAG,cAAc;kCAGtI,UAAU,GAAG,aAAa,KAAG,kBAAkB;uCAG1C,MAAM,KAAG,mBAAmB;sCAG/B,wBAAwB;yCAGnB,MAAM,WAAW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,KAAG,cAAc;0CAG1E,MAAM,gBAAgB,MAAM,YAAY,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC,KAAG,qBAAqB;+BAGjK,MAAM,WAAW,SAAS,GAAG,QAAQ,GAAG,SAAS,SAAS,MAAM,KAAG,uBAAuB;wCAGjF,MAAM,cAAc,MAAM,oBAAoB,MAAM,gBAAgB,OAAO,KAAG,oBAAoB;6CAG7F,MAAM,YAAY,OAAO,GAAG,MAAM,KAAG,yBAAyB;kCAGzE,MAAM,SAAS,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,QAAQ,MAAM,WAAW,MAAM,YAAY,MAAM,KAAG,kBAAkB;oCAGtH,MAAM,UAAU,MAAM,UAAU,MAAM,KAAG,oBAAoB;CAG1E,CAAC"}
@@ -8,8 +8,8 @@ export const agentCommand = {
8
8
  respond(value) {
9
9
  return { type: "respond", value };
10
10
  },
11
- selectOption(index) {
12
- return { type: "select_option", index };
11
+ selectOption(index, sessionId) {
12
+ return { type: "select_option", index, sessionId };
13
13
  },
14
14
  navigateOption(direction) {
15
15
  return { type: "navigate_option", direction };
@@ -32,6 +32,9 @@ export const agentCommand = {
32
32
  queryUsage() {
33
33
  return { type: "query_usage" };
34
34
  },
35
+ querySessionTimeline(sessionId) {
36
+ return { type: "query_session_timeline", sessionId };
37
+ },
35
38
  diag(action) {
36
39
  return { type: "diag", action };
37
40
  },
@@ -44,6 +47,9 @@ export const agentCommand = {
44
47
  focusSession(sessionId) {
45
48
  return { type: "focus_session", sessionId };
46
49
  },
50
+ clearSessionFocus() {
51
+ return { type: "clear_session_focus" };
52
+ },
47
53
  sessionCommand(sessionId, command) {
48
54
  return { type: "session_command", sessionId, command };
49
55
  },
@@ -56,5 +62,14 @@ export const agentCommand = {
56
62
  apmeRecommend(taskKind, budgetUsd, latencyBudgetMs, preferLocal) {
57
63
  return { type: "apme_recommend", taskKind, budgetUsd, latencyBudgetMs, preferLocal };
58
64
  },
65
+ permissionDecision(requestId, decision) {
66
+ return { type: "permission_decision", requestId, decision };
67
+ },
68
+ esp32OtaAck(otaId, stage, seq, offset, written) {
69
+ return { type: "esp32_ota_ack", otaId, stage, seq, offset, written };
70
+ },
71
+ esp32OtaError(error, otaId, stage) {
72
+ return { type: "esp32_ota_error", error, otaId, stage };
73
+ },
59
74
  };
60
75
  //# sourceMappingURL=command-builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-builders.js","sourceRoot":"","sources":["../src/command-builders.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iEAAiE;AACjE,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAsB7E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,CAAC,KAAa;QACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;IACD,YAAY,CAAC,KAAa;QACxB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,cAAc,CAAC,SAAwB;QACrC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,IAAY;QACrB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,UAAU,CAAC,IAAyC;QAClD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,SAAS;QACP,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,MAAmC;QACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IACD,UAAU;QACR,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,MAA0B;QAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,MAAgH,EAAE,KAAc;QACtI,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,WAAW,CAAC,KAAiC;QAC3C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IACD,YAAY,CAAC,SAAiB;QAC5B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IACD,cAAc,CAAC,SAAiB,EAAE,OAAkD;QAClF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACzD,CAAC;IACD,cAAc,CAAC,UAAkB,EAAE,WAAoB,EAAE,OAAgG;QACvJ,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACvE,CAAC;IACD,QAAQ,CAAC,KAAa,EAAE,OAAyC,EAAE,IAAa;QAC9E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IACD,aAAa,CAAC,QAAiB,EAAE,SAAkB,EAAE,eAAwB,EAAE,WAAqB;QAClG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;IACvF,CAAC;CACO,CAAC"}
1
+ {"version":3,"file":"command-builders.js","sourceRoot":"","sources":["../src/command-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Connection-state lexicon — canonical user-facing copy for every surface's
3
+ * daemon-link status. SSOT for the words; per-platform mirrors must match.
4
+ *
5
+ * Two device classes, two vocabularies:
6
+ *
7
+ * 1. Self-connecting clients (Apple app, Android app, ESP32 WiFi panels, TUI)
8
+ * own their link to the daemon: they discover via mDNS, connect, and
9
+ * auto-reconnect. They surface the *phase* they are actually in:
10
+ * - SEARCHING "Searching for AgentDeck..." (mDNS discovery, no target yet)
11
+ * - CONNECTING "Connecting..." (attempt to a known address)
12
+ * - RECONNECTING "Reconnecting..." (established link lost, auto-retry)
13
+ * - NO_NETWORK "No WiFi" (ESP32 only — no link layer at all)
14
+ * Retry affordance (button): "Search Again". Empty-discovery hint:
15
+ * "No AgentDeck found on this network".
16
+ *
17
+ * 2. Daemon-rendered passive displays (Stream Deck keys/encoders, D200H,
18
+ * Pixoo, Timebox, iDotMatrix, TRMNL) are painted BY the daemon/plugin and
19
+ * cannot search on their own. When the link is down they show a single
20
+ * terminal state: "OFFLINE" (optionally with the "Open AgentDeck"
21
+ * call-to-action subtitle). They never claim Connecting/Reconnecting.
22
+ *
23
+ * Mirrors (update together — grep the literal when changing copy):
24
+ * - Swift: apple/AgentDeck/UI/Monitor/ConnectionOverlay.swift (ConnectionLexicon)
25
+ * - Kotlin: android/.../ui/common/ConnectionComponents.kt (ConnectionLexicon)
26
+ * - C++: esp32/src/ui/screens/aquarium.cpp + splash.cpp + main.cpp
27
+ */
28
+ /** Daemon-link phase of a self-connecting client surface. */
29
+ export type DaemonLinkPhase = 'searching' | 'connecting' | 'reconnecting' | 'no_network' | 'connected';
30
+ /** Canonical labels for self-connecting clients (device class 1). */
31
+ export declare const DAEMON_LINK_LABELS: Record<DaemonLinkPhase, string>;
32
+ /** Compact variants for small panels (ESP32 overlays, tiny widgets). */
33
+ export declare const DAEMON_LINK_LABELS_COMPACT: Record<DaemonLinkPhase, string>;
34
+ /** Retry affordance (button label) after discovery/connect failure. */
35
+ export declare const SEARCH_AGAIN_LABEL = "Search Again";
36
+ /** Hint when mDNS discovery has run for a while with zero results. */
37
+ export declare const NOTHING_DISCOVERED_HINT = "No AgentDeck found on this network";
38
+ /** Terminal label for daemon-rendered passive displays (device class 2). */
39
+ export declare const PASSIVE_OFFLINE_LABEL = "OFFLINE";
40
+ /** Call-to-action subtitle paired with the passive OFFLINE card. */
41
+ export declare const OPEN_AGENTDECK_LABEL = "Open AgentDeck";
42
+ //# sourceMappingURL=connection-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-status.d.ts","sourceRoot":"","sources":["../src/connection-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,WAAW,CAAC;AAEhB,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAM9D,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAMtE,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,uCAAuC,CAAC;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Connection-state lexicon — canonical user-facing copy for every surface's
3
+ * daemon-link status. SSOT for the words; per-platform mirrors must match.
4
+ *
5
+ * Two device classes, two vocabularies:
6
+ *
7
+ * 1. Self-connecting clients (Apple app, Android app, ESP32 WiFi panels, TUI)
8
+ * own their link to the daemon: they discover via mDNS, connect, and
9
+ * auto-reconnect. They surface the *phase* they are actually in:
10
+ * - SEARCHING "Searching for AgentDeck..." (mDNS discovery, no target yet)
11
+ * - CONNECTING "Connecting..." (attempt to a known address)
12
+ * - RECONNECTING "Reconnecting..." (established link lost, auto-retry)
13
+ * - NO_NETWORK "No WiFi" (ESP32 only — no link layer at all)
14
+ * Retry affordance (button): "Search Again". Empty-discovery hint:
15
+ * "No AgentDeck found on this network".
16
+ *
17
+ * 2. Daemon-rendered passive displays (Stream Deck keys/encoders, D200H,
18
+ * Pixoo, Timebox, iDotMatrix, TRMNL) are painted BY the daemon/plugin and
19
+ * cannot search on their own. When the link is down they show a single
20
+ * terminal state: "OFFLINE" (optionally with the "Open AgentDeck"
21
+ * call-to-action subtitle). They never claim Connecting/Reconnecting.
22
+ *
23
+ * Mirrors (update together — grep the literal when changing copy):
24
+ * - Swift: apple/AgentDeck/UI/Monitor/ConnectionOverlay.swift (ConnectionLexicon)
25
+ * - Kotlin: android/.../ui/common/ConnectionComponents.kt (ConnectionLexicon)
26
+ * - C++: esp32/src/ui/screens/aquarium.cpp + splash.cpp + main.cpp
27
+ */
28
+ /** Canonical labels for self-connecting clients (device class 1). */
29
+ export const DAEMON_LINK_LABELS = {
30
+ searching: 'Searching for AgentDeck...',
31
+ connecting: 'Connecting...',
32
+ reconnecting: 'Reconnecting...',
33
+ no_network: 'No WiFi',
34
+ connected: 'Connected',
35
+ };
36
+ /** Compact variants for small panels (ESP32 overlays, tiny widgets). */
37
+ export const DAEMON_LINK_LABELS_COMPACT = {
38
+ searching: 'Searching...',
39
+ connecting: 'Connecting...',
40
+ reconnecting: 'Reconnecting...',
41
+ no_network: 'No WiFi',
42
+ connected: 'Connected',
43
+ };
44
+ /** Retry affordance (button label) after discovery/connect failure. */
45
+ export const SEARCH_AGAIN_LABEL = 'Search Again';
46
+ /** Hint when mDNS discovery has run for a while with zero results. */
47
+ export const NOTHING_DISCOVERED_HINT = 'No AgentDeck found on this network';
48
+ /** Terminal label for daemon-rendered passive displays (device class 2). */
49
+ export const PASSIVE_OFFLINE_LABEL = 'OFFLINE';
50
+ /** Call-to-action subtitle paired with the passive OFFLINE card. */
51
+ export const OPEN_AGENTDECK_LABEL = 'Open AgentDeck';
52
+ //# sourceMappingURL=connection-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-status.js","sourceRoot":"","sources":["../src/connection-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAUH,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IACjE,SAAS,EAAE,4BAA4B;IACvC,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAoC;IACzE,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,oCAAoC,CAAC;AAE5E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,131 @@
1
+ import { type PromptOption } from './states.js';
2
+ import type { SessionInfo, SubscriptionInfo, CodexRateLimits } from './protocol.js';
3
+ /** Command dispatched when a key is pressed. `null` = inert tile (info/empty). */
4
+ export type ButtonCommand = {
5
+ type: string;
6
+ [k: string]: unknown;
7
+ };
8
+ export interface KeySlot {
9
+ col: number;
10
+ row: number;
11
+ svg: string;
12
+ label: string;
13
+ /** What pressing this key does. Single source of truth for input. */
14
+ command?: ButtonCommand | null;
15
+ }
16
+ /** 5 columns × 3 rows. Physical key index == row * GRID_COLS + col. */
17
+ export declare const GRID_COLS = 5;
18
+ export interface DashState {
19
+ state: string;
20
+ projectName: string;
21
+ modelName: string;
22
+ mode: string;
23
+ agentType: string;
24
+ fiveHourPercent: number;
25
+ sevenDayPercent: number;
26
+ totalTokens: number;
27
+ totalCost: number;
28
+ options: PromptOption[];
29
+ currentTool: string;
30
+ allSessions: SessionInfo[];
31
+ /** Live PTY option cursor is navigable (❯) — drives select_option vs respond. */
32
+ navigable?: boolean;
33
+ /**
34
+ * True when the 5H/7D quota is actually known (subscription data present), so a
35
+ * read-only surface can distinguish "0% used" from "no data" instead of drawing
36
+ * a confident empty gauge. Absent/false on surfaces that don't supply it.
37
+ */
38
+ usageKnown?: boolean;
39
+ /** ISO timestamp when the 5-hour quota window resets (for a countdown). */
40
+ fiveHourResetsAt?: string;
41
+ /** ISO timestamp when the 7-day quota window resets (for a countdown). */
42
+ sevenDayResetsAt?: string;
43
+ /** Active subscriptions (Claude / ChatGPT plan) with optional expiry. */
44
+ subscriptions?: SubscriptionInfo[];
45
+ /**
46
+ * Codex (ChatGPT) rolling-window usage parsed from local rollout files.
47
+ * `primary` ≈ the 5h window, `secondary` ≈ the weekly window — mirrors the
48
+ * Claude 5H/7D gauges. Absent when the user runs no Codex session.
49
+ */
50
+ codexRateLimits?: CodexRateLimits;
51
+ }
52
+ export declare function parseState(evt: any): DashState;
53
+ export declare function renderUsageButton(label: string, percent: number, color: string, known?: boolean): string;
54
+ /** Wide merged slot (3_2) — 288×144 SVG. Two columns: 5H | 7D. Direct-HID only. */
55
+ export declare function renderUsageWideSlot(fiveHourPct: number, sevenDayPct: number, known?: boolean): string;
56
+ export interface UsageTankData {
57
+ agent: 'claude' | 'codex';
58
+ /** Rolling window this tile represents (drives the clip id + label fallback). */
59
+ window: '5h' | '7d';
60
+ /** Tile label, e.g. "5H", "7D". Agent identity rides the brand dot, not a prefix. */
61
+ label: string;
62
+ /** Percent of the window already CONSUMED (0–100). Fill rises with this. */
63
+ usedPercent: number;
64
+ /** ISO-8601 reset instant for the countdown. */
65
+ resetsAt?: string;
66
+ /** False → no live quota: dark tile + dim label + "—" instead of a gauge. */
67
+ known?: boolean;
68
+ /** Codex snapshot expired: keep last-known % but desaturate the fill and show
69
+ * a "stale" marker instead of a (misleading) "now" countdown. */
70
+ stale?: boolean;
71
+ }
72
+ export declare function renderUsageGauge(data: UsageTankData): string;
73
+ /**
74
+ * Codex credit-based plans (e.g. `limit_id: "premium"`) report null 5h/7d
75
+ * windows and convey usage via a credits balance instead. Render a flat readout
76
+ * tile — limit label + balance (or ∞ when unlimited) — matching the gauge frame
77
+ * so it sits alongside the Claude gauges without a false "%" affordance.
78
+ */
79
+ export declare function renderCreditsTile(data: {
80
+ limitId?: string;
81
+ balance?: string;
82
+ unlimited?: boolean;
83
+ }): string;
84
+ export declare function computeLayout(state: DashState, animFrame?: number, animated?: boolean): KeySlot[];
85
+ /** Physical-key-index → command map (index = row*GRID_COLS+col). Direct-HID input. */
86
+ export declare function buildButtonCommandMap(stateEvt: any): Map<number, ButtonCommand>;
87
+ export interface DeckCell {
88
+ svg: string;
89
+ command: ButtonCommand | null;
90
+ }
91
+ /**
92
+ * `col_row` → {svg, command} map for the WHOLE grid, for plugins that address
93
+ * keys by position (Ulanzi Studio). Unlike direct-HID, slot 3_2 is a normal
94
+ * per-key usage tile (no hardware merge), and 4_2 mirrors it.
95
+ */
96
+ export declare function buildLayoutMap(stateEvt: any, animFrame?: number, animated?: boolean): Map<string, DeckCell>;
97
+ /** A press resolves to a daemon command and/or a local view change. */
98
+ export type DeckAction = {
99
+ kind: 'open';
100
+ sessionId: string;
101
+ } | {
102
+ kind: 'back';
103
+ } | {
104
+ kind: 'page';
105
+ delta: number;
106
+ } | {
107
+ kind: 'command';
108
+ command: ButtonCommand;
109
+ } | {
110
+ kind: 'launch';
111
+ } | null;
112
+ export interface SessionDeckCell {
113
+ svg: string;
114
+ action: DeckAction;
115
+ }
116
+ export interface DeckView {
117
+ mode: 'list' | 'detail';
118
+ openSessionId?: string;
119
+ page?: number;
120
+ animFrame?: number;
121
+ animated?: boolean;
122
+ /**
123
+ * Opt-in: pin the last two list-view positions to 5H/7D subscription-usage
124
+ * tiles (the global quota gauges). Used by surfaces with no encoder LCD to
125
+ * carry usage (Ulanzi D200H, classic Stream Deck). Off by default so other
126
+ * consumers keep the full grid for sessions.
127
+ */
128
+ showUsage?: boolean;
129
+ }
130
+ export declare function buildSessionDeck(stateEvt: any, view: DeckView, positions: string[]): Map<string, SessionDeckCell>;
131
+ //# sourceMappingURL=d200h-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d200h-layout.d.ts","sourceRoot":"","sources":["../src/d200h-layout.ts"],"names":[],"mappings":"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"}