@agimon-ai/doompi-computer-use 0.0.1-alpha.49 → 0.0.1-alpha.51

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.
@@ -18,6 +18,7 @@ export const COMPUTER_USE_CONFIRMATION_WINDOW_MS = 2 * 60 * 1_000;
18
18
  */
19
19
  export const COMPUTER_USE_ROUTES = {
20
20
  activate: '/activate',
21
+ artifact: '/artifact',
21
22
  agentState: '/agent/state',
22
23
  agentObserve: '/agent/observe',
23
24
  agentAction: '/agent/action',
@@ -35,6 +36,7 @@ export const COMPUTER_USE_WAKE_LIMIT = 1_000_000;
35
36
  export interface ComputerUseArtifactView {
36
37
  readonly artifactId: string;
37
38
  readonly status: 'ready' | 'failed';
39
+ readonly sizeBytes?: number;
38
40
  readonly downloadUrl?: string;
39
41
  readonly previewUrl?: string;
40
42
  readonly actionCount?: number;
@@ -57,7 +59,7 @@ export interface ComputerUseSessionView {
57
59
 
58
60
  export interface ComputerUseActivationRequest {
59
61
  readonly requestId: string;
60
- readonly target: Record<string, unknown>;
62
+ readonly target?: Record<string, unknown>;
61
63
  readonly durationSeconds: number;
62
64
  readonly createdAt: number;
63
65
  readonly confirmationExpiresAt: number;
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseMode-C1r5mG7K.mjs","names":[],"sources":["../src/types/computerUseApi.ts","../src/services/computerToolOutput/index.ts","../src/models/computerUseMode.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-core/packageApi';\n\nexport const API_BASE_PATH = 'computer-use';\nexport const computerUseChannelType = 'computer_use_state';\nexport const COMPUTER_USE_MODE_ID = 'computer-use';\nexport const COMPUTER_USE_STATUS_KEY = 'doom-computer-use';\nexport const COMPUTER_USE_MODE_STATUS_KEY = 'doom-computer-use-mode';\nexport const COMPUTER_USE_MAX_DURATION_MS = 1_800 * 1_000;\nexport const COMPUTER_USE_DEFAULT_DURATION_MS = 300 * 1_000;\nexport const COMPUTER_USE_CONFIRMATION_WINDOW_MS = 2 * 60 * 1_000;\n\n/**\n * Every path this API answers on, below its mount.\n *\n * The typed route table in `./apiRoutes` is built from this, the dispatcher\n * reads that table, and the hub channel addresses the broker with these same\n * strings, so a route cannot move on one side alone.\n */\nexport const COMPUTER_USE_ROUTES = {\n activate: '/activate',\n agentState: '/agent/state',\n agentObserve: '/agent/observe',\n agentAction: '/agent/action',\n agentStop: '/agent/stop',\n hubState: '/hub/state',\n hubActivation: '/hub/activation',\n hubAuthorization: '/hub/authorization',\n hubNext: '/hub/next',\n hubComplete: '/hub/complete',\n hubStop: '/hub/stop',\n} as const;\n\nexport const COMPUTER_USE_WAKE_LIMIT = 1_000_000;\n\nexport interface ComputerUseArtifactView {\n readonly artifactId: string;\n readonly status: 'ready' | 'failed';\n readonly downloadUrl?: string;\n readonly previewUrl?: string;\n readonly actionCount?: number;\n readonly completedAt?: string;\n readonly failure?: { readonly code: string; readonly message: string };\n}\n\nexport interface ComputerUseSessionView {\n readonly sessionId: string;\n readonly revision: number;\n readonly wake: number;\n readonly phase: 'inactive' | 'awaiting_confirmation' | 'activating' | 'active' | 'stopping' | 'failed';\n readonly requestId?: string;\n readonly target?: Record<string, unknown>;\n readonly durationMs?: number;\n readonly expiresAt?: number;\n readonly failure?: { readonly code: string; readonly message: string };\n readonly artifact?: ComputerUseArtifactView;\n}\n\nexport interface ComputerUseActivationRequest {\n readonly requestId: string;\n readonly target: Record<string, unknown>;\n readonly durationSeconds: number;\n readonly createdAt: number;\n readonly confirmationExpiresAt: number;\n readonly caller: DoomApiCaller;\n}\n\nexport interface ComputerUseBrokerRequest {\n readonly id: string;\n readonly operation: 'observe' | 'act';\n readonly payload?: unknown;\n readonly grantId: string;\n readonly sequence?: number;\n}\n\nexport interface ComputerUseChannelPayload {\n readonly state: ComputerUseSessionView;\n readonly targets: readonly Record<string, unknown>[];\n readonly busy?: true;\n}\n\nexport type ComputerUseBrowserCommand = { readonly action: 'status' | 'targets' | 'stop' | 'artifacts' };\n","import type { DoomHeadlessToolResult } from '@agimon-ai/doompi-core/headless';\n\nimport type { ComputerScriptExecutionResult } from '../../types/computerScript';\nimport type { ComputerUseObservation } from '../../types/computerUse';\nimport { ComputerScriptExecutionError } from '../computerScriptRunner';\n\nconst MAX_TEXT_BYTES = 256 * 1024;\nconst MAX_IMAGE_DATA_LENGTH = 8 * 1024 * 1024;\n\nfunction content(value: unknown, observation: ComputerUseObservation): DoomHeadlessToolResult['content'] {\n const text = JSON.stringify(value);\n if (Buffer.byteLength(text) > MAX_TEXT_BYTES) throw new Error('Computer-use text response exceeds the size limit.');\n const screenshot = observation.screenshot;\n if (screenshot && (screenshot.mimeType !== 'image/png' || screenshot.data.length > MAX_IMAGE_DATA_LENGTH)) {\n throw new Error('Computer-use screenshot exceeds the image limit.');\n }\n return [\n { type: 'text', text },\n ...(screenshot ? [{ type: 'image' as const, mimeType: screenshot.mimeType, data: screenshot.data }] : []),\n ];\n}\n\nexport function computerObservationOutput(observation: ComputerUseObservation) {\n return { content: content({ ...observation, screenshot: undefined }, observation), details: observation };\n}\n\nexport function computerScriptOutput(result: ComputerScriptExecutionResult) {\n try {\n return {\n content: content(\n { ...result, observation: { ...result.observation, screenshot: undefined } },\n result.observation,\n ),\n details: result,\n };\n } catch (error) {\n if (result.metrics === undefined) throw error;\n // Formatting happens after the actions complete. Preserve that progress so a caller does not replay them.\n throw new ComputerScriptExecutionError(\n error instanceof Error ? error.message : String(error),\n result.metrics.actions,\n false,\n );\n }\n}\n\nexport function computerScriptFailure(error: unknown) {\n const details = {\n error: (error instanceof Error ? error.message : String(error)).slice(0, 1024),\n ...(error instanceof ComputerScriptExecutionError\n ? {\n completedActions: error.completedActions,\n outcomeUncertain: error.outcomeUncertain,\n }\n : {}),\n };\n return { content: [{ type: 'text' as const, text: JSON.stringify(details) }], details, isError: true };\n}\n","import type { DoomToolRestriction } from '@agimon-ai/doompi-core/toolSurface';\nimport type { MinorModeState } from '@agimon-ai/doompi-minor-mode';\n\nimport { COMPUTER_USE_TOOL_NAMES } from '../constants/computerUse';\nimport type { ComputerUseSessionView } from '../types/computerUseApi';\nexport function modeState(state?: ComputerUseSessionView, enabled = false): MinorModeState {\n const phase = state?.phase ?? 'inactive';\n const running = phase !== 'inactive' && phase !== 'failed';\n const modeEnabled = enabled || running;\n const activation = modeEnabled\n ? phase === 'stopping'\n ? 'deactivating'\n : phase === 'awaiting_confirmation' || phase === 'activating'\n ? 'activating'\n : 'active'\n : 'inactive';\n return {\n activation,\n condition:\n phase === 'awaiting_confirmation'\n ? 'blocked'\n : phase === 'failed'\n ? 'failed'\n : phase === 'activating' || phase === 'stopping'\n ? 'queued'\n : 'ready',\n ...(modeEnabled && phase === 'inactive' ? { detail: 'configure computer use in Activity' } : {}),\n ...(phase === 'awaiting_confirmation' ? { detail: 'awaiting confirmation in Activity' } : {}),\n actions: [\n {\n id: 'activate',\n enabled: !modeEnabled,\n ...(!modeEnabled ? {} : { disabledReason: 'Computer use is already enabled.' }),\n },\n {\n id: 'deactivate',\n enabled: modeEnabled,\n ...(modeEnabled ? {} : { disabledReason: 'Computer use is not enabled.' }),\n },\n { id: 'doctor', enabled: true },\n ],\n };\n}\n\n/**\n * Hides the computer-use tools while the mode is off.\n *\n * The arbiter starts from every registered tool, so an active mode only has to\n * return the list untouched: nothing has to add the tools back.\n */\nexport function computerUseRestriction(active: boolean): DoomToolRestriction {\n const owned = new Set<string>(COMPUTER_USE_TOOL_NAMES);\n return (incoming) => (active ? incoming : incoming.filter((name) => !owned.has(name)));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseMode-KnoOWve4.cjs","names":["ComputerScriptExecutionError","COMPUTER_USE_TOOL_NAMES"],"sources":["../src/types/computerUseApi.ts","../src/services/computerToolOutput/index.ts","../src/models/computerUseMode.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-core/packageApi';\n\nexport const API_BASE_PATH = 'computer-use';\nexport const computerUseChannelType = 'computer_use_state';\nexport const COMPUTER_USE_MODE_ID = 'computer-use';\nexport const COMPUTER_USE_STATUS_KEY = 'doom-computer-use';\nexport const COMPUTER_USE_MODE_STATUS_KEY = 'doom-computer-use-mode';\nexport const COMPUTER_USE_MAX_DURATION_MS = 1_800 * 1_000;\nexport const COMPUTER_USE_DEFAULT_DURATION_MS = 300 * 1_000;\nexport const COMPUTER_USE_CONFIRMATION_WINDOW_MS = 2 * 60 * 1_000;\n\n/**\n * Every path this API answers on, below its mount.\n *\n * The typed route table in `./apiRoutes` is built from this, the dispatcher\n * reads that table, and the hub channel addresses the broker with these same\n * strings, so a route cannot move on one side alone.\n */\nexport const COMPUTER_USE_ROUTES = {\n activate: '/activate',\n agentState: '/agent/state',\n agentObserve: '/agent/observe',\n agentAction: '/agent/action',\n agentStop: '/agent/stop',\n hubState: '/hub/state',\n hubActivation: '/hub/activation',\n hubAuthorization: '/hub/authorization',\n hubNext: '/hub/next',\n hubComplete: '/hub/complete',\n hubStop: '/hub/stop',\n} as const;\n\nexport const COMPUTER_USE_WAKE_LIMIT = 1_000_000;\n\nexport interface ComputerUseArtifactView {\n readonly artifactId: string;\n readonly status: 'ready' | 'failed';\n readonly downloadUrl?: string;\n readonly previewUrl?: string;\n readonly actionCount?: number;\n readonly completedAt?: string;\n readonly failure?: { readonly code: string; readonly message: string };\n}\n\nexport interface ComputerUseSessionView {\n readonly sessionId: string;\n readonly revision: number;\n readonly wake: number;\n readonly phase: 'inactive' | 'awaiting_confirmation' | 'activating' | 'active' | 'stopping' | 'failed';\n readonly requestId?: string;\n readonly target?: Record<string, unknown>;\n readonly durationMs?: number;\n readonly expiresAt?: number;\n readonly failure?: { readonly code: string; readonly message: string };\n readonly artifact?: ComputerUseArtifactView;\n}\n\nexport interface ComputerUseActivationRequest {\n readonly requestId: string;\n readonly target: Record<string, unknown>;\n readonly durationSeconds: number;\n readonly createdAt: number;\n readonly confirmationExpiresAt: number;\n readonly caller: DoomApiCaller;\n}\n\nexport interface ComputerUseBrokerRequest {\n readonly id: string;\n readonly operation: 'observe' | 'act';\n readonly payload?: unknown;\n readonly grantId: string;\n readonly sequence?: number;\n}\n\nexport interface ComputerUseChannelPayload {\n readonly state: ComputerUseSessionView;\n readonly targets: readonly Record<string, unknown>[];\n readonly busy?: true;\n}\n\nexport type ComputerUseBrowserCommand = { readonly action: 'status' | 'targets' | 'stop' | 'artifacts' };\n","import type { DoomHeadlessToolResult } from '@agimon-ai/doompi-core/headless';\n\nimport type { ComputerScriptExecutionResult } from '../../types/computerScript';\nimport type { ComputerUseObservation } from '../../types/computerUse';\nimport { ComputerScriptExecutionError } from '../computerScriptRunner';\n\nconst MAX_TEXT_BYTES = 256 * 1024;\nconst MAX_IMAGE_DATA_LENGTH = 8 * 1024 * 1024;\n\nfunction content(value: unknown, observation: ComputerUseObservation): DoomHeadlessToolResult['content'] {\n const text = JSON.stringify(value);\n if (Buffer.byteLength(text) > MAX_TEXT_BYTES) throw new Error('Computer-use text response exceeds the size limit.');\n const screenshot = observation.screenshot;\n if (screenshot && (screenshot.mimeType !== 'image/png' || screenshot.data.length > MAX_IMAGE_DATA_LENGTH)) {\n throw new Error('Computer-use screenshot exceeds the image limit.');\n }\n return [\n { type: 'text', text },\n ...(screenshot ? [{ type: 'image' as const, mimeType: screenshot.mimeType, data: screenshot.data }] : []),\n ];\n}\n\nexport function computerObservationOutput(observation: ComputerUseObservation) {\n return { content: content({ ...observation, screenshot: undefined }, observation), details: observation };\n}\n\nexport function computerScriptOutput(result: ComputerScriptExecutionResult) {\n try {\n return {\n content: content(\n { ...result, observation: { ...result.observation, screenshot: undefined } },\n result.observation,\n ),\n details: result,\n };\n } catch (error) {\n if (result.metrics === undefined) throw error;\n // Formatting happens after the actions complete. Preserve that progress so a caller does not replay them.\n throw new ComputerScriptExecutionError(\n error instanceof Error ? error.message : String(error),\n result.metrics.actions,\n false,\n );\n }\n}\n\nexport function computerScriptFailure(error: unknown) {\n const details = {\n error: (error instanceof Error ? error.message : String(error)).slice(0, 1024),\n ...(error instanceof ComputerScriptExecutionError\n ? {\n completedActions: error.completedActions,\n outcomeUncertain: error.outcomeUncertain,\n }\n : {}),\n };\n return { content: [{ type: 'text' as const, text: JSON.stringify(details) }], details, isError: true };\n}\n","import type { DoomToolRestriction } from '@agimon-ai/doompi-core/toolSurface';\nimport type { MinorModeState } from '@agimon-ai/doompi-minor-mode';\n\nimport { COMPUTER_USE_TOOL_NAMES } from '../constants/computerUse';\nimport type { ComputerUseSessionView } from '../types/computerUseApi';\nexport function modeState(state?: ComputerUseSessionView, enabled = false): MinorModeState {\n const phase = state?.phase ?? 'inactive';\n const running = phase !== 'inactive' && phase !== 'failed';\n const modeEnabled = enabled || running;\n const activation = modeEnabled\n ? phase === 'stopping'\n ? 'deactivating'\n : phase === 'awaiting_confirmation' || phase === 'activating'\n ? 'activating'\n : 'active'\n : 'inactive';\n return {\n activation,\n condition:\n phase === 'awaiting_confirmation'\n ? 'blocked'\n : phase === 'failed'\n ? 'failed'\n : phase === 'activating' || phase === 'stopping'\n ? 'queued'\n : 'ready',\n ...(modeEnabled && phase === 'inactive' ? { detail: 'configure computer use in Activity' } : {}),\n ...(phase === 'awaiting_confirmation' ? { detail: 'awaiting confirmation in Activity' } : {}),\n actions: [\n {\n id: 'activate',\n enabled: !modeEnabled,\n ...(!modeEnabled ? {} : { disabledReason: 'Computer use is already enabled.' }),\n },\n {\n id: 'deactivate',\n enabled: modeEnabled,\n ...(modeEnabled ? {} : { disabledReason: 'Computer use is not enabled.' }),\n },\n { id: 'doctor', enabled: true },\n ],\n };\n}\n\n/**\n * Hides the computer-use tools while the mode is off.\n *\n * The arbiter starts from every registered tool, so an active mode only has to\n * return the list untouched: nothing has to add the tools back.\n */\nexport function computerUseRestriction(active: boolean): DoomToolRestriction {\n const owned = new Set<string>(COMPUTER_USE_TOOL_NAMES);\n return (incoming) => (active ? incoming : incoming.filter((name) => !owned.has(name)));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DoKasntC.d.mts","names":[],"sources":["../src/constants/computerUse.ts","../src/types/computerUseApi.ts","../src/types/computerUse.ts","../src/services/sessionApiClient/index.ts","../src/types/computerScript.ts","../src/types/extension.ts","../src/services/dependencies/index.ts","../src/services/computerScriptRunner/index.ts","../src/services/extensionService/index.ts","../src/models/computerUseState.ts","../src/services/traceRedaction/index.ts"],"mappings":";;cAAa;cAKA;;;cCHA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;;;;;;;;cASA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;cAGW;UAEI;WACN;WACA;WACA;WACA;WACA;WACA;WACA;aAAqB;aAAuB;;;UAGtC;WACN;WACA;WACA;WACA;WACA;WACA,SAAS;WACT;WACA;WACA;aAAqB;aAAuB;;WAC5C,WAAW;;UAGL;WACN;WACA,QAAQ;WACR;WACA;WACA;WACA,QAAQ;;UAGF;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN,OAAO;WACP,kBAAkB;WAClB;;KAGC;WAAuC;;;;UC9ElC;EACf,MAAM,SAAS,cAAc,QAAQ;EACrC,iBAAiB,WAAW,OAAO;EACnC,QAAQ,SAAS,aAAa,UAAU,gCAAgC,QAAQ;EAChF,IAAI,QAAQ,mBAAmB,SAAS,cAAc;EACtD,KAAK,SAAS,cAAc,QAAQ;;UAGrB;EACf;;cAGW;KAUD,2BAA2B;UAEtB;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA;WACA,kBAAkB;;UAGZ;WACN;WACA;WACA;WACA;WACA;WACA;WACA,mBAAmB;WACnB;aACE;aACA;;;KAID;KAEA;WAEG;WACA;WACA;;WAGA;WACA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;;KAGH;UAeK;WACN;WACA,OAAO;WACP,UAAU;WACV;WACA,SAAS;WACT,QAAQ;WACR;aACE,MAAM;aACN;;;KAID;WACG;WAA0B;WAA4B,QAAQ;;WAC9D;WAAqC;;WACrC;WAA0B;;WAC1B;WAAuB;;WACvB;WAA4B;WAA4B,OAAO;;WAC/D;;WACA;;WACA;WAAuB,MAAM;WAAiC;;WAC9D;;;;;iBC9HC,+BAA+B,OAAO,2BAA2B;;;UCEhE;EACf,QAAQ,UAAU,gCAAgC,QAAQ;EAC1D,IAAI,QAAQ,oBAAoB;;UAGjB;EACf,MAAM;EACN,KAAK;EACL,KAAK;EACL,MAAM;;UAGS;EACf;IAAW,SAAS;;EACpB;EACA,QAAQ;;EAER,QAAQ,KAAK;;;KAIH,qBAAqB,SAAS;UAEzB;EACf;EACA,aAAa;EACb;EACA;IACE;IACA;IACA;IACA;;;UAIa;;EAEf;EACA;;UAGe;EACf,QACE,oBACA,gBACA,SAAS,aACT,UAAU,gCACV,eACC,QAAQ;;UAGI;WACN,QAAQ;WACR;;WAEA;WACA;WACA;;;;KC7DC;UAEK;EACf;EACA,OAAO;;UAGQ;EACf,WAAW,QAAQ;;UAGJ;EACf,SAAS;EACT,SAAS;EACT,eAAe;EACf,WAAW,2BAA2B;;;;cCT3B;iBACG,8BACd,YAAW,QAAQ,oCAClB;;;cC4BU;mBACM;mBACA;mBACA;mBACA;mBACA;EAEjB,YAAY,SAAS;EAQf,QACJ,oBACA,gBACA,SAAS,aACT,UAAS,gCACT,eACC,QAAQ;;;;cC1DA,8CAA8C;mBACrB;EAApC,YAAoC,SAAS;EAEhC,WAAW,QAAQ;;;;iBCQlB,wBAAwB,UAAU,+BAA+B;iBAIjE,uBAAuB,OAAO,kBAAkB,OAAO,wBAAwB;;;UChB9E;WACN;WACA;WACA;WACA;WACA,QAAQ;WACR;WACA;WACA;WACA,YAAY;;UAGN;WACN;WACA;WACA;WACA;WACA,YAAY;WACZ;WACA;WACA;WACA,SAAS;WACT,YAAY;;iBAGP,uBAAuB,OAAO,wBAAwB"}