@beacon-build/sdk 1.31.2 → 1.33.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 (72) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/clients/admin/conversation-messages.client.d.ts +9 -1
  3. package/dist/clients/admin/conversation-messages.client.d.ts.map +1 -1
  4. package/dist/clients/admin/conversation-messages.client.js +19 -0
  5. package/dist/clients/admin/conversation-messages.client.js.map +1 -1
  6. package/dist/clients/agent/capability.client.d.ts +8 -4
  7. package/dist/clients/agent/capability.client.d.ts.map +1 -1
  8. package/dist/clients/agent/capability.client.js +5 -0
  9. package/dist/clients/agent/capability.client.js.map +1 -1
  10. package/dist/clients/ops/agents-ops.client.d.ts +23 -2
  11. package/dist/clients/ops/agents-ops.client.d.ts.map +1 -1
  12. package/dist/clients/ops/agents-ops.client.js +26 -2
  13. package/dist/clients/ops/agents-ops.client.js.map +1 -1
  14. package/dist/clients/ops/ops-db.client.d.ts +19 -0
  15. package/dist/clients/ops/ops-db.client.d.ts.map +1 -1
  16. package/dist/clients/ops/ops-db.client.js +18 -0
  17. package/dist/clients/ops/ops-db.client.js.map +1 -1
  18. package/dist/clients/ops/ops-logs.client.d.ts +14 -0
  19. package/dist/clients/ops/ops-logs.client.d.ts.map +1 -1
  20. package/dist/clients/ops/ops-logs.client.js +14 -0
  21. package/dist/clients/ops/ops-logs.client.js.map +1 -1
  22. package/dist/clients/ops/ops-mq.client.d.ts +15 -1
  23. package/dist/clients/ops/ops-mq.client.d.ts.map +1 -1
  24. package/dist/clients/ops/ops-mq.client.js +3 -1
  25. package/dist/clients/ops/ops-mq.client.js.map +1 -1
  26. package/dist/clients/ops/ops-northflank.client.d.ts +1 -0
  27. package/dist/clients/ops/ops-northflank.client.d.ts.map +1 -1
  28. package/dist/clients/ops/ops-northflank.client.js +3 -1
  29. package/dist/clients/ops/ops-northflank.client.js.map +1 -1
  30. package/dist/clients/ops/ops-workers.client.d.ts +104 -0
  31. package/dist/clients/ops/ops-workers.client.d.ts.map +1 -0
  32. package/dist/clients/ops/ops-workers.client.js +31 -0
  33. package/dist/clients/ops/ops-workers.client.js.map +1 -0
  34. package/dist/clients/ops/sessions-ops.client.d.ts +2 -2
  35. package/dist/clients/ops/sessions-ops.client.d.ts.map +1 -1
  36. package/dist/clients/ops/sessions-ops.client.js +11 -2
  37. package/dist/clients/ops/sessions-ops.client.js.map +1 -1
  38. package/dist/factory/admin-sdk.d.ts +3 -5
  39. package/dist/factory/admin-sdk.d.ts.map +1 -1
  40. package/dist/factory/admin-sdk.js +13 -4
  41. package/dist/factory/admin-sdk.js.map +1 -1
  42. package/dist/factory/ops-sdk.d.ts +2 -3
  43. package/dist/factory/ops-sdk.d.ts.map +1 -1
  44. package/dist/factory/ops-sdk.js +8 -2
  45. package/dist/factory/ops-sdk.js.map +1 -1
  46. package/dist/index.d.ts +4 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/manifest.admin-entries-2.d.ts.map +1 -1
  51. package/dist/manifest.admin-entries-2.js +0 -10
  52. package/dist/manifest.admin-entries-2.js.map +1 -1
  53. package/dist/manifest.ops-entries.d.ts.map +1 -1
  54. package/dist/manifest.ops-entries.js +31 -8
  55. package/dist/manifest.ops-entries.js.map +1 -1
  56. package/dist/transport/sse-client.d.ts +7 -1
  57. package/dist/transport/sse-client.d.ts.map +1 -1
  58. package/dist/transport/sse-client.js +1 -1
  59. package/dist/transport/sse-client.js.map +1 -1
  60. package/package.json +2 -2
  61. package/dist/clients/admin/alerts.client.d.ts +0 -8
  62. package/dist/clients/admin/alerts.client.d.ts.map +0 -1
  63. package/dist/clients/admin/alerts.client.js +0 -11
  64. package/dist/clients/admin/alerts.client.js.map +0 -1
  65. package/dist/clients/admin/board-messages.client.d.ts +0 -13
  66. package/dist/clients/admin/board-messages.client.d.ts.map +0 -1
  67. package/dist/clients/admin/board-messages.client.js +0 -16
  68. package/dist/clients/admin/board-messages.client.js.map +0 -1
  69. package/dist/clients/ops/board-messages-ops.client.d.ts +0 -14
  70. package/dist/clients/ops/board-messages-ops.client.d.ts.map +0 -1
  71. package/dist/clients/ops/board-messages-ops.client.js +0 -26
  72. package/dist/clients/ops/board-messages-ops.client.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # @beacon-build/sdk Changelog
2
2
 
3
+ ## 1.33.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 0e1c4a9: Add AdminConversationMessagesClient.listBySessionPaginated for cursor-paginated session message retrieval (AC-5)
8
+ - 5d7b32d: F327 AC-1: POST /db/query binds positional params via $queryRawUnsafe; OpsDbClient gains query(sql, params?) returning { rows, truncated }
9
+ - 5d7b32d: F327 AC-2…AC-7 — route remote-env MCP tools through the API/SDK (local stays direct).
10
+ - **AC-2 (sdk, ops-routes):** `POST /ops/db/execute` gains a `confirm` field + a prod-guard that blocks unconfirmed DML (not only DDL); `OpsDbClient.execute(sql, params?, {confirm})`. project-db `db_execute` routes remote writes through it; the MCP tool holds no remote write connection.
11
+ - **AC-3 (sdk, mcp-project):** project-db `db_migrate/seed/reset` route remote envs through the SSE routes (`/ops/db/{migrate,seed,reset}`); `SseClient.onDone` now carries the terminal `done` event so the exitCode surfaces. Local stays on the native prisma CLI / supabase reset.
12
+ - **AC-4 (sdk, ops-routes, mcp-project):** new `GET /ops/logs/server` serves the API host's `~/.beacon-platform/logs/<service>.log`; `OpsLogsClient.serverLogs()`. project-logs `log_tail/search/errors/trace/summary` route remote through the SDK — kills the direct-Northflank+1Password path and its "No 1Password transport available" false-negative (C221 root). Dead `log-remote.ts` removed.
13
+ - **AC-5 (sdk, ops-routes, mcp-beacon, dev-tools):** new `GET /ops/mq/stats` (Redis health + all-queue counts) and `GET /ops/services` (Northflank service status); `OpsMqClient.stats()` / `OpsNorthflankClient.listServices()`. beacon-ops `mq_status`/`env_status` route remote through the SDK; the read-only status tools (mq/daemon/daemon_ps/local/env_status) drop `requireOpsRole()` (available to all; removes the C221 platform-DB timeout source). beacon-ops MCP added to the architect + builder ROLE_TOOLS (opencode + Claude `.mcp.json`).
14
+ - **AC-7 (mcp-core):** shared `createRemoteOpsClient` factory (mcp-core/remote-ops) is the single SDK egress for every MCP `*-remote` adapter; a hard arch-guard rule forbids direct backend access (pg/opRead/Northflank/Redis/raw-fetch) in `mcp/**/src/*-remote.ts`.
15
+
16
+ - 75ebd27: FS33 release slate — agent-hardening and ops batch.
17
+ - **`@beacon-build/mcp-agent`** — B191/B192 (C242): harden auto-session resolution and
18
+ workflow-state handling; B193: msg-search robustness; C241: session-end workflow cleanup
19
+ so a stale workflow instance no longer blocks `session_end`.
20
+ - **`@beacon-build/dev-tools`** — T111/T114: MCP liveness + process-match hardening
21
+ (`mcp-prune`/`mcp-restart`) and Claude ingest active-session resolution fixes.
22
+ - **`@beacon-build/infrastructure`** — B191/B193: skill-execution repository and
23
+ task-board query hardening.
24
+ - **`@beacon-build/ops`** — T110: release-lock support (`release/lib/lock.mjs` +
25
+ state) wired into the release CLI.
26
+ - **`@beacon-build/db`** — T110: `t110_release_locks` migration adds the release-lock
27
+ table backing the ops release lock.
28
+ - **`@beacon-build/sdk`** — F328 (Axis A): agents-ops client gains the optional
29
+ active-session param + external-id resolution.
30
+
31
+ - Updated dependencies [e9a919a]
32
+ - Updated dependencies [8f5e34a]
33
+ - Updated dependencies [706969a]
34
+ - Updated dependencies [e9a919a]
35
+ - @beacon-build/core@1.33.0
36
+
37
+ ## 1.32.0
38
+
39
+ ### Patch Changes
40
+
41
+ - 8f66616: C209: remove the legacy board-messaging (F114) data/transport layer. Drops the
42
+ board service ports/entities, Prisma + HTTP board repositories, admin/ops board
43
+ SDK clients and DTOs, and the dead `MessagingService`. The live thread/message
44
+ subsystem (`msg_send` / `msg_read`) is unaffected. Workflow docs migrated from
45
+ the `board_*` tools to the `msg_*` tools.
46
+ - 55b0233: F319 — sessions client/env/cwd API/SDK threading + backfill + integration tests
47
+ - abb30c4: F320: per-session active-sessions endpoint + agent_status + mcp status env
48
+ - Updated dependencies [8f66616]
49
+ - Updated dependencies [55b0233]
50
+ - Updated dependencies [3e5284e]
51
+ - Updated dependencies [abb30c4]
52
+ - Updated dependencies [3687c33]
53
+ - Updated dependencies [625ec21]
54
+ - Updated dependencies [58e6383]
55
+ - @beacon-build/core@1.32.0
56
+
3
57
  ## 1.31.2
4
58
 
5
59
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import type { ConversationMessageDto, SessionMessagesDto } from '@beacon-build/core';
1
+ import type { ConversationMessageDto, PaginatedSessionMessagesDto, SessionMessagesDto, SessionMessagesPageOptions } from '@beacon-build/core';
2
2
  import type { HttpClient } from '../../transport/http-client.js';
3
3
  export declare class AdminConversationMessagesClient {
4
4
  private readonly http;
@@ -19,6 +19,14 @@ export declare class AdminConversationMessagesClient {
19
19
  * the session card's message count (a separate aggregate query) was correct.
20
20
  */
21
21
  listBySession(sessionId: string): Promise<SessionMessagesDto>;
22
+ /**
23
+ * F328 Axis C (AC-5): cursor-paginated session messages for the Session-View
24
+ * detail page. Hits GET /sessions/:id/messages with `limit` (+ optional
25
+ * `before`/`after` cursor) → newest-first page + `nextCursor`/`hasMore`.
26
+ * INV-4: bounded request, never a full session load. Subagent nesting is
27
+ * deferred to F329 — this carries main messages only.
28
+ */
29
+ listBySessionPaginated(sessionId: string, opts: SessionMessagesPageOptions): Promise<PaginatedSessionMessagesDto>;
22
30
  get(id: string): Promise<ConversationMessageDto | null>;
23
31
  delete(id: string): Promise<void>;
24
32
  updateTokens(id: string, inputTokens: number, outputTokens: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-messages.client.d.ts","sourceRoot":"","sources":["../../../src/clients/admin/conversation-messages.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,qBAAa,+BAA+B;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C;;;;;;;;;;;;;;OAcG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM7D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAUvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM3F"}
1
+ {"version":3,"file":"conversation-messages.client.d.ts","sourceRoot":"","sources":["../../../src/clients/admin/conversation-messages.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,0BAA0B,EAC7B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,qBAAa,+BAA+B;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C;;;;;;;;;;;;;;OAcG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMnE;;;;;;OAMG;IACG,sBAAsB,CACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,0BAA0B,GACjC,OAAO,CAAC,2BAA2B,CAAC;IAWjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAUvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM3F"}
@@ -21,6 +21,25 @@ export class AdminConversationMessagesClient {
21
21
  async listBySession(sessionId) {
22
22
  return this.http.get(`/sessions/${encodeURIComponent(sessionId)}/messages`);
23
23
  }
24
+ /**
25
+ * F328 Axis C (AC-5): cursor-paginated session messages for the Session-View
26
+ * detail page. Hits GET /sessions/:id/messages with `limit` (+ optional
27
+ * `before`/`after` cursor) → newest-first page + `nextCursor`/`hasMore`.
28
+ * INV-4: bounded request, never a full session load. Subagent nesting is
29
+ * deferred to F329 — this carries main messages only.
30
+ */
31
+ async listBySessionPaginated(sessionId, opts) {
32
+ const params = new URLSearchParams({ limit: String(opts.limit) });
33
+ if (opts.before)
34
+ params.set('before', opts.before);
35
+ if (opts.after)
36
+ params.set('after', opts.after);
37
+ if (opts.q)
38
+ params.set('q', opts.q);
39
+ if (opts.role)
40
+ params.set('role', opts.role);
41
+ return this.http.get(`/sessions/${encodeURIComponent(sessionId)}/messages?${params}`);
42
+ }
24
43
  async get(id) {
25
44
  try {
26
45
  return await this.http.get(`/conversation-messages/${encodeURIComponent(id)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-messages.client.js","sourceRoot":"","sources":["../../../src/clients/admin/conversation-messages.client.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IACX;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,aAAa,kBAAkB,CAAC,SAAS,CAAC,WAAW,CACxD,CAAA;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAChB,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACtB,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACrD,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,WAAmB,EAAE,YAAoB;QACpE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE;YAC7E,WAAW;YACX,YAAY;SACf,CAAC,CAAA;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"conversation-messages.client.js","sourceRoot":"","sources":["../../../src/clients/admin/conversation-messages.client.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,+BAA+B;IACX;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,aAAa,kBAAkB,CAAC,SAAS,CAAC,WAAW,CACxD,CAAA;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CACxB,SAAiB,EACjB,IAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjE,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,IAAI,CAAC,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,aAAa,kBAAkB,CAAC,SAAS,CAAC,aAAa,MAAM,EAAE,CAClE,CAAA;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAChB,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACtB,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACrD,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,WAAmB,EAAE,YAAoB;QACpE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE;YAC7E,WAAW;YACX,YAAY;SACf,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -9,18 +9,22 @@ export interface CapabilityCandidateDto {
9
9
  name: string;
10
10
  ref: string | null;
11
11
  score: number;
12
+ /** C240/AC-8: confidence verdict — prefer this over the raw `score`. */
13
+ confidence: 'strong' | 'weak' | 'none';
12
14
  reason: string;
13
15
  invocation: string;
14
16
  }
15
- export interface ResolveCapabilityResponse {
16
- data: CapabilityCandidateDto[];
17
- }
18
17
  export declare class AgentCapabilityClient {
19
18
  private http;
20
19
  constructor(http: HttpClient);
21
20
  /**
22
21
  * F304: Resolve ranked capability candidates for a problem query.
23
22
  *
23
+ * The API returns a `{ data: CapabilityCandidateDto[] }` envelope; HttpClient
24
+ * unwraps `.data` by default (B185), so this resolves to the bare array — the
25
+ * return type must reflect the unwrapped shape, not the wire envelope, or
26
+ * callers destructure a non-existent `.data` off an array and crash.
27
+ *
24
28
  * @param query — Problem description (used for empty-query guard + reason text).
25
29
  * @param embedding — Pre-computed query vector (B106: API does not embed).
26
30
  * @param context — Optional task context (taskType/domain) for ranking boost.
@@ -34,6 +38,6 @@ export declare class AgentCapabilityClient {
34
38
  domain?: string;
35
39
  };
36
40
  limit?: number;
37
- }): Promise<ResolveCapabilityResponse>;
41
+ }): Promise<CapabilityCandidateDto[]>;
38
42
  }
39
43
  //# sourceMappingURL=capability.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability.client.d.ts","sourceRoot":"","sources":["../../../src/clients/agent/capability.client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,sBAAsB,EAAE,CAAA;CACjC;AAED,qBAAa,qBAAqB;IAClB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC;;;;;;;OAOG;IACG,OAAO,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAChD,KAAK,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAGzC"}
1
+ {"version":3,"file":"capability.client.d.ts","sourceRoot":"","sources":["../../../src/clients/agent/capability.client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,UAAU,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,qBAAa,qBAAqB;IAClB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAChD,KAAK,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;CAGxC"}
@@ -11,6 +11,11 @@ export class AgentCapabilityClient {
11
11
  /**
12
12
  * F304: Resolve ranked capability candidates for a problem query.
13
13
  *
14
+ * The API returns a `{ data: CapabilityCandidateDto[] }` envelope; HttpClient
15
+ * unwraps `.data` by default (B185), so this resolves to the bare array — the
16
+ * return type must reflect the unwrapped shape, not the wire envelope, or
17
+ * callers destructure a non-existent `.data` off an array and crash.
18
+ *
14
19
  * @param query — Problem description (used for empty-query guard + reason text).
15
20
  * @param embedding — Pre-computed query vector (B106: API does not embed).
16
21
  * @param context — Optional task context (taskType/domain) for ranking boost.
@@ -1 +1 @@
1
- {"version":3,"file":"capability.client.js","sourceRoot":"","sources":["../../../src/clients/agent/capability.client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,MAAM,OAAO,qBAAqB;IACV;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,KAKb;QACG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,uBAAuB,EAAE,KAAK,CAAC,CAAA;IACpF,CAAC;CACJ"}
1
+ {"version":3,"file":"capability.client.js","sourceRoot":"","sources":["../../../src/clients/agent/capability.client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,MAAM,OAAO,qBAAqB;IACV;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CAAC,KAKb;QACG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,uBAAuB,EAAE,KAAK,CAAC,CAAA;IACnF,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
- import type { AgentDto, AgentSummaryDto } from '@beacon-build/core';
1
+ import type { AgentDto, AgentSummaryDto, ActiveAgentSessionDto } from '@beacon-build/core';
2
2
  import type { OpsApiClient } from '../../transport/ops-api-client.js';
3
3
  export interface AffinityResult {
4
4
  agentId: string;
@@ -21,6 +21,13 @@ export declare class AgentsOpsClient {
21
21
  create(alias: string, project: string): Promise<AgentSummaryDto>;
22
22
  upsert(alias: string, project: string): Promise<AgentSummaryDto>;
23
23
  listActive(): Promise<AgentSummaryDto[]>;
24
+ /**
25
+ * F320: one row per ACTIVE session (env/client/cwd) — GET /agents/active-sessions.
26
+ * THROWS on transport/API error (does not swallow) so callers can distinguish a real
27
+ * failure from "no active sessions" — e.g. agent_status's best-effort fallback to the
28
+ * per-agent list (INV-F320-3) only fires when this rejects.
29
+ */
30
+ listActiveSessions(): Promise<ActiveAgentSessionDto[]>;
24
31
  listAliasesByProject(project: string): Promise<string[]>;
25
32
  resolveAffinity(project: string, cwd?: string): Promise<AffinityResult | null>;
26
33
  rename(agentId: string, alias: string): Promise<void>;
@@ -32,9 +39,23 @@ export declare class AgentsOpsClient {
32
39
  sessionId: string;
33
40
  sessionKey: string;
34
41
  } | null>;
35
- activeSession(alias: string, project: string): Promise<{
42
+ /**
43
+ * Resolve the active session for an agent (GET /api/v1/agents/active-session).
44
+ *
45
+ * F328/AC-1/AC-4: when `opts.claudeSessionId` (CLAUDE_CODE_SESSION_ID) is given, the
46
+ * endpoint resolves via the F216 external-id map FIRST (`externalSessionIds.claude`),
47
+ * independent of cwd and robust to one agent owning multiple sessions. `opts.cwd`
48
+ * stays a back-compat fallback (worktree affinity). Returns the session's denormalized
49
+ * env/client (F322) so the capture pipeline can stamp them onto conversation rows.
50
+ */
51
+ activeSession(alias: string, project: string, opts?: {
52
+ cwd?: string;
53
+ claudeSessionId?: string;
54
+ }): Promise<{
36
55
  agentId: string;
37
56
  sessionId: string;
57
+ env?: 'local' | 'cloud' | null;
58
+ client?: 'claude' | 'opencode' | null;
38
59
  } | null>;
39
60
  /**
40
61
  * Issue a scoped agent JWT (POST /api/v1/agent-token).
@@ -1 +1 @@
1
- {"version":3,"file":"agents-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,eAAe;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAExC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAO3C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAY9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IASzE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAKhE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAKhE,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAQxC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKxD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAO9E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM/D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,gBAAgB,CAClB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAWtD,aAAa,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAWzD;;;;;;;;;;OAUG;IACG,UAAU,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAahD,oDAAoD;IAC9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD"}
1
+ {"version":3,"file":"agents-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,16 @@ export class AgentsOpsClient {
46
46
  .catch(() => null);
47
47
  return res?.data ?? [];
48
48
  }
49
+ /**
50
+ * F320: one row per ACTIVE session (env/client/cwd) — GET /agents/active-sessions.
51
+ * THROWS on transport/API error (does not swallow) so callers can distinguish a real
52
+ * failure from "no active sessions" — e.g. agent_status's best-effort fallback to the
53
+ * per-agent list (INV-F320-3) only fires when this rejects.
54
+ */
55
+ async listActiveSessions() {
56
+ const res = await this.api.get('/api/v1/agents/active-sessions');
57
+ return res.data ?? [];
58
+ }
49
59
  async listAliasesByProject(project) {
50
60
  const agents = await this.list(project).catch(() => []);
51
61
  return agents.map((a) => a.alias).filter((a) => !!a);
@@ -89,9 +99,23 @@ export class AgentsOpsClient {
89
99
  return null;
90
100
  }
91
101
  }
92
- async activeSession(alias, project) {
102
+ /**
103
+ * Resolve the active session for an agent (GET /api/v1/agents/active-session).
104
+ *
105
+ * F328/AC-1/AC-4: when `opts.claudeSessionId` (CLAUDE_CODE_SESSION_ID) is given, the
106
+ * endpoint resolves via the F216 external-id map FIRST (`externalSessionIds.claude`),
107
+ * independent of cwd and robust to one agent owning multiple sessions. `opts.cwd`
108
+ * stays a back-compat fallback (worktree affinity). Returns the session's denormalized
109
+ * env/client (F322) so the capture pipeline can stamp them onto conversation rows.
110
+ */
111
+ async activeSession(alias, project, opts) {
93
112
  try {
94
- const res = await this.api.get(`/api/v1/agents/active-session?alias=${encodeURIComponent(alias)}&project=${encodeURIComponent(project)}`);
113
+ const params = new URLSearchParams({ alias, project });
114
+ if (opts?.cwd)
115
+ params.set('cwd', opts.cwd);
116
+ if (opts?.claudeSessionId)
117
+ params.set('claudeSessionId', opts.claudeSessionId);
118
+ const res = await this.api.get(`/api/v1/agents/active-session?${params.toString()}`);
95
119
  return res.data;
96
120
  }
97
121
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"agents-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,25 @@ export declare class OpsDbClient {
17
17
  private sse;
18
18
  constructor(api: OpsApiClient, apiKey: string);
19
19
  stats(): Promise<Record<string, unknown>>;
20
+ /**
21
+ * Run a read-only SQL query (SELECT/WITH/EXPLAIN) with positional params.
22
+ * Backs the remote path of project-db's db_query/tables/schema/count/sample (F327).
23
+ */
24
+ query(sql: string, params?: unknown[]): Promise<{
25
+ rows: Record<string, unknown>[];
26
+ truncated: boolean;
27
+ }>;
28
+ /**
29
+ * Run a write statement (INSERT/UPDATE/DELETE) server-side with positional params.
30
+ * Backs the remote path of project-db's db_execute (F327 AC-2). The server enforces the
31
+ * safety model: SELECT is rejected, DDL is prod-guarded, and DML against prod/staging
32
+ * requires `confirm=true`. Returns the number of affected rows.
33
+ */
34
+ execute(sql: string, params?: unknown[], opts?: {
35
+ confirm?: boolean;
36
+ }): Promise<{
37
+ rowsAffected: number;
38
+ }>;
20
39
  migrate(opts: DbMigrateOptions): SseStreamResult;
21
40
  seed(opts: DbSeedOptions): SseStreamResult;
22
41
  reset(opts: DbResetOptions): SseStreamResult;
@@ -1 +1 @@
1
- {"version":3,"file":"ops-db.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-db.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACvB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,IAAI,CAAA;CAChB;AAED,qBAAa,WAAW;IAIhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,GAAG,CAAW;gBAGD,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM;IAQ7B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI/C,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe;IAIhD,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe;IAM1C,KAAK,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe;IAItC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhC,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGzE"}
1
+ {"version":3,"file":"ops-db.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-db.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACvB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,IAAI,CAAA;CAChB;AAED,qBAAa,WAAW;IAIhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,GAAG,CAAW;gBAGD,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM;IAQ7B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI/C;;;OAGG;IACG,KAAK,CACP,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACnB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAOnE;;;;;OAKG;IACG,OAAO,CACT,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe;IAIhD,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe;IAM1C,KAAK,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe;IAItC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhC,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGzE"}
@@ -14,6 +14,24 @@ export class OpsDbClient {
14
14
  async stats() {
15
15
  return this.api.get('/api/v1/ops/db/stats');
16
16
  }
17
+ /**
18
+ * Run a read-only SQL query (SELECT/WITH/EXPLAIN) with positional params.
19
+ * Backs the remote path of project-db's db_query/tables/schema/count/sample (F327).
20
+ */
21
+ async query(sql, params) {
22
+ const res = await this.api.post('/api/v1/ops/db/query', { sql, params });
23
+ return res.data;
24
+ }
25
+ /**
26
+ * Run a write statement (INSERT/UPDATE/DELETE) server-side with positional params.
27
+ * Backs the remote path of project-db's db_execute (F327 AC-2). The server enforces the
28
+ * safety model: SELECT is rejected, DDL is prod-guarded, and DML against prod/staging
29
+ * requires `confirm=true`. Returns the number of affected rows.
30
+ */
31
+ async execute(sql, params, opts) {
32
+ const res = await this.api.post('/api/v1/ops/db/execute', { sql, params, confirm: opts?.confirm });
33
+ return res.data;
34
+ }
17
35
  migrate(opts) {
18
36
  return this.sse.stream('POST', '/ops/db/migrate', opts.handler);
19
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ops-db.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-db.client.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,GAGZ,MAAM,+BAA+B,CAAA;AAgBtC,MAAM,OAAO,WAAW;IAIC;IACA;IAJb,GAAG,CAAW;IAEtB,YACqB,GAAiB,EACjB,MAAc;QADd,QAAG,GAAH,GAAG,CAAc;QACjB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;YACzB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE;SACrD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAA0B,sBAAsB,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,CAAC,IAAsB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAC,IAAmB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;SAC5B,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,IAAoB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAY,2BAA2B,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAuC,iCAAiC,CAAC,CAAA;IAChG,CAAC;CACJ"}
1
+ {"version":3,"file":"ops-db.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-db.client.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,GAGZ,MAAM,+BAA+B,CAAA;AAgBtC,MAAM,OAAO,WAAW;IAIC;IACA;IAJb,GAAG,CAAW;IAEtB,YACqB,GAAiB,EACjB,MAAc;QADd,QAAG,GAAH,GAAG,CAAc;QACjB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;YACzB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE;SACrD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAA0B,sBAAsB,CAAC,CAAA;IACxE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CACP,GAAW,EACX,MAAkB;QAElB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAE5B,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAC,IAAI,CAAA;IACnB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CACT,GAAW,EACX,MAAkB,EAClB,IAA4B;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC3B,wBAAwB,EACxB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAC1C,CAAA;QACD,OAAO,GAAG,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,OAAO,CAAC,IAAsB;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAC,IAAmB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;SAC5B,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,IAAoB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAY,2BAA2B,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAuC,iCAAiC,CAAC,CAAA;IAChG,CAAC;CACJ"}
@@ -18,5 +18,19 @@ export declare class OpsLogsClient {
18
18
  private readonly api;
19
19
  constructor(api: OpsApiClient);
20
20
  search(filter?: LogSearchFilter): Promise<LogEntry[]>;
21
+ /**
22
+ * GET /ops/logs/server — tail the remote API host's own filesystem log for a server
23
+ * (F327 AC-4). Returns raw lines; the caller parses them with its own log parser, so the
24
+ * result is identical to the local-file path.
25
+ */
26
+ serverLogs(opts: {
27
+ service: string;
28
+ lines?: number;
29
+ grep?: string;
30
+ }): Promise<{
31
+ service: string;
32
+ lines: string[];
33
+ truncated: boolean;
34
+ }>;
21
35
  }
22
36
  //# sourceMappingURL=ops-logs.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ops-logs.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-logs.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAExC,MAAM,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAWlE"}
1
+ {"version":3,"file":"ops-logs.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-logs.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAExC,MAAM,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAY/D;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CASxE"}
@@ -20,5 +20,19 @@ export class OpsLogsClient {
20
20
  const qs = params.toString();
21
21
  return this.api.get(`/api/v1/ops/logs${qs ? `?${qs}` : ''}`);
22
22
  }
23
+ /**
24
+ * GET /ops/logs/server — tail the remote API host's own filesystem log for a server
25
+ * (F327 AC-4). Returns raw lines; the caller parses them with its own log parser, so the
26
+ * result is identical to the local-file path.
27
+ */
28
+ async serverLogs(opts) {
29
+ const params = new URLSearchParams({ service: opts.service });
30
+ if (opts.lines != null)
31
+ params.set('lines', String(opts.lines));
32
+ if (opts.grep)
33
+ params.set('grep', opts.grep);
34
+ const res = await this.api.get(`/api/v1/ops/logs/server?${params.toString()}`);
35
+ return res.data;
36
+ }
23
37
  }
24
38
  //# sourceMappingURL=ops-logs.client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ops-logs.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-logs.client.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,aAAa;IACO;IAA7B,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD,KAAK,CAAC,MAAM,CAAC,SAA0B,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACtD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAa,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;CACJ"}
1
+ {"version":3,"file":"ops-logs.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-logs.client.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,aAAa;IACO;IAA7B,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD,KAAK,CAAC,MAAM,CAAC,SAA0B,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACtD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAa,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,IAIhB;QACG,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAE3B,2BAA2B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAClD,OAAO,GAAG,CAAC,IAAI,CAAA;IACnB,CAAC;CACJ"}
@@ -7,10 +7,24 @@ export interface QueueStats {
7
7
  failed: number;
8
8
  delayed: number;
9
9
  }
10
+ export interface RedisInfo {
11
+ version?: string;
12
+ uptimeSeconds: number;
13
+ connectedClients: number;
14
+ usedMemoryHuman?: string;
15
+ dbsize: number;
16
+ }
17
+ export interface MqStats {
18
+ redis: RedisInfo | null;
19
+ queues: QueueStats[];
20
+ /** Set when Redis health could not be read (queues are still returned best-effort). */
21
+ error?: string;
22
+ }
10
23
  export declare class OpsMqClient {
11
24
  private readonly api;
12
25
  constructor(api: OpsApiClient);
13
- stats(): Promise<QueueStats[]>;
26
+ /** GET /ops/mq/stats → Redis health + job counts for all known queues (F327 AC-5). */
27
+ stats(): Promise<MqStats>;
14
28
  drain(queueName: string): Promise<void>;
15
29
  retryFailed(queueName: string): Promise<{
16
30
  retried: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ops-mq.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-mq.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAExC,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI9B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAKrE"}
1
+ {"version":3,"file":"ops-mq.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-mq.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACpB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,WAAW;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C,sFAAsF;IAChF,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAQzB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAKrE"}
@@ -3,8 +3,10 @@ export class OpsMqClient {
3
3
  constructor(api) {
4
4
  this.api = api;
5
5
  }
6
+ /** GET /ops/mq/stats → Redis health + job counts for all known queues (F327 AC-5). */
6
7
  async stats() {
7
- return this.api.get('/api/v1/ops/mq/stats');
8
+ const res = await this.api.get('/api/v1/ops/mq/stats');
9
+ return { ...res.data, ...(res.error ? { error: res.error } : {}) };
8
10
  }
9
11
  async drain(queueName) {
10
12
  await this.api.post(`/api/v1/ops/mq/${encodeURIComponent(queueName)}/drain`);
@@ -1 +1 @@
1
- {"version":3,"file":"ops-mq.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-mq.client.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,WAAW;IACS;IAA7B,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,sBAAsB,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAChB,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,eAAe,CACjE,CAAA;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"ops-mq.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-mq.client.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,WAAW;IACS;IAA7B,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD,sFAAsF;IACtF,KAAK,CAAC,KAAK;QACP,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAG3B,sBAAsB,CAAC,CAAA;QAC1B,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAChB,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,eAAe,CACjE,CAAA;IACL,CAAC;CACJ"}
@@ -21,6 +21,7 @@ export declare class OpsNorthflankClient {
21
21
  private readonly apiKey;
22
22
  private sse;
23
23
  constructor(api: OpsApiClient, apiKey: string);
24
+ /** GET /ops/services → this env's Northflank services with deployment status (F327 AC-5). */
24
25
  listServices(): Promise<ServiceInfo[]>;
25
26
  getService(serviceId: string): Promise<ServiceInfo | null>;
26
27
  restartService(serviceId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ops-northflank.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-northflank.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACvB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,mBAAmB;IAIxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,GAAG,CAAW;gBAGD,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM;IAQ7B,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAItC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU1D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe;IASrD,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe;IAOtC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAGjE"}
1
+ {"version":3,"file":"ops-northflank.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/ops-northflank.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACvB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,mBAAmB;IAIxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,GAAG,CAAW;gBAGD,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM;IAQnC,6FAA6F;IACvF,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKtC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU1D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe;IASrD,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe;IAOtC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAGjE"}
@@ -11,8 +11,10 @@ export class OpsNorthflankClient {
11
11
  getAuthHeader: async () => `Bearer ${this.apiKey}`,
12
12
  });
13
13
  }
14
+ /** GET /ops/services → this env's Northflank services with deployment status (F327 AC-5). */
14
15
  async listServices() {
15
- return this.api.get('/api/v1/ops/services');
16
+ const res = await this.api.get('/api/v1/ops/services');
17
+ return res.data;
16
18
  }
17
19
  async getService(serviceId) {
18
20
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ops-northflank.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-northflank.client.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,GAGZ,MAAM,+BAA+B,CAAA;AAqBtC,MAAM,OAAO,mBAAmB;IAIP;IACA;IAJb,GAAG,CAAW;IAEtB,YACqB,GAAiB,EACjB,MAAc;QADd,QAAG,GAAH,GAAG,CAAc;QACjB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;YACzB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE;SACrD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgB,sBAAsB,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAC9B,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CACrB,wBAAwB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC1D,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QAClC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IACxF,CAAC;IAED,UAAU,CAAC,IAAwB;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAClB,KAAK,EACL,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAC/D,IAAI,CAAC,OAAO,CACf,CAAA;IACL,CAAC;IAED,MAAM,CAAC,IAAmB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE;YAC1D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAsC,kBAAkB,CAAC,CAAA;IAChF,CAAC;CACJ"}
1
+ {"version":3,"file":"ops-northflank.client.js","sourceRoot":"","sources":["../../../src/clients/ops/ops-northflank.client.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,GAGZ,MAAM,+BAA+B,CAAA;AAqBtC,MAAM,OAAO,mBAAmB;IAIP;IACA;IAJb,GAAG,CAAW;IAEtB,YACqB,GAAiB,EACjB,MAAc;QADd,QAAG,GAAH,GAAG,CAAc;QACjB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;YACzB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE;SACrD,CAAC,CAAA;IACN,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,YAAY;QACd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAA0B,sBAAsB,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAC9B,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CACrB,wBAAwB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC1D,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QAClC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IACxF,CAAC;IAED,UAAU,CAAC,IAAwB;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAClB,KAAK,EACL,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAC/D,IAAI,CAAC,OAAO,CACf,CAAA;IACL,CAAC;IAED,MAAM,CAAC,IAAmB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE;YAC1D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAsC,kBAAkB,CAAC,CAAA;IAChF,CAAC;CACJ"}