@jungjaehoon/mama-os 0.61.1 → 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.
- package/CHANGELOG.md +77 -0
- package/README.md +1 -1
- package/dist/api/drive-actions.d.ts +12 -0
- package/dist/api/drive-actions.d.ts.map +1 -0
- package/dist/api/drive-actions.js +322 -0
- package/dist/api/drive-actions.js.map +1 -0
- package/dist/api/report-source-actions.d.ts.map +1 -1
- package/dist/api/report-source-actions.js +15 -7
- package/dist/api/report-source-actions.js.map +1 -1
- package/dist/api/security-events.d.ts +26 -0
- package/dist/api/security-events.d.ts.map +1 -1
- package/dist/api/security-events.js +107 -24
- package/dist/api/security-events.js.map +1 -1
- package/dist/api/source-actions.d.ts.map +1 -1
- package/dist/api/source-actions.js +7 -7
- package/dist/api/source-actions.js.map +1 -1
- package/dist/api/stored-source-reader.d.ts.map +1 -1
- package/dist/api/stored-source-reader.js +3 -0
- package/dist/api/stored-source-reader.js.map +1 -1
- package/dist/api/trello-actions.d.ts +15 -0
- package/dist/api/trello-actions.d.ts.map +1 -0
- package/dist/api/trello-actions.js +130 -0
- package/dist/api/trello-actions.js.map +1 -0
- package/dist/api/work-actions.d.ts +1 -0
- package/dist/api/work-actions.d.ts.map +1 -1
- package/dist/api/work-actions.js +20 -11
- package/dist/api/work-actions.js.map +1 -1
- package/dist/backfill/format.d.ts +105 -0
- package/dist/backfill/format.d.ts.map +1 -0
- package/dist/backfill/format.js +314 -0
- package/dist/backfill/format.js.map +1 -0
- package/dist/backfill/push.d.ts +63 -0
- package/dist/backfill/push.d.ts.map +1 -0
- package/dist/backfill/push.js +221 -0
- package/dist/backfill/push.js.map +1 -0
- package/dist/cli/commands/backfill.d.ts +12 -0
- package/dist/cli/commands/backfill.d.ts.map +1 -0
- package/dist/cli/commands/backfill.js +67 -0
- package/dist/cli/commands/backfill.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +2 -1
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +55 -14
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.js +18 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runtime/claude-caller-config.d.ts +6 -1
- package/dist/cli/runtime/claude-caller-config.d.ts.map +1 -1
- package/dist/cli/runtime/claude-caller-config.js +3 -1
- package/dist/cli/runtime/claude-caller-config.js.map +1 -1
- package/dist/connectors/framework/gws-utils.d.ts +6 -3
- package/dist/connectors/framework/gws-utils.d.ts.map +1 -1
- package/dist/connectors/framework/gws-utils.js +35 -6
- package/dist/connectors/framework/gws-utils.js.map +1 -1
- package/dist/connectors/index.d.ts +0 -1
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +1 -5
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/slack/index.d.ts +2 -0
- package/dist/connectors/slack/index.d.ts.map +1 -1
- package/dist/connectors/slack/index.js +83 -39
- package/dist/connectors/slack/index.js.map +1 -1
- package/dist/connectors/trello/action-line.d.ts +13 -0
- package/dist/connectors/trello/action-line.d.ts.map +1 -0
- package/dist/connectors/trello/action-line.js +118 -0
- package/dist/connectors/trello/action-line.js.map +1 -0
- package/dist/connectors/trello/actions.d.ts +27 -0
- package/dist/connectors/trello/actions.d.ts.map +1 -0
- package/dist/connectors/trello/actions.js +35 -0
- package/dist/connectors/trello/actions.js.map +1 -0
- package/dist/connectors/trello/api.d.ts +23 -0
- package/dist/connectors/trello/api.d.ts.map +1 -0
- package/dist/connectors/trello/api.js +102 -0
- package/dist/connectors/trello/api.js.map +1 -0
- package/dist/connectors/trello/index.d.ts +63 -31
- package/dist/connectors/trello/index.d.ts.map +1 -1
- package/dist/connectors/trello/index.js +165 -246
- package/dist/connectors/trello/index.js.map +1 -1
- package/dist/gateways/discord.d.ts +4 -0
- package/dist/gateways/discord.d.ts.map +1 -1
- package/dist/gateways/discord.js +7 -3
- package/dist/gateways/discord.js.map +1 -1
- package/dist/gateways/slack.d.ts +4 -0
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +7 -3
- package/dist/gateways/slack.js.map +1 -1
- package/dist/gateways/telegram-message-ledger.d.ts +5 -0
- package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
- package/dist/gateways/telegram-message-ledger.js +8 -1
- package/dist/gateways/telegram-message-ledger.js.map +1 -1
- package/dist/gateways/telegram.d.ts +4 -0
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +7 -5
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/replay/replay-source-catalog.d.ts.map +1 -1
- package/dist/replay/replay-source-catalog.js +5 -45
- package/dist/replay/replay-source-catalog.js.map +1 -1
- package/dist/replay/trello-import.d.ts +1 -8
- package/dist/replay/trello-import.d.ts.map +1 -1
- package/dist/replay/trello-import.js +16 -103
- package/dist/replay/trello-import.js.map +1 -1
- package/dist/runtime/action-surface.d.ts +4 -1
- package/dist/runtime/action-surface.d.ts.map +1 -1
- package/dist/runtime/action-surface.js +27 -1
- package/dist/runtime/action-surface.js.map +1 -1
- package/dist/runtime/config.d.ts +5 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +10 -1
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/connectors.d.ts +0 -1
- package/dist/runtime/connectors.d.ts.map +1 -1
- package/dist/runtime/connectors.js +0 -1
- package/dist/runtime/connectors.js.map +1 -1
- package/dist/runtime/egress-proxy.d.ts +15 -0
- package/dist/runtime/egress-proxy.d.ts.map +1 -0
- package/dist/runtime/egress-proxy.js +176 -0
- package/dist/runtime/egress-proxy.js.map +1 -0
- package/dist/runtime/native-session.d.ts +7 -0
- package/dist/runtime/native-session.d.ts.map +1 -1
- package/dist/runtime/native-session.js +8 -1
- package/dist/runtime/native-session.js.map +1 -1
- package/dist/runtime/outbound-attempts.d.ts +18 -0
- package/dist/runtime/outbound-attempts.d.ts.map +1 -0
- package/dist/runtime/outbound-attempts.js +98 -0
- package/dist/runtime/outbound-attempts.js.map +1 -0
- package/dist/runtime/owner-runtime.d.ts +9 -0
- package/dist/runtime/owner-runtime.d.ts.map +1 -1
- package/dist/runtime/owner-runtime.js +8 -0
- package/dist/runtime/owner-runtime.js.map +1 -1
- package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
- package/dist/runtime/owner-system-prompt.js +6 -1
- package/dist/runtime/owner-system-prompt.js.map +1 -1
- package/dist/runtime/record-orders.d.ts.map +1 -1
- package/dist/runtime/record-orders.js +33 -13
- package/dist/runtime/record-orders.js.map +1 -1
- package/dist/runtime/stimulus-delivery.d.ts +15 -0
- package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
- package/dist/runtime/stimulus-delivery.js +29 -2
- package/dist/runtime/stimulus-delivery.js.map +1 -1
- package/package.json +2 -2
- package/public/viewer/log-viewer.html +7 -3
- package/public/viewer/operator/operator.css +1 -1
- package/public/viewer/operator/operator.js +5428 -5685
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,83 @@ 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
|
+
|
|
80
|
+
## [0.61.2] - 2026-10-01
|
|
81
|
+
|
|
82
|
+
No changes. The release tag follows the mama-os version, and v0.61.1 exists; this release ships
|
|
83
|
+
plugin 2.1.5.
|
|
84
|
+
|
|
8
85
|
## [0.61.1] - 2026-10-01
|
|
9
86
|
|
|
10
87
|
### Fixed
|
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.
|
|
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;
|
|
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:
|
|
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
|
|
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:
|
|
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) ||
|
|
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
|