@jungjaehoon/mama-os 0.61.2 → 0.62.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 (145) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +1 -1
  3. package/dist/api/drive-actions.d.ts +12 -0
  4. package/dist/api/drive-actions.d.ts.map +1 -0
  5. package/dist/api/drive-actions.js +322 -0
  6. package/dist/api/drive-actions.js.map +1 -0
  7. package/dist/api/report-source-actions.d.ts.map +1 -1
  8. package/dist/api/report-source-actions.js +15 -7
  9. package/dist/api/report-source-actions.js.map +1 -1
  10. package/dist/api/security-events.d.ts +26 -0
  11. package/dist/api/security-events.d.ts.map +1 -1
  12. package/dist/api/security-events.js +107 -24
  13. package/dist/api/security-events.js.map +1 -1
  14. package/dist/api/source-actions.d.ts.map +1 -1
  15. package/dist/api/source-actions.js +7 -7
  16. package/dist/api/source-actions.js.map +1 -1
  17. package/dist/api/stored-source-reader.d.ts.map +1 -1
  18. package/dist/api/stored-source-reader.js +3 -0
  19. package/dist/api/stored-source-reader.js.map +1 -1
  20. package/dist/api/trello-actions.d.ts +15 -0
  21. package/dist/api/trello-actions.d.ts.map +1 -0
  22. package/dist/api/trello-actions.js +130 -0
  23. package/dist/api/trello-actions.js.map +1 -0
  24. package/dist/api/work-actions.d.ts +1 -0
  25. package/dist/api/work-actions.d.ts.map +1 -1
  26. package/dist/api/work-actions.js +20 -11
  27. package/dist/api/work-actions.js.map +1 -1
  28. package/dist/backfill/format.d.ts +105 -0
  29. package/dist/backfill/format.d.ts.map +1 -0
  30. package/dist/backfill/format.js +314 -0
  31. package/dist/backfill/format.js.map +1 -0
  32. package/dist/backfill/push.d.ts +63 -0
  33. package/dist/backfill/push.d.ts.map +1 -0
  34. package/dist/backfill/push.js +221 -0
  35. package/dist/backfill/push.js.map +1 -0
  36. package/dist/cli/commands/backfill.d.ts +12 -0
  37. package/dist/cli/commands/backfill.d.ts.map +1 -0
  38. package/dist/cli/commands/backfill.js +67 -0
  39. package/dist/cli/commands/backfill.js.map +1 -0
  40. package/dist/cli/commands/daemon.d.ts +2 -1
  41. package/dist/cli/commands/daemon.d.ts.map +1 -1
  42. package/dist/cli/commands/daemon.js +55 -14
  43. package/dist/cli/commands/daemon.js.map +1 -1
  44. package/dist/cli/commands/init.d.ts.map +1 -1
  45. package/dist/cli/commands/init.js +4 -2
  46. package/dist/cli/commands/init.js.map +1 -1
  47. package/dist/cli/index.js +18 -1
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/cli/runtime/claude-caller-config.d.ts +6 -1
  50. package/dist/cli/runtime/claude-caller-config.d.ts.map +1 -1
  51. package/dist/cli/runtime/claude-caller-config.js +3 -1
  52. package/dist/cli/runtime/claude-caller-config.js.map +1 -1
  53. package/dist/connectors/framework/gws-utils.d.ts +6 -3
  54. package/dist/connectors/framework/gws-utils.d.ts.map +1 -1
  55. package/dist/connectors/framework/gws-utils.js +35 -6
  56. package/dist/connectors/framework/gws-utils.js.map +1 -1
  57. package/dist/connectors/index.d.ts +0 -1
  58. package/dist/connectors/index.d.ts.map +1 -1
  59. package/dist/connectors/index.js +1 -5
  60. package/dist/connectors/index.js.map +1 -1
  61. package/dist/connectors/slack/index.d.ts +2 -0
  62. package/dist/connectors/slack/index.d.ts.map +1 -1
  63. package/dist/connectors/slack/index.js +83 -39
  64. package/dist/connectors/slack/index.js.map +1 -1
  65. package/dist/connectors/trello/action-line.d.ts +13 -0
  66. package/dist/connectors/trello/action-line.d.ts.map +1 -0
  67. package/dist/connectors/trello/action-line.js +118 -0
  68. package/dist/connectors/trello/action-line.js.map +1 -0
  69. package/dist/connectors/trello/actions.d.ts +27 -0
  70. package/dist/connectors/trello/actions.d.ts.map +1 -0
  71. package/dist/connectors/trello/actions.js +35 -0
  72. package/dist/connectors/trello/actions.js.map +1 -0
  73. package/dist/connectors/trello/api.d.ts +23 -0
  74. package/dist/connectors/trello/api.d.ts.map +1 -0
  75. package/dist/connectors/trello/api.js +102 -0
  76. package/dist/connectors/trello/api.js.map +1 -0
  77. package/dist/connectors/trello/index.d.ts +63 -31
  78. package/dist/connectors/trello/index.d.ts.map +1 -1
  79. package/dist/connectors/trello/index.js +165 -246
  80. package/dist/connectors/trello/index.js.map +1 -1
  81. package/dist/gateways/discord.d.ts +4 -0
  82. package/dist/gateways/discord.d.ts.map +1 -1
  83. package/dist/gateways/discord.js +7 -3
  84. package/dist/gateways/discord.js.map +1 -1
  85. package/dist/gateways/slack.d.ts +4 -0
  86. package/dist/gateways/slack.d.ts.map +1 -1
  87. package/dist/gateways/slack.js +7 -3
  88. package/dist/gateways/slack.js.map +1 -1
  89. package/dist/gateways/telegram-message-ledger.d.ts +5 -0
  90. package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
  91. package/dist/gateways/telegram-message-ledger.js +8 -1
  92. package/dist/gateways/telegram-message-ledger.js.map +1 -1
  93. package/dist/gateways/telegram.d.ts +4 -0
  94. package/dist/gateways/telegram.d.ts.map +1 -1
  95. package/dist/gateways/telegram.js +7 -5
  96. package/dist/gateways/telegram.js.map +1 -1
  97. package/dist/replay/replay-source-catalog.d.ts.map +1 -1
  98. package/dist/replay/replay-source-catalog.js +5 -45
  99. package/dist/replay/replay-source-catalog.js.map +1 -1
  100. package/dist/replay/trello-import.d.ts +1 -8
  101. package/dist/replay/trello-import.d.ts.map +1 -1
  102. package/dist/replay/trello-import.js +16 -103
  103. package/dist/replay/trello-import.js.map +1 -1
  104. package/dist/runtime/action-surface.d.ts +4 -1
  105. package/dist/runtime/action-surface.d.ts.map +1 -1
  106. package/dist/runtime/action-surface.js +27 -1
  107. package/dist/runtime/action-surface.js.map +1 -1
  108. package/dist/runtime/config.d.ts +5 -0
  109. package/dist/runtime/config.d.ts.map +1 -1
  110. package/dist/runtime/config.js +10 -1
  111. package/dist/runtime/config.js.map +1 -1
  112. package/dist/runtime/connectors.d.ts +0 -1
  113. package/dist/runtime/connectors.d.ts.map +1 -1
  114. package/dist/runtime/connectors.js +0 -1
  115. package/dist/runtime/connectors.js.map +1 -1
  116. package/dist/runtime/egress-proxy.d.ts +15 -0
  117. package/dist/runtime/egress-proxy.d.ts.map +1 -0
  118. package/dist/runtime/egress-proxy.js +176 -0
  119. package/dist/runtime/egress-proxy.js.map +1 -0
  120. package/dist/runtime/native-session.d.ts +7 -0
  121. package/dist/runtime/native-session.d.ts.map +1 -1
  122. package/dist/runtime/native-session.js +8 -1
  123. package/dist/runtime/native-session.js.map +1 -1
  124. package/dist/runtime/outbound-attempts.d.ts +18 -0
  125. package/dist/runtime/outbound-attempts.d.ts.map +1 -0
  126. package/dist/runtime/outbound-attempts.js +98 -0
  127. package/dist/runtime/outbound-attempts.js.map +1 -0
  128. package/dist/runtime/owner-runtime.d.ts +9 -0
  129. package/dist/runtime/owner-runtime.d.ts.map +1 -1
  130. package/dist/runtime/owner-runtime.js +8 -0
  131. package/dist/runtime/owner-runtime.js.map +1 -1
  132. package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
  133. package/dist/runtime/owner-system-prompt.js +6 -1
  134. package/dist/runtime/owner-system-prompt.js.map +1 -1
  135. package/dist/runtime/record-orders.d.ts.map +1 -1
  136. package/dist/runtime/record-orders.js +33 -13
  137. package/dist/runtime/record-orders.js.map +1 -1
  138. package/dist/runtime/stimulus-delivery.d.ts +15 -0
  139. package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
  140. package/dist/runtime/stimulus-delivery.js +29 -2
  141. package/dist/runtime/stimulus-delivery.js.map +1 -1
  142. package/package.json +2 -2
  143. package/public/viewer/log-viewer.html +7 -3
  144. package/public/viewer/operator/operator.css +1 -1
  145. package/public/viewer/operator/operator.js +5428 -5685
package/CHANGELOG.md CHANGED
@@ -5,6 +5,78 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.62.0] - 2026-10-04
9
+
10
+ ### Added
11
+
12
+ - Backfill a past period as complete history. `mama-backfill/1` is the file format: items with
13
+ their revisions in event order, each citing exact source ids, plus mentions grouped by their
14
+ stated reason, links (also from existing work), lessons and wiki pages. `mama backfill <file>`
15
+ pushes it through the owner actions with the daemon stopped and judges nothing; a re-run replays
16
+ its receipts and an edited payload is refused. Existing work is bounded by its first revision
17
+ after the period, so the later state stays current and `asOf` inside the period answers from the
18
+ backfill. An existing wiki page takes section appends and keeps its evidence ids. Guide:
19
+ `docs/guides/backfill.md`.
20
+ - `work.revise` accepts `appliesUntil`. The full report picks changes by event time and names
21
+ work written since the last report about earlier events as late recordings. `mama replay` takes
22
+ `--from` and `--until`.
23
+ - `trello.read` reads the current Trello state live, from granted boards only: boards, cards (a
24
+ board or one list), one card with its checklists and latest actions, and search. A Trello failure
25
+ is the action's error; nothing is cached.
26
+ - `drive.read` reads Google Drive live (shared drives, browse, a file by id or link, name and
27
+ content search) and `drive.download` saves a file, exporting Docs, Sheets and Slides as docx,
28
+ xlsx and pptx. Nothing from Drive is stored and the Drive change poller stays off.
29
+ - `delivery.interrupted_notice` gives the notice for a cut-off owner turn in the owner's words.
30
+ Telegram posts it as a reply to the message that was cut off.
31
+ - `agent.max_turn_ms` (default one hour) caps a whole owner turn.
32
+
33
+ ### Changed
34
+
35
+ - An owner turn stops only after `agent.timeout` without progress (default ten minutes) or after
36
+ `agent.max_turn_ms` in all. Every CLI event and tool use counts as progress, and a long turn keeps
37
+ its session. It used to stop at a fixed limit however much work was still arriving.
38
+ - The Trello poller stores every board action, in the same shape as the history import, instead of
39
+ diffing open-card snapshots, so comments, attachments, due dates, copies and archive reach the
40
+ history. An edited comment becomes its action's next revision. The snapshot state file is gone.
41
+ - Imported Trello actions are stored as readable lines (card, list, who and what changed) instead
42
+ of their JSON. The whole action stays in the item metadata. The replay window shows the stored
43
+ line.
44
+ - `source.recent` and `source.search` return the stored channel value as `channel` and the
45
+ display name as `channelName`, so a listed channel works as the `source.search` filter.
46
+ - The record procedure takes a work item's project name from its project page, written exactly; a
47
+ channel says where a message came from, not which project it is about.
48
+ - The Tasks page is read-only, as the viewer is: it shows the status as a badge and says that
49
+ changes go through the messenger.
50
+ - Memory search keeps short Korean, Japanese and Chinese words, counts and acronyms, and ranks the
51
+ strongest text match first (mama-core 5.3.0). It used to drop every word of two characters or
52
+ fewer and list its weakest text matches first.
53
+
54
+ ### Fixed
55
+
56
+ - Slack replies posted only in a thread are collected. The poll read the channel history only, so
57
+ such a reply was never seen. It now reads replies for threads with new activity in the last 30
58
+ days.
59
+ - An input parked uncertain after a cut-off turn is closed once what it still owes has a place:
60
+ an answer delivered for an owner message, a record check for a delta or record order, the next
61
+ report tick for a report. It used to stay claimed forever.
62
+ - Startup no longer fails when `delivery.interrupted_notice` is set. Route validation treated
63
+ every key under `delivery` as a messenger route.
64
+
65
+ ### Security
66
+
67
+ - An agent's outbound attempts reach the owner as security alerts. A shell call that runs a
68
+ network client, a package install, a git remote operation, an upload tool or an HTTP or socket
69
+ script is recorded in `security-events.jsonl` and sent through `delivery.security_alerts`. A send
70
+ always alerts; plain attempts within a minute are grouped. Nothing is blocked, and web fetch and
71
+ web search stay open.
72
+ - The Claude owner's shell sandbox network goes through a proxy MAMA runs on loopback. It refuses
73
+ every connection, as the empty sandbox allowlist did, and reports each attempt with its
74
+ destination. A direct socket that ignores the proxy is still refused by the sandbox, and only the
75
+ command layer reports it: a script that opens a socket inside its own code, behind a command that
76
+ is not recognised as outbound, reaches the owner with no alert and no destination.
77
+ `docs/rebuild/egress-alerts.md` lists each path out and what sees it.
78
+ - `mama replay` and `mama backfill` refuse to run while the daemon runs.
79
+
8
80
  ## [0.61.2] - 2026-10-01
9
81
 
10
82
  No changes. The release tag follows the mama-os version, and v0.61.1 exists; this release ships
package/README.md CHANGED
@@ -4,7 +4,7 @@ One owner agent on Claude or Codex watches connected work, keeps task revisions
4
4
  answers on Telegram, publishes reports and a board, and recalls corrections.
5
5
  [mama-core](../mama-core/README.md) supplies the shared engine.
6
6
 
7
- Current manifest: **0.61.2**. This README describes the unreleased `rebuild/owner-flow` source.
7
+ Current manifest: **0.62.0**. This README describes the unreleased `rebuild/owner-flow` source.
8
8
  Use [owner setup](../../docs/start/owner-setup.md) with Node.js 22.13+ and pnpm.
9
9
 
10
10
  ## Start and operate
@@ -0,0 +1,12 @@
1
+ import type { ActionRegistration } from '@jungjaehoon/mama-core';
2
+ import { type GwsCallOptions } from '../connectors/framework/gws-utils.js';
3
+ export type GwsCall = (args: string[], options?: GwsCallOptions) => Promise<unknown>;
4
+ export interface DriveActionPorts {
5
+ ownerPrincipalId: string;
6
+ downloadsDir?: string;
7
+ gws?: GwsCall;
8
+ }
9
+ /** A file or folder id from an id or a Drive/Docs link, as cards and messages carry them. */
10
+ export declare function driveId(value: unknown, field: string): string;
11
+ export declare function driveActionRegistrations(ports: DriveActionPorts): ActionRegistration[];
12
+ //# sourceMappingURL=drive-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive-actions.d.ts","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGzF,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiDD,6FAA6F;AAC7F,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAa7D;AAsBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAwQtF"}
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.driveId = driveId;
4
+ exports.driveActionRegistrations = driveActionRegistrations;
5
+ /**
6
+ * drive.read and drive.download — Google Drive read live, as Kagemusha reads it, through the gws
7
+ * CLI the calendar connector already uses (its keyring holds the credential). Nothing from Drive
8
+ * is stored. Drive has no running connector (its change poller stays off), so the gws call is a
9
+ * port instead of the connector registry trello.read uses.
10
+ */
11
+ const node_fs_1 = require("node:fs");
12
+ const node_path_1 = require("node:path");
13
+ const gws_utils_js_1 = require("../connectors/framework/gws-utils.js");
14
+ const attachment_actions_js_1 = require("./attachment-actions.js");
15
+ const FOLDER = 'application/vnd.google-apps.folder';
16
+ const FILE_FIELDS = 'id,name,mimeType,size,modifiedTime,lastModifyingUser(displayName),parents,driveId,webViewLink';
17
+ const LIST_BUFFER = 16 * 1024 * 1024;
18
+ const BROWSE_MAX = 100;
19
+ // alt=media refuses Google-native files (fileNotDownloadable); these three export to the formats
20
+ // the file readers in help("files") open.
21
+ const EXPORTS = {
22
+ 'application/vnd.google-apps.document': {
23
+ mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
24
+ extension: '.docx',
25
+ },
26
+ 'application/vnd.google-apps.spreadsheet': {
27
+ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
28
+ extension: '.xlsx',
29
+ },
30
+ 'application/vnd.google-apps.presentation': {
31
+ mimeType: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
32
+ extension: '.pptx',
33
+ },
34
+ };
35
+ function invalid(message) {
36
+ const error = new Error(message);
37
+ error.name = 'invalid_input';
38
+ return error;
39
+ }
40
+ function ownerOnly(action, access, ownerPrincipalId) {
41
+ if (access.principalId === ownerPrincipalId)
42
+ return;
43
+ const error = new Error(`${action} is the owner's; no Drive grant exists for other principals`);
44
+ error.name = 'drive_out_of_scope';
45
+ throw error;
46
+ }
47
+ /** A file or folder id from an id or a Drive/Docs link, as cards and messages carry them. */
48
+ function driveId(value, field) {
49
+ if (typeof value !== 'string' || value.trim() === '')
50
+ throw invalid(`${field} is required`);
51
+ const text = value.trim();
52
+ if (!text.includes('://')) {
53
+ if (/^[\w-]+$/.test(text))
54
+ return text;
55
+ throw invalid(`${field} must be a Drive id or link`);
56
+ }
57
+ if (/\/d\/e\//.test(text))
58
+ throw invalid(`${field} is a published link, which carries no file id`);
59
+ const found = /\/(?:d|folders)\/([\w-]+)/.exec(text)?.[1] ?? /[?&]id=([\w-]+)/.exec(text)?.[1] ?? null;
60
+ if (found === null)
61
+ throw invalid(`${field} names no Drive file: ${text}`);
62
+ return found;
63
+ }
64
+ /** A free-text value inside a Drive query string literal. */
65
+ function quoted(value) {
66
+ return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
67
+ }
68
+ function fileView(file) {
69
+ return {
70
+ id: file.id,
71
+ name: file.name,
72
+ type: file.mimeType,
73
+ folder: file.mimeType === FOLDER,
74
+ size: file.size === undefined ? null : Number(file.size),
75
+ modified: file.modifiedTime ?? null,
76
+ modifiedBy: file.lastModifyingUser?.displayName ?? null,
77
+ drive: file.driveId ?? null,
78
+ parents: file.parents ?? [],
79
+ link: file.webViewLink ?? null,
80
+ };
81
+ }
82
+ function driveActionRegistrations(ports) {
83
+ const gws = ports.gws ?? gws_utils_js_1.execGwsAsync;
84
+ /**
85
+ * Pages until `max` entries or the end, because Drive may return short or empty pages before
86
+ * the end. `incomplete` is Drive's own incompleteSearch: some drives were not searched.
87
+ */
88
+ const list = async (params, max) => {
89
+ const files = [];
90
+ let incomplete = false;
91
+ let pageToken;
92
+ do {
93
+ const page = (await gws([
94
+ 'drive',
95
+ 'files',
96
+ 'list',
97
+ '--params',
98
+ JSON.stringify({
99
+ ...params,
100
+ pageSize: max - files.length,
101
+ ...(pageToken === undefined ? {} : { pageToken }),
102
+ corpora: 'allDrives',
103
+ supportsAllDrives: true,
104
+ includeItemsFromAllDrives: true,
105
+ fields: `nextPageToken,incompleteSearch,files(${FILE_FIELDS})`,
106
+ }),
107
+ ], { maxBuffer: LIST_BUFFER }));
108
+ files.push(...page.files);
109
+ incomplete ||= page.incompleteSearch === true;
110
+ pageToken = page.nextPageToken;
111
+ } while (pageToken !== undefined && files.length < max);
112
+ return { files, more: pageToken !== undefined, incomplete };
113
+ };
114
+ const metadata = async (id) => (await gws([
115
+ 'drive',
116
+ 'files',
117
+ 'get',
118
+ '--params',
119
+ JSON.stringify({ fileId: id, supportsAllDrives: true, fields: FILE_FIELDS }),
120
+ ]));
121
+ return [
122
+ {
123
+ contract: {
124
+ name: 'drive.read',
125
+ readsConnector: { fixed: 'drive' },
126
+ summary: 'Read Google Drive live. drives lists the shared drives; browse lists a folder (folder: a folder id, a shared drive id, a folder link or "root" for My Drive; path walks subfolders by name; name keeps entries with a word in their name starting with it), at most 100 entries; file reads one file by id or Drive/Docs link (name, type, size, modified time and editor, link); search finds files by name or content across all drives (text; limit up to 50), newest first, with more when further results exist. incomplete means Drive did not search every drive. Nothing is stored; fetch a file with drive.download.',
127
+ inputSchema: {
128
+ type: 'object',
129
+ additionalProperties: false,
130
+ required: ['view'],
131
+ properties: {
132
+ view: { type: 'string', enum: ['drives', 'browse', 'file', 'search'] },
133
+ folder: {
134
+ type: 'string',
135
+ minLength: 1,
136
+ description: 'Folder id, shared drive id, folder link or "root".',
137
+ },
138
+ path: {
139
+ type: 'string',
140
+ minLength: 1,
141
+ description: 'Subfolder names under folder, e.g. "2026/October".',
142
+ },
143
+ name: {
144
+ type: 'string',
145
+ minLength: 1,
146
+ description: 'The start of a word in the entry names (Drive matches word beginnings), e.g. "draft".',
147
+ },
148
+ file: {
149
+ type: 'string',
150
+ minLength: 1,
151
+ description: 'File id or a Drive/Docs link.',
152
+ },
153
+ text: {
154
+ type: 'string',
155
+ minLength: 1,
156
+ description: 'The start of a word in a file name, or words in its content, e.g. "feedback".',
157
+ },
158
+ limit: {
159
+ type: 'integer',
160
+ minimum: 1,
161
+ maximum: 50,
162
+ description: 'Search results; defaults to 20.',
163
+ },
164
+ },
165
+ },
166
+ examples: [
167
+ { title: 'Shared drives', input: { view: 'drives' } },
168
+ { title: 'A file behind a link', input: { view: 'file', file: 'drive-link-or-id' } },
169
+ { title: 'Find by name', input: { view: 'search', text: 'feedback' } },
170
+ ],
171
+ },
172
+ exec: async (input, context) => {
173
+ ownerOnly('drive.read', context.access, ports.ownerPrincipalId);
174
+ const values = input;
175
+ switch (values.view) {
176
+ case 'drives': {
177
+ const drives = [];
178
+ let pageToken;
179
+ do {
180
+ const page = (await gws([
181
+ 'drive',
182
+ 'drives',
183
+ 'list',
184
+ '--params',
185
+ JSON.stringify({
186
+ pageSize: 100,
187
+ ...(pageToken === undefined ? {} : { pageToken }),
188
+ fields: 'nextPageToken,drives(id,name)',
189
+ }),
190
+ ]));
191
+ drives.push(...page.drives);
192
+ pageToken = page.nextPageToken;
193
+ } while (pageToken !== undefined);
194
+ return { drives };
195
+ }
196
+ case 'browse': {
197
+ let folder = driveId(values.folder, 'folder');
198
+ const path = typeof values.path === 'string' ? values.path : undefined;
199
+ for (const segment of (path ?? '').split('/').filter(Boolean)) {
200
+ const { files: found } = await list({
201
+ q: `${quoted(folder)} in parents and name = ${quoted(segment)} and mimeType = '${FOLDER}' and trashed = false`,
202
+ }, 2);
203
+ if (found.length === 0)
204
+ throw invalid(`No folder named "${segment}" in ${folder}`);
205
+ if (found.length > 1) {
206
+ throw invalid(`Two folders named "${segment}" in ${folder} (${found.map((entry) => entry.id).join(', ')}); browse ${folder} and choose one`);
207
+ }
208
+ folder = found[0].id;
209
+ }
210
+ const name = typeof values.name === 'string' ? values.name : undefined;
211
+ const listed = await list({
212
+ q: `${quoted(folder)} in parents and trashed = false${name === undefined ? '' : ` and name contains ${quoted(name)}`}`,
213
+ orderBy: 'folder,name',
214
+ }, BROWSE_MAX + 1);
215
+ if (listed.files.length > BROWSE_MAX) {
216
+ throw invalid(`Folder ${folder} has more than ${BROWSE_MAX} entries; narrow it with name or path`);
217
+ }
218
+ return {
219
+ folder,
220
+ entries: listed.files.map(fileView),
221
+ incomplete: listed.incomplete,
222
+ };
223
+ }
224
+ case 'file':
225
+ return { file: fileView(await metadata(driveId(values.file, 'file'))) };
226
+ case 'search': {
227
+ if (typeof values.text !== 'string')
228
+ throw invalid('drive.read search needs text');
229
+ const text = quoted(values.text);
230
+ const found = await list({
231
+ q: `(name contains ${text} or fullText contains ${text}) and trashed = false`,
232
+ orderBy: 'modifiedTime desc',
233
+ }, values.limit === undefined ? 20 : Number(values.limit));
234
+ return {
235
+ files: found.files.map(fileView),
236
+ more: found.more,
237
+ incomplete: found.incomplete,
238
+ };
239
+ }
240
+ default:
241
+ throw invalid('drive.read view must be drives, browse, file or search');
242
+ }
243
+ },
244
+ },
245
+ {
246
+ contract: {
247
+ name: 'drive.download',
248
+ readsConnector: { fixed: 'drive' },
249
+ summary: 'Fetch one Google Drive file (file: id or Drive/Docs link) into the daemon downloads directory (read-only for you) and return its saved path and size. Google Docs, Sheets and Slides are exported as docx, xlsx and pptx; folders and other Google-native types are refused.',
250
+ inputSchema: {
251
+ type: 'object',
252
+ additionalProperties: false,
253
+ required: ['file'],
254
+ properties: {
255
+ file: {
256
+ type: 'string',
257
+ minLength: 1,
258
+ description: 'File id or a Drive/Docs link.',
259
+ },
260
+ },
261
+ },
262
+ examples: [{ title: 'Fetch a linked file', input: { file: 'drive-link-or-id' } }],
263
+ },
264
+ exec: async (input, context) => {
265
+ ownerOnly('drive.download', context.access, ports.ownerPrincipalId);
266
+ if (!ports.downloadsDir?.trim())
267
+ throw new Error('Downloads directory is not configured');
268
+ const file = await metadata(driveId(input.file, 'file'));
269
+ const exported = EXPORTS[file.mimeType];
270
+ if (exported === undefined && file.mimeType.startsWith('application/vnd.google-apps.')) {
271
+ throw invalid(`${file.name} is a ${file.mimeType}, which drive.download cannot fetch`);
272
+ }
273
+ const targetDir = (0, node_path_1.join)(ports.downloadsDir, 'drive');
274
+ (0, node_fs_1.mkdirSync)(targetDir, { recursive: true, mode: 0o700 });
275
+ const name = exported === undefined || (0, node_path_1.extname)(file.name).toLowerCase() === exported.extension
276
+ ? file.name
277
+ : `${file.name}${exported.extension}`;
278
+ const targetPath = (0, node_path_1.join)(targetDir, `${(0, attachment_actions_js_1.safeFileName)(file.id)}_${(0, attachment_actions_js_1.safeFileName)(name)}`);
279
+ try {
280
+ await gws(exported === undefined
281
+ ? [
282
+ 'drive',
283
+ 'files',
284
+ 'get',
285
+ '--params',
286
+ JSON.stringify({ fileId: file.id, alt: 'media', supportsAllDrives: true }),
287
+ '--output',
288
+ targetPath,
289
+ ]
290
+ : [
291
+ 'drive',
292
+ 'files',
293
+ 'export',
294
+ '--params',
295
+ JSON.stringify({ fileId: file.id, mimeType: exported.mimeType }),
296
+ '--output',
297
+ targetPath,
298
+ ], { timeoutMs: 120_000 });
299
+ const size = (0, node_fs_1.statSync)(targetPath).size;
300
+ // An export has no size of its own to compare; a stored file must arrive whole.
301
+ if (exported === undefined && file.size !== undefined && size !== Number(file.size)) {
302
+ throw new Error(`Downloaded ${file.id} is ${size} bytes; Drive lists ${file.size}`);
303
+ }
304
+ return {
305
+ file: file.id,
306
+ name: file.name,
307
+ type: file.mimeType,
308
+ exportedAs: exported?.mimeType ?? null,
309
+ path: targetPath,
310
+ size,
311
+ };
312
+ }
313
+ catch (error) {
314
+ // A failed, cut-off or short download must not stay where a whole file would be.
315
+ (0, node_fs_1.rmSync)(targetPath, { force: true });
316
+ throw error;
317
+ }
318
+ },
319
+ },
320
+ ];
321
+ }
322
+ //# sourceMappingURL=drive-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive-actions.js","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"report-source-actions.d.ts","sourceRoot":"","sources":["../../src/api/report-source-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAiaF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAE5F"}
1
+ {"version":3,"file":"report-source-actions.d.ts","sourceRoot":"","sources":["../../src/api/report-source-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AA4aF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAE5F"}
@@ -76,7 +76,7 @@ function recentAction(ports) {
76
76
  return {
77
77
  contract: {
78
78
  name: 'source.recent',
79
- summary: 'See which channels changed since a time, then read the ones that matter. Without channels it lists every granted channel that changed: its key, change count and latest line; with channels (keys from that list) it returns their latest perChannel lines with observation refs to open with source.read. since takes epoch milliseconds, an ISO time or a duration such as "24h ago", and defaults to 24 hours. failedConnectors names sources whose last poll failed, so a failure is not read as no change. It reads the stored index, not the live provider; more channels than cap or more than 20,000 changes fails as invalid input, so narrow since.',
79
+ summary: 'See which channels changed since a time, then read the ones that matter. Without channels it lists every granted channel that changed: channel (the stored value source.search filters on), channelName when the source names it, key, change count and latest line; with channels (keys from that list) it returns their latest perChannel lines with observation refs to open with source.read. since takes epoch milliseconds, an ISO time or a duration such as "24h ago", and defaults to 24 hours. failedConnectors names sources whose last poll failed, so a failure is not read as no change. It reads the stored index, not the live provider; more channels than cap or more than 20,000 changes fails as invalid input, so narrow since.',
80
80
  inputSchema: {
81
81
  type: 'object',
82
82
  additionalProperties: false,
@@ -93,7 +93,7 @@ function recentAction(ports) {
93
93
  minItems: 1,
94
94
  maxItems: 10,
95
95
  items: { type: 'string', minLength: 1 },
96
- description: 'Channel keys from the list to read lines from, e.g. ["chat:room-a"].',
96
+ description: 'Channel keys (key, not channel) from the list to read lines from, e.g. ["chat:room-a"].',
97
97
  },
98
98
  perChannel: {
99
99
  type: 'integer',
@@ -147,12 +147,17 @@ function recentAction(ports) {
147
147
  for (const row of visible) {
148
148
  const metadata = decodeMetadata(row.metadata_json);
149
149
  const source = String(row.source_connector);
150
+ // channel is the stored value that grants and source.search filter on; the display name
151
+ // rides beside it, so a listed channel can be passed to source.search as it is.
150
152
  const channelKey = String(row.channel ?? '');
151
- const label = typeof metadata.channelName === 'string' ? metadata.channelName : channelKey || source;
153
+ const channelName = typeof metadata.channelName === 'string' && metadata.channelName !== channelKey
154
+ ? metadata.channelName
155
+ : undefined;
152
156
  const key = `${source}:${channelKey}`;
153
157
  const group = groups.get(key) ?? {
154
158
  source,
155
- channel: label,
159
+ channel: channelKey,
160
+ ...(channelName === undefined ? {} : { channelName }),
156
161
  key,
157
162
  count: 0,
158
163
  latest: null,
@@ -225,24 +230,27 @@ function recentAction(ports) {
225
230
  // The cap bounds the channel list; a read of named channels returns only those.
226
231
  if (requested === null && groups.size > Number(cap))
227
232
  throw invalidInput(`source.recent found changes in ${groups.size} channels, more than cap ${cap}; narrow since or cap`);
228
- const sorted = [...groups.values()].sort((a, b) => a.source.localeCompare(b.source) || a.channel.localeCompare(b.channel));
233
+ const sorted = [...groups.values()].sort((a, b) => a.source.localeCompare(b.source) ||
234
+ (a.channelName ?? a.channel).localeCompare(b.channelName ?? b.channel));
229
235
  return {
230
236
  since: new Date(since).toISOString(),
231
237
  cap: Number(cap),
232
238
  scanned: visible.length,
233
239
  channels: requested === null
234
- ? sorted.map(({ source, channel, key, count, latest }) => ({
240
+ ? sorted.map(({ source, channel, channelName, key, count, latest }) => ({
235
241
  source,
236
242
  channel,
243
+ ...(channelName === undefined ? {} : { channelName }),
237
244
  key,
238
245
  count,
239
246
  latest,
240
247
  }))
241
248
  : sorted
242
249
  .filter((group) => requested.has(group.key))
243
- .map(({ source, channel, key, count, lines }) => ({
250
+ .map(({ source, channel, channelName, key, count, lines }) => ({
244
251
  source,
245
252
  channel,
253
+ ...(channelName === undefined ? {} : { channelName }),
246
254
  key,
247
255
  count,
248
256
  lines,
@@ -1 +1 @@
1
- {"version":3,"file":"report-source-actions.js","sourceRoot":"","sources":["../../src/api/report-source-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-source-actions.js","sourceRoot":"","sources":["../../src/api/report-source-actions.ts"],"names":[],"mappings":"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"}
@@ -20,4 +20,30 @@ export declare function createSecurityEventRecorder(options: SecurityEventOption
20
20
  path: string;
21
21
  record(observed: SecurityEvent): void;
22
22
  };
23
+ /**
24
+ * An agent's outbound attempt, seen and reported, never blocked: a native shell command that opens
25
+ * a network connection (W35), or a connection the shell sandbox's proxy refused (W35.4).
26
+ */
27
+ export interface OutboundAttemptEvent {
28
+ time: string;
29
+ /**
30
+ * `outbound_send` when the command sends data, `outbound_attempt` for another command,
31
+ * `outbound_connect` for a connection the sandbox proxy refused.
32
+ */
33
+ class: 'outbound_attempt' | 'outbound_send' | 'outbound_connect';
34
+ /** The native tool, or `sandbox proxy`. */
35
+ tool: string;
36
+ /** The command as traced (bounded, secrets masked), or the proxy request and destination. */
37
+ summary: string | null;
38
+ /** null when it cannot be known: an encrypted tunnel carries whatever it carries. */
39
+ sendsData: boolean | null;
40
+ /** The run the command came from; the proxy does not know it, the time correlates. */
41
+ modelRunId: string | null;
42
+ /** The tool call's id, `gateway_call_id` of its `tool_traces` row. */
43
+ callId: string | null;
44
+ }
45
+ export declare function createOutboundEventRecorder(options: SecurityEventOptions): {
46
+ path: string;
47
+ record(observed: OutboundAttemptEvent): void;
48
+ };
23
49
  //# sourceMappingURL=security-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-events.d.ts","sourceRoot":"","sources":["../../src/api/security-events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,cAAc,GACd,aAAa,GACb,sBAAsB,GACtB,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,MAAM,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAID,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB;;qBAMpD,aAAa,GAAG,IAAI;EAqDxC"}
1
+ {"version":3,"file":"security-events.d.ts","sourceRoot":"","sources":["../../src/api/security-events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,cAAc,GACd,aAAa,GACb,sBAAsB,GACtB,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,MAAM,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAyCD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB;;qBAMpD,aAAa,GAAG,IAAI;EAmCxC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,CAAC;IACjE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qFAAqF;IACrF,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,sFAAsF;IACtF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sEAAsE;IACtE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAkCD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB;;qBAKpD,oBAAoB,GAAG,IAAI;EA0B/C"}