@thinkrun/cli 0.1.29 → 0.1.31

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 (44) hide show
  1. package/README.md +25 -0
  2. package/dist/bin/thinkrun.js +5 -0
  3. package/dist/bin/thinkrun.js.map +1 -1
  4. package/dist/shared/audit-state.d.ts +32 -0
  5. package/dist/shared/audit-state.js +99 -0
  6. package/dist/shared/local-audit-sync.d.ts +12 -0
  7. package/dist/shared/local-audit-sync.js +38 -0
  8. package/dist/shared/sensitive-result-redaction.d.ts +1 -0
  9. package/dist/shared/sensitive-result-redaction.js +112 -0
  10. package/dist/src/adapters/local.d.ts +8 -0
  11. package/dist/src/adapters/local.d.ts.map +1 -1
  12. package/dist/src/adapters/local.js +260 -32
  13. package/dist/src/adapters/local.js.map +1 -1
  14. package/dist/src/commands/actions.d.ts.map +1 -1
  15. package/dist/src/commands/actions.js +26 -5
  16. package/dist/src/commands/actions.js.map +1 -1
  17. package/dist/src/commands/analyze.d.ts +0 -1
  18. package/dist/src/commands/analyze.d.ts.map +1 -1
  19. package/dist/src/commands/analyze.js +1 -10
  20. package/dist/src/commands/analyze.js.map +1 -1
  21. package/dist/src/commands/audit.d.ts +4 -0
  22. package/dist/src/commands/audit.d.ts.map +1 -0
  23. package/dist/src/commands/audit.js +101 -0
  24. package/dist/src/commands/audit.js.map +1 -0
  25. package/dist/src/commands/doctor.d.ts +4 -0
  26. package/dist/src/commands/doctor.d.ts.map +1 -1
  27. package/dist/src/commands/doctor.js +17 -0
  28. package/dist/src/commands/doctor.js.map +1 -1
  29. package/dist/src/commands/sessions.d.ts +93 -0
  30. package/dist/src/commands/sessions.d.ts.map +1 -0
  31. package/dist/src/commands/sessions.js +354 -0
  32. package/dist/src/commands/sessions.js.map +1 -0
  33. package/dist/src/config/store.d.ts.map +1 -1
  34. package/dist/src/config/store.js +42 -5
  35. package/dist/src/config/store.js.map +1 -1
  36. package/dist/src/session/cli-session-sync.d.ts +10 -2
  37. package/dist/src/session/cli-session-sync.d.ts.map +1 -1
  38. package/dist/src/session/cli-session-sync.js +68 -28
  39. package/dist/src/session/cli-session-sync.js.map +1 -1
  40. package/dist/src/shared/api-helpers.d.ts +12 -0
  41. package/dist/src/shared/api-helpers.d.ts.map +1 -0
  42. package/dist/src/shared/api-helpers.js +20 -0
  43. package/dist/src/shared/api-helpers.js.map +1 -0
  44. package/package.json +9 -7
package/README.md CHANGED
@@ -77,6 +77,28 @@ Use `thinkrun doctor` anytime to verify endpoint mode, health, bridge status, an
77
77
  When changing CLI behavior in this repository, use the agent DX release checklist in [docs/AGENT_CLI_DX_CHECKLIST.md](../../docs/AGENT_CLI_DX_CHECKLIST.md).
78
78
  Parity-sensitive CLI/MCP screenshot and observation claims are backed by [docs/mcp-cli-parity-evidence.md](../../docs/mcp-cli-parity-evidence.md).
79
79
 
80
+ ## Local Audit Mode
81
+
82
+ Audit mode is a local-only capture toggle for attached Chromium tabs. When enabled, ThinkRun attempts an extra screenshot after each state-changing action so the Activity Feed and session detail page show an audit trail without requiring manual `screenshot` calls.
83
+
84
+ ```bash
85
+ thinkrun tabs
86
+ thinkrun attach <tabId>
87
+ thinkrun audit on
88
+ thinkrun navigate "https://example.com"
89
+ thinkrun click "a.more"
90
+ thinkrun audit status
91
+ thinkrun audit off
92
+ ```
93
+
94
+ Rules:
95
+
96
+ - `thinkrun audit on|off|status` operates on the current attached local tab
97
+ - audit mode only applies to local attached-tab sessions, not cloud sessions
98
+ - observation commands (`extract`, `evaluate`, `snapshot`, `url`, `title`, `html`, `console`, `network`, `wait`) do not trigger audit screenshots
99
+ - screenshots are fire-and-forget best effort; browser actions do not fail just because audit capture fails
100
+ - explicit precedence is: `--audit` attach flag > `THINKRUN_AUDIT` env var > stored per-tab toggle
101
+
80
102
  ## AI Agent Workflow
81
103
 
82
104
  The `snapshot` command returns an accessibility tree — ideal for AI agents that need to understand page structure without screenshots:
@@ -104,6 +126,7 @@ thinkrun cloud stop
104
126
  | `cloud artifacts` | List session artifacts (screenshots, logs, actions) |
105
127
  | `cloud use <id>` | Switch active session |
106
128
  | `doctor` | Diagnose endpoint/auth/session setup |
129
+ | `audit on|off|status` | Enable, disable, or inspect local audit mode for the attached tab |
107
130
 
108
131
  #### Cloud Start Options
109
132
 
@@ -137,6 +160,8 @@ thinkrun forward
137
160
 
138
161
  Use `--mode local` or `--mode cloud` to override persisted context for a single command.
139
162
 
163
+ `thinkrun attach <tabId> --audit` enables audit mode immediately for that attached local tab.
164
+
140
165
  ### Interaction
141
166
 
142
167
  | Command | Description |
@@ -12,11 +12,13 @@ import { createConfigCommand } from '../src/commands/config.js';
12
12
  import { createCloudCommand } from '../src/commands/cloud.js';
13
13
  import { createCacheCommand } from '../src/commands/cache.js';
14
14
  import { createDoctorCommand } from '../src/commands/doctor.js';
15
+ import { createAuditCommand } from '../src/commands/audit.js';
15
16
  import { createResetConnectionCommand } from '../src/commands/reset-connection.js';
16
17
  import { createInstallCommand } from '../src/commands/install.js';
17
18
  import { createSessionDebugCommand } from '../src/commands/session-debug.js';
18
19
  import { createSetupCommand } from '../src/commands/setup.js';
19
20
  import { createAnalyzeCommand } from '../src/commands/analyze.js';
21
+ import { createSessionsCommand } from '../src/commands/sessions.js';
20
22
  import { createReleaseCommand } from '../src/commands/release.js';
21
23
  import { createAgentInitCommand } from '../src/commands/agent-init.js';
22
24
  import { createNavigateCommand, createClickCommand, createClickAtCommand, createTypeCommand, createFillCommand, createScrollCommand, createWaitCommand, createWaitForTextCommand, createHoverCommand, createSelectCommand, createPressCommand, createBackCommand, createForwardCommand, createResumeCommand, createSnapshotCommand, createScreenshotCommand, createExtractCommand, createEvaluateCommand, createDialogCommand, createConsoleCommand, createNetworkCommand, createTabsCommand, createNewTabCommand, createCloseTabCommand, createAttachCommand, createUrlCommand, createTitleCommand, createHtmlCommand, createClearLogsCommand, createSwitchTabCommand, createFocusCommand, createNewWindowCommand, createTaskCommand, createTaskStatusCommand, createTaskCancelCommand, } from '../src/commands/actions.js';
@@ -58,6 +60,7 @@ program.addCommand(createConfigCommand());
58
60
  program.addCommand(createCloudCommand());
59
61
  program.addCommand(createCacheCommand());
60
62
  program.addCommand(createDoctorCommand());
63
+ program.addCommand(createAuditCommand());
61
64
  program.addCommand(createResetConnectionCommand());
62
65
  program.addCommand(createInstallCommand());
63
66
  program.addCommand(createSessionDebugCommand());
@@ -109,6 +112,8 @@ program.addCommand(createTaskStatusCommand());
109
112
  program.addCommand(createTaskCancelCommand());
110
113
  // Recording analysis
111
114
  program.addCommand(createAnalyzeCommand());
115
+ // Session + recording listing
116
+ program.addCommand(createSessionsCommand());
112
117
  // On SIGINT (Ctrl-C) or SIGTERM (kill/Docker/systemd), send a best-effort
113
118
  // local-close to the activity feed so the session is marked failed rather
114
119
  // than left in a running/orphaned state. Uses synchronous spawnSync inside
@@ -1 +1 @@
1
- {"version":3,"file":"thinkrun.js","sourceRoot":"","sources":["../../bin/thinkrun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thinkrun.js","sourceRoot":"","sources":["../../bin/thinkrun.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,sBAAsB;IAC7B,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;KAC5C,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,sBAAsB,EAAE,EAAE,OAAO,CAAC,CAChD,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAC/D,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;AAE7D,OAAO,CAAC,WAAW,CACjB,OAAO,EACP,WAAW;IACX,8BAA8B;IAC9B,kCAAkC,CACnC,CAAC;AAEF,oEAAoE;AACpE,0EAA0E;AAC1E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;AACnD,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAEhD,kBAAkB;AAClB,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,UAAU;AACV,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAE/C,cAAc;AACd,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAE5C,2BAA2B;AAC3B,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,iBAAiB;AACjB,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAE7C,0CAA0C;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,YAAY;AACZ,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAExC,iBAAiB;AACjB,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAE7C,+CAA+C;AAC/C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAE9C,qBAAqB;AACrB,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,8BAA8B;AAC9B,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAE5C,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAI,+BAA+B;AAC1F,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,wCAAwC;AAEnG,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface TabAuditState {
2
+ tabId: string;
3
+ enabled: boolean;
4
+ updatedAt: string;
5
+ explicit?: boolean;
6
+ }
7
+
8
+ export type AuditStateSource = 'flag' | 'env' | 'stored' | 'default';
9
+
10
+ export interface ResolveTabAuditStateArgs {
11
+ tabId?: string | number;
12
+ flagEnabled?: boolean;
13
+ envValue?: string | undefined;
14
+ }
15
+
16
+ export interface ResolvedTabAuditState {
17
+ enabled: boolean;
18
+ source: AuditStateSource;
19
+ stored?: TabAuditState | undefined;
20
+ }
21
+
22
+ export function getTabAuditStateFilePath(tabId: string | number): string;
23
+ export function parseAuditPreference(value: string | undefined): boolean | undefined;
24
+ export function readTabAuditState(tabId: string | number): TabAuditState | undefined;
25
+ export function writeTabAuditState(
26
+ tabId: string | number,
27
+ enabled: boolean,
28
+ updatedAt?: string,
29
+ options?: { explicit?: boolean },
30
+ ): TabAuditState;
31
+ export function clearTabAuditState(tabId: string | number): void;
32
+ export function resolveTabAuditState(args?: ResolveTabAuditStateArgs): ResolvedTabAuditState;
@@ -0,0 +1,99 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+
5
+ function getLockDir() {
6
+ const configuredDir = process.env.THINKRUN_LOCK_DIR ?? process.env.THINKBROWSE_LOCK_DIR;
7
+ if (configuredDir) return configuredDir;
8
+
9
+ const thinkrunDir = join(homedir(), '.thinkrun');
10
+ const thinkbrowseDir = join(homedir(), '.thinkbrowse');
11
+ if (!existsSync(thinkrunDir) && existsSync(thinkbrowseDir)) {
12
+ return thinkbrowseDir;
13
+ }
14
+ return thinkrunDir;
15
+ }
16
+
17
+ function sanitizeTabId(tabId) {
18
+ return String(tabId).replace(/[^a-zA-Z0-9_-]/g, '_') || 'unknown';
19
+ }
20
+
21
+ export function getTabAuditStateFilePath(tabId) {
22
+ return join(getLockDir(), 'audit-states', `${sanitizeTabId(tabId)}.json`);
23
+ }
24
+
25
+ export function parseAuditPreference(value) {
26
+ if (typeof value !== 'string') return undefined;
27
+ const normalized = value.trim().toLowerCase();
28
+ if (!normalized) return undefined;
29
+ if (['1', 'true', 'on', 'yes'].includes(normalized)) return true;
30
+ if (['0', 'false', 'off', 'no'].includes(normalized)) return false;
31
+ return undefined;
32
+ }
33
+
34
+ export function readTabAuditState(tabId) {
35
+ try {
36
+ const filePath = getTabAuditStateFilePath(tabId);
37
+ if (!existsSync(filePath)) return undefined;
38
+ const data = JSON.parse(readFileSync(filePath, 'utf-8'));
39
+ if (
40
+ !data
41
+ || typeof data !== 'object'
42
+ || typeof data.enabled !== 'boolean'
43
+ || typeof data.updatedAt !== 'string'
44
+ ) {
45
+ return undefined;
46
+ }
47
+ return {
48
+ tabId: String(tabId),
49
+ enabled: data.enabled,
50
+ updatedAt: data.updatedAt,
51
+ explicit: data.explicit === true,
52
+ };
53
+ } catch {
54
+ return undefined;
55
+ }
56
+ }
57
+
58
+ export function writeTabAuditState(tabId, enabled, updatedAt = new Date().toISOString(), options = {}) {
59
+ const state = {
60
+ tabId: String(tabId),
61
+ enabled: Boolean(enabled),
62
+ updatedAt,
63
+ ...(options.explicit === true ? { explicit: true } : {}),
64
+ };
65
+ const filePath = getTabAuditStateFilePath(tabId);
66
+ mkdirSync(join(getLockDir(), 'audit-states'), { recursive: true });
67
+ writeFileSync(filePath, JSON.stringify(state, null, 2), 'utf-8');
68
+ return state;
69
+ }
70
+
71
+ export function clearTabAuditState(tabId) {
72
+ try {
73
+ rmSync(getTabAuditStateFilePath(tabId), { force: true });
74
+ } catch {
75
+ // best-effort cleanup
76
+ }
77
+ }
78
+
79
+ export function resolveTabAuditState({
80
+ tabId,
81
+ flagEnabled = false,
82
+ envValue = process.env.THINKRUN_AUDIT,
83
+ } = {}) {
84
+ const stored = tabId !== undefined && tabId !== null ? readTabAuditState(tabId) : undefined;
85
+ if (flagEnabled) {
86
+ return { enabled: true, source: 'flag', stored };
87
+ }
88
+
89
+ const envEnabled = parseAuditPreference(envValue);
90
+ if (envEnabled !== undefined) {
91
+ return { enabled: envEnabled, source: 'env', stored };
92
+ }
93
+
94
+ if (stored) {
95
+ return { enabled: stored.enabled, source: 'stored', stored };
96
+ }
97
+
98
+ return { enabled: false, source: 'default', stored };
99
+ }
@@ -0,0 +1,12 @@
1
+ export interface PatchLocalAuditStateArgs {
2
+ sessionId: string;
3
+ enabled: boolean;
4
+ updatedAt?: string | undefined;
5
+ apiKey: string;
6
+ apiUrl?: string | undefined;
7
+ fetchFn?: typeof fetch | undefined;
8
+ timeoutMs?: number | undefined;
9
+ }
10
+
11
+ export function unrefAbortSignal(ms: number): AbortSignal;
12
+ export function patchLocalAuditState(args: PatchLocalAuditStateArgs): Promise<boolean>;
@@ -0,0 +1,38 @@
1
+ export function unrefAbortSignal(ms) {
2
+ const controller = new AbortController();
3
+ const timer = setTimeout(() => controller.abort(), ms);
4
+ if (typeof timer?.unref === 'function') timer.unref();
5
+ return controller.signal;
6
+ }
7
+
8
+ export function patchLocalAuditState({
9
+ sessionId,
10
+ enabled,
11
+ updatedAt,
12
+ apiKey,
13
+ apiUrl = 'https://api.thinkrun.ai',
14
+ fetchFn = globalThis.fetch,
15
+ timeoutMs = 10_000,
16
+ } = {}) {
17
+ if (typeof sessionId !== 'string' || sessionId.length === 0) return Promise.resolve(false);
18
+ if (typeof apiKey !== 'string' || apiKey.length === 0) return Promise.resolve(false);
19
+ if (typeof apiUrl !== 'string' || !apiUrl.startsWith('https://')) return Promise.resolve(false);
20
+
21
+ try {
22
+ return fetchFn(`${apiUrl}/api/sessions/${sessionId}/local-audit`, {
23
+ method: 'PATCH',
24
+ headers: { 'Content-Type': 'application/json', 'x-api-key': apiKey },
25
+ body: JSON.stringify({
26
+ enabled: Boolean(enabled),
27
+ ...(typeof updatedAt === 'string' ? { updatedAt } : {}),
28
+ }),
29
+ signal: unrefAbortSignal(timeoutMs),
30
+ }).then((res) => {
31
+ const delivered = res.ok;
32
+ res.body?.cancel?.().catch(() => {});
33
+ return delivered;
34
+ }).catch(() => false);
35
+ } catch {
36
+ return Promise.resolve(false);
37
+ }
38
+ }
@@ -0,0 +1 @@
1
+ export declare function redactSensitiveResult(value: unknown): unknown;
@@ -0,0 +1,112 @@
1
+ const SENSITIVE_RESULT_PATTERNS = [
2
+ {
3
+ key: /^pass(?:word)?$/i,
4
+ json: /("pass(?:word)?"\s*:\s*)"[^"]*"/gi,
5
+ quotedDouble: /(pass(?:word)?\s*[=:]\s*)"[^"]*"/gi,
6
+ quotedSingle: /(pass(?:word)?\s*[=:]\s*)'[^']*'/gi,
7
+ plain: /(pass(?:word)?\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
8
+ },
9
+ {
10
+ key: /^[a-z0-9_-]*token$/i,
11
+ json: /("[a-z0-9_-]*token"\s*:\s*)"[^"]*"/gi,
12
+ quotedDouble: /([a-z0-9_-]*token\s*[=:]\s*)"[^"]*"/gi,
13
+ quotedSingle: /([a-z0-9_-]*token\s*[=:]\s*)'[^']*'/gi,
14
+ plain: /([a-z0-9_-]*token\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
15
+ },
16
+ {
17
+ key: /^[a-z0-9_-]*secret$/i,
18
+ json: /("[a-z0-9_-]*secret"\s*:\s*)"[^"]*"/gi,
19
+ quotedDouble: /([a-z0-9_-]*secret\s*[=:]\s*)"[^"]*"/gi,
20
+ quotedSingle: /([a-z0-9_-]*secret\s*[=:]\s*)'[^']*'/gi,
21
+ plain: /([a-z0-9_-]*secret\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
22
+ },
23
+ {
24
+ key: /^[a-z0-9_-]*credential$/i,
25
+ json: /("[a-z0-9_-]*credential"\s*:\s*)"[^"]*"/gi,
26
+ quotedDouble: /([a-z0-9_-]*credential\s*[=:]\s*)"[^"]*"/gi,
27
+ quotedSingle: /([a-z0-9_-]*credential\s*[=:]\s*)'[^']*'/gi,
28
+ plain: /([a-z0-9_-]*credential\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
29
+ },
30
+ {
31
+ key: /^[a-z0-9_-]*api[-_]?key$/i,
32
+ json: /("[a-z0-9_-]*api[-_]?key"\s*:\s*)"[^"]*"/gi,
33
+ quotedDouble: /([a-z0-9_-]*api[-_]?key\s*[=:]\s*)"[^"]*"/gi,
34
+ quotedSingle: /([a-z0-9_-]*api[-_]?key\s*[=:]\s*)'[^']*'/gi,
35
+ plain: /([a-z0-9_-]*api[-_]?key\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
36
+ },
37
+ {
38
+ key: /^auth(?:orization)?$/i,
39
+ json: /("auth(?:orization)?"\s*:\s*)"[^"]*"/gi,
40
+ quotedDouble: /(auth(?:orization)?\s*[=:]\s*)"[^"]*"/gi,
41
+ quotedSingle: /(auth(?:orization)?\s*[=:]\s*)'[^']*'/gi,
42
+ plain: /(auth(?:orization)?\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
43
+ },
44
+ {
45
+ key: /^set-cookie$/i,
46
+ json: /("set-cookie"\s*:\s*)"[^"]*"/gi,
47
+ quotedDouble: /(set-cookie\s*[=:]\s*)"[^"]*"/gi,
48
+ quotedSingle: /(set-cookie\s*[=:]\s*)'[^']*'/gi,
49
+ plain: /(set-cookie\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
50
+ },
51
+ {
52
+ key: /^cookie$/i,
53
+ json: /("cookie"\s*:\s*)"[^"]*"/gi,
54
+ quotedDouble: /(cookie\s*[=:]\s*)"[^"]*"/gi,
55
+ quotedSingle: /(cookie\s*[=:]\s*)'[^']*'/gi,
56
+ plain: /(cookie\s*[=:]\s*)(?!["'])([^,;&\n]+?)(?=(?:\s+[a-z0-9_-]+\s*[=:])|[,;&]|$)/gi,
57
+ },
58
+ ];
59
+
60
+ function isSensitiveResultKey(key) {
61
+ return SENSITIVE_RESULT_PATTERNS.some((pattern) => pattern.key.test(key));
62
+ }
63
+
64
+ function isPlainObject(value) {
65
+ if (!value || typeof value !== 'object') return false;
66
+ const prototype = Object.getPrototypeOf(value);
67
+ return prototype === Object.prototype || prototype === null;
68
+ }
69
+
70
+ export function redactSensitiveResult(value) {
71
+ if (typeof value === 'string') {
72
+ let redacted = value;
73
+ for (const pattern of SENSITIVE_RESULT_PATTERNS) {
74
+ redacted = redacted
75
+ .replace(pattern.json, '$1"[REDACTED]"')
76
+ .replace(pattern.quotedDouble, '$1"[REDACTED]"')
77
+ .replace(pattern.quotedSingle, "$1'[REDACTED]'")
78
+ .replace(pattern.plain, '$1[REDACTED]');
79
+ }
80
+ return redacted;
81
+ }
82
+
83
+ if (Array.isArray(value)) {
84
+ return value.map((entry) => redactSensitiveResult(entry));
85
+ }
86
+
87
+ if (isPlainObject(value)) {
88
+ const hasSensitiveHeaderName = ['name', 'key', 'header'].some((field) => (
89
+ typeof value[field] === 'string' && isSensitiveResultKey(value[field])
90
+ ));
91
+ return Object.fromEntries(
92
+ Object.entries(value).map(([key, entry]) => {
93
+ const lowerKey = key.toLowerCase();
94
+ const redactByContext = hasSensitiveHeaderName && ['value', 'text', 'content'].includes(lowerKey);
95
+ return [
96
+ key,
97
+ isSensitiveResultKey(key) || redactByContext ? '[REDACTED]' : redactSensitiveResult(entry),
98
+ ];
99
+ }),
100
+ );
101
+ }
102
+
103
+ if (value && typeof value === 'object' && typeof value.toJSON === 'function') {
104
+ try {
105
+ return redactSensitiveResult(value.toJSON());
106
+ } catch {
107
+ return value;
108
+ }
109
+ }
110
+
111
+ return value;
112
+ }
@@ -14,6 +14,7 @@ export declare class LocalAdapter implements BrowserAdapter {
14
14
  private defaultTimeout;
15
15
  private validatedTabCache;
16
16
  private syncedNetworkRequestMarkers;
17
+ private auditScreenshotChains;
17
18
  private readonly TAB_CACHE_TTL_MS;
18
19
  /** Injected fetch function — allows unit tests to intercept all HTTP calls. */
19
20
  private readonly fetchFn;
@@ -36,6 +37,13 @@ export declare class LocalAdapter implements BrowserAdapter {
36
37
  private syncAction;
37
38
  private getNetworkRequestSyncKey;
38
39
  private getNetworkRequestId;
40
+ private getScreenshotMimeType;
41
+ private buildAuditScreenshotCaption;
42
+ private runSerializedAuditScreenshotCapture;
43
+ private captureAuditScreenshot;
44
+ private triggerAuditScreenshot;
45
+ private createAuditActionId;
46
+ private buildAuditCaptureDetails;
39
47
  private getNetworkRequestMarker;
40
48
  private getNetworkRequestTimestamp;
41
49
  private findNetworkRequestMarkerIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/adapters/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/adapters/local.ts"],"names":[],"mappings":"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"}