teamshare-bridge 0.24.0 → 0.25.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 (47) hide show
  1. package/dist/bridge/daemon.js +6 -2
  2. package/dist/bridge/daemon.js.map +1 -1
  3. package/dist/bridge/local-server.d.ts +5 -1
  4. package/dist/bridge/local-server.js.map +1 -1
  5. package/dist/bridge/spawn.d.ts +11 -0
  6. package/dist/bridge/spawn.js +36 -0
  7. package/dist/bridge/spawn.js.map +1 -1
  8. package/dist/bridge/wake-handler.js +57 -3
  9. package/dist/bridge/wake-handler.js.map +1 -1
  10. package/dist/bridge/wake-lanes.d.ts +2 -0
  11. package/dist/bridge/wake-lanes.js +4 -1
  12. package/dist/bridge/wake-lanes.js.map +1 -1
  13. package/dist/bridge/wake-routing.d.ts +25 -2
  14. package/dist/bridge/wake-routing.js +57 -0
  15. package/dist/bridge/wake-routing.js.map +1 -1
  16. package/dist/cli/commands/research.js +27 -1
  17. package/dist/cli/commands/research.js.map +1 -1
  18. package/dist/cli/commands/workflow.d.ts +1 -0
  19. package/dist/cli/commands/workflow.js +419 -0
  20. package/dist/cli/commands/workflow.js.map +1 -0
  21. package/dist/cli/index.js +6 -0
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/lib/api-agents.d.ts +3 -1
  24. package/dist/lib/api-agents.js.map +1 -1
  25. package/dist/lib/api-types.d.ts +38 -1
  26. package/dist/lib/api.d.ts +62 -0
  27. package/dist/lib/api.js +48 -0
  28. package/dist/lib/api.js.map +1 -1
  29. package/dist/lib/browser/batch.d.ts +15 -0
  30. package/dist/lib/browser/batch.js +18 -0
  31. package/dist/lib/browser/batch.js.map +1 -1
  32. package/dist/lib/browser/index.d.ts +2 -0
  33. package/dist/lib/browser/index.js +7 -1
  34. package/dist/lib/browser/index.js.map +1 -1
  35. package/dist/lib/browser/login.d.ts +81 -0
  36. package/dist/lib/browser/login.js +371 -0
  37. package/dist/lib/browser/login.js.map +1 -0
  38. package/dist/lib/browser/session.d.ts +31 -2
  39. package/dist/lib/browser/session.js +36 -6
  40. package/dist/lib/browser/session.js.map +1 -1
  41. package/dist/lib/lock.d.ts +5 -1
  42. package/dist/lib/lock.js.map +1 -1
  43. package/dist/lib/orchestrator/handlers/browser.js +34 -0
  44. package/dist/lib/orchestrator/handlers/browser.js.map +1 -1
  45. package/dist/lib/tools/browser-tool.js +39 -0
  46. package/dist/lib/tools/browser-tool.js.map +1 -1
  47. package/package.json +1 -1
package/dist/lib/api.d.ts CHANGED
@@ -108,6 +108,65 @@ export declare class TeamshareApi extends ContentEndpoints {
108
108
  applied: boolean;
109
109
  status: string;
110
110
  }>;
111
+ /**
112
+ * Everything a `workflow.run` session needs in one call: frozen
113
+ * definition, resolved inputs, step list with live statuses and
114
+ * credential KEYS (never values). Agent-key auth (scope
115
+ * `workflows:write`).
116
+ */
117
+ getWorkflowRun(runId: string): Promise<import("./api-types").WorkflowRunContext>;
118
+ /**
119
+ * Streams progress for the run. The first call flips the run from `pending`
120
+ * to `running` on the hub. Best-effort: never fails the run.
121
+ */
122
+ reportWorkflowProgress(runId: string, lines: Array<{
123
+ stream: string;
124
+ text: string;
125
+ }>, extra?: {
126
+ phase?: string;
127
+ stepIndex?: number;
128
+ sessionId?: string;
129
+ model?: string;
130
+ }): Promise<{
131
+ accepted: boolean;
132
+ status: string;
133
+ }>;
134
+ /**
135
+ * Advances one step on the run timeline. Terminal runs refuse.
136
+ * Best-effort: never fails the run.
137
+ */
138
+ reportWorkflowStep(runId: string, body: {
139
+ stepIndex: number;
140
+ status: string;
141
+ note?: string;
142
+ }): Promise<{
143
+ accepted: boolean;
144
+ status: string;
145
+ }>;
146
+ /**
147
+ * Delivers the finished run. The hub settles completed/failed, moves the
148
+ * backing task, links output documents and notifies the creator.
149
+ * `ok: false` settles as failed.
150
+ */
151
+ completeWorkflowRun(runId: string, body: {
152
+ ok: boolean;
153
+ summary?: string;
154
+ error?: string;
155
+ outputDocumentIds?: string[];
156
+ model?: string;
157
+ sessionId?: string;
158
+ }): Promise<{
159
+ applied: boolean;
160
+ status: string;
161
+ }>;
162
+ /**
163
+ * Decrypts the packed per-run env-var values. ONLY the run's own agent may
164
+ * call this; the hub refuses terminal runs. Never logged.
165
+ */
166
+ getWorkflowSecrets(runId: string): Promise<{
167
+ secrets: Record<string, string>;
168
+ keys: string[];
169
+ }>;
111
170
  /**
112
171
  * The build queue of a project: pending ready-for-dev tasks in strict
113
172
  * order (sortOrder asc, createdAt asc), blocked tasks awaiting an answer
@@ -191,6 +250,9 @@ export declare class TeamshareApi extends ContentEndpoints {
191
250
  providerKey: string | null;
192
251
  provider: string | null;
193
252
  baseUrl: string | null;
253
+ /** QA-login credentials (browser-agent), when supplied on the run form. */
254
+ username: string | null;
255
+ password: string | null;
194
256
  expiresAt: string;
195
257
  } | null>;
196
258
  /** Validate a superadmin-issued browser agent key before a browse session. */
package/dist/lib/api.js CHANGED
@@ -97,6 +97,54 @@ class TeamshareApi extends api_content_1.ContentEndpoints {
97
97
  body: JSON.stringify(body),
98
98
  });
99
99
  }
100
+ // -- custom workflows (2026-10) ---------------------------------------------
101
+ /**
102
+ * Everything a `workflow.run` session needs in one call: frozen
103
+ * definition, resolved inputs, step list with live statuses and
104
+ * credential KEYS (never values). Agent-key auth (scope
105
+ * `workflows:write`).
106
+ */
107
+ getWorkflowRun(runId) {
108
+ return this.request(`/workflows/runs/${runId}/context`);
109
+ }
110
+ /**
111
+ * Streams progress for the run. The first call flips the run from `pending`
112
+ * to `running` on the hub. Best-effort: never fails the run.
113
+ */
114
+ reportWorkflowProgress(runId, lines, extra) {
115
+ return this.request(`/workflows/runs/${runId}/events`, {
116
+ method: "POST",
117
+ body: JSON.stringify({ lines, ...(extra ?? {}) }),
118
+ });
119
+ }
120
+ /**
121
+ * Advances one step on the run timeline. Terminal runs refuse.
122
+ * Best-effort: never fails the run.
123
+ */
124
+ reportWorkflowStep(runId, body) {
125
+ return this.request(`/workflows/runs/${runId}/steps`, {
126
+ method: "POST",
127
+ body: JSON.stringify(body),
128
+ });
129
+ }
130
+ /**
131
+ * Delivers the finished run. The hub settles completed/failed, moves the
132
+ * backing task, links output documents and notifies the creator.
133
+ * `ok: false` settles as failed.
134
+ */
135
+ completeWorkflowRun(runId, body) {
136
+ return this.request(`/workflows/runs/${runId}/complete`, {
137
+ method: "POST",
138
+ body: JSON.stringify(body),
139
+ });
140
+ }
141
+ /**
142
+ * Decrypts the packed per-run env-var values. ONLY the run's own agent may
143
+ * call this; the hub refuses terminal runs. Never logged.
144
+ */
145
+ getWorkflowSecrets(runId) {
146
+ return this.request(`/workflows/runs/${runId}/secrets`);
147
+ }
100
148
  // -- build mode (IMP-700) ---------------------------------------------------
101
149
  /**
102
150
  * The build queue of a project: pending ready-for-dev tasks in strict
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,+CAAiD;AASjD,uCAAuE;AAA9D,oGAAA,QAAQ,OAAA;AAAE,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA;AAClD,8CAA4B;AAE5B,MAAa,YAAa,SAAQ,8BAAgB;IAChD,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,CAAC,OAAe,EAAE,KAAkB;QACjD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,8EAA8E;IAE9E;;;;;;;OAOG;IACH,iBAAiB,CAAC,YAAoB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,YAAY,UAAU,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,4BAA4B,CAC1B,YAAoB,EACpB,KAA8C,EAC9C,KAA8D;QAE9D,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,YAAY,SAAS,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CACpB,YAAoB,EACpB,IASC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,YAAY,WAAW,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,qBAAqB,CACnB,KAAa,EACb,KAA8C,EAC9C,KAA8D;QAE9D,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,SAAS,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAChB,KAAa,EACb,IAUC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,WAAW,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,SAAS,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,OAAe,EACf,IASC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,iBAAiB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,MAAc;QAQ7B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,MAAM,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,qCAAqC;IAErC,mBAAmB,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB,CACnB,IAAY;QAEZ,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,QAAQ,EAAE;YACvD,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,8BAA8B,CAC5B,IAAY,EACZ,MAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,gBAAgB,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SACzE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,6BAA6B,CAC3B,YAAoB;QAMpB,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAuC,YAAY,EAAE,EAAE;YACzE,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,eAAe;QAUb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,OAAe,EACf,MAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,OAAO,OAAO,EAAE;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,KAAa;QAO7B,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IAC9E,uBAAuB,CAAC,GAAW;QAQjC,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE;QACrD,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,SAAS,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,aAAa,CACX,KAAa,EACb,KAA8C,EAC9C,QAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CACd,KAAa,EACb,UAAkB,EAClB,QAAgB,EAChB,IAAY;QAEZ,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACtD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe,CACb,KAAa,EACb,IAIC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,WAAW,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,eAAe,CAAC,IAkBf;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AAlWD,oCAkWC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,12 @@ export interface BatchStep {
14
14
  format?: 'jpeg' | 'png';
15
15
  quality?: number;
16
16
  maxChars?: number;
17
+ /** login step: credentials (opt-in credential entry on the debug browser). */
18
+ username?: string;
19
+ password?: string;
20
+ submit?: boolean;
21
+ stepTimeoutMs?: number;
22
+ allowCredentials?: boolean;
17
23
  [key: string]: unknown;
18
24
  }
19
25
  export interface BatchStepResult {
@@ -36,6 +42,15 @@ export interface BatchSummary {
36
42
  export interface BatchCapableSession {
37
43
  click(x: number, y: number): Promise<void>;
38
44
  type(text: string): Promise<void>;
45
+ /** Deterministic login (opt-in credential entry). */
46
+ login(opts: {
47
+ username?: string;
48
+ password: string;
49
+ submit?: boolean;
50
+ stepTimeoutMs?: number;
51
+ }): Promise<any>;
52
+ /** Enable credential entry for the session (opt-in). */
53
+ setAllowCredentials?(allow: boolean): void;
39
54
  press(key: string): Promise<void>;
40
55
  scroll(delta: number): Promise<void>;
41
56
  navigate(url: string): Promise<any>;
@@ -78,6 +78,8 @@ async function runBatchStep(session, step, lastElements) {
78
78
  case 'type': {
79
79
  // With elementIndex the batch clicks the field first, so a
80
80
  // click+type pair collapses into one step for form fills.
81
+ if (step.allowCredentials === true)
82
+ session.setAllowCredentials?.(true);
81
83
  let clicked;
82
84
  if (typeof step.elementIndex === 'number') {
83
85
  clicked = resolveCoords(step, lastElements);
@@ -87,6 +89,22 @@ async function runBatchStep(session, step, lastElements) {
87
89
  await session.type(text);
88
90
  return { typed: true, length: text.length, ...(clicked ? { x: clicked.x, y: clicked.y } : {}) };
89
91
  }
92
+ case 'login': {
93
+ // Deterministic credential fill + submit. Opt-in; the password is never
94
+ // echoed back in the summary.
95
+ if (step.allowCredentials !== false)
96
+ session.setAllowCredentials?.(true);
97
+ const password = String(step.password ?? '');
98
+ if (!password)
99
+ throw new Error('password is required for a login step');
100
+ const result = await session.login({
101
+ username: typeof step.username === 'string' ? step.username : undefined,
102
+ password,
103
+ submit: step.submit !== false,
104
+ ...(typeof step.stepTimeoutMs === 'number' ? { stepTimeoutMs: step.stepTimeoutMs } : {}),
105
+ });
106
+ return { ...result };
107
+ }
90
108
  case 'press': {
91
109
  const key = String(step.key ?? '');
92
110
  await session.press(key);
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/lib/browser/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/lib/browser/batch.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { BrowserSession } from './session';
2
+ export { performLogin, findLoginFields, fillFieldVerified, typeTextVerified, isCredentialFocused, } from './login';
3
+ export type { LoginResult, LoginFields, LoginControl, LoginError, PerformLoginOptions, } from './login';
2
4
  export { BrowserManager, getBrowserManager } from './manager';
3
5
  export { launchChrome } from './launch';
4
6
  export type { ChromeInstance, LaunchOptions } from './launch';
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cdpSend = exports.sleep = exports.isChromeReachable = exports.focusSelector = exports.detectEditor = exports.evaluateJs = exports.scrollPage = exports.pressKey = exports.typeText = exports.clickAt = exports.extractElements = exports.getPageInfo = exports.navigateTo = exports.captureScreenshot = exports.listTargets = exports.connectToWs = exports.connectToPage = exports.launchChrome = exports.getBrowserManager = exports.BrowserManager = exports.BrowserSession = void 0;
3
+ exports.cdpSend = exports.sleep = exports.isChromeReachable = exports.focusSelector = exports.detectEditor = exports.evaluateJs = exports.scrollPage = exports.pressKey = exports.typeText = exports.clickAt = exports.extractElements = exports.getPageInfo = exports.navigateTo = exports.captureScreenshot = exports.listTargets = exports.connectToWs = exports.connectToPage = exports.launchChrome = exports.getBrowserManager = exports.BrowserManager = exports.isCredentialFocused = exports.typeTextVerified = exports.fillFieldVerified = exports.findLoginFields = exports.performLogin = exports.BrowserSession = void 0;
4
4
  var session_1 = require("./session");
5
5
  Object.defineProperty(exports, "BrowserSession", { enumerable: true, get: function () { return session_1.BrowserSession; } });
6
+ var login_1 = require("./login");
7
+ Object.defineProperty(exports, "performLogin", { enumerable: true, get: function () { return login_1.performLogin; } });
8
+ Object.defineProperty(exports, "findLoginFields", { enumerable: true, get: function () { return login_1.findLoginFields; } });
9
+ Object.defineProperty(exports, "fillFieldVerified", { enumerable: true, get: function () { return login_1.fillFieldVerified; } });
10
+ Object.defineProperty(exports, "typeTextVerified", { enumerable: true, get: function () { return login_1.typeTextVerified; } });
11
+ Object.defineProperty(exports, "isCredentialFocused", { enumerable: true, get: function () { return login_1.isCredentialFocused; } });
6
12
  var manager_1 = require("./manager");
7
13
  Object.defineProperty(exports, "BrowserManager", { enumerable: true, get: function () { return manager_1.BrowserManager; } });
8
14
  Object.defineProperty(exports, "getBrowserManager", { enumerable: true, get: function () { return manager_1.getBrowserManager; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/browser/index.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,qCAA8D;AAArD,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAC1C,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AAGrB,6BAkBe;AAjBb,oGAAA,aAAa,OAAA;AACb,kGAAA,WAAW,OAAA;AACX,kGAAA,WAAW,OAAA;AACX,wGAAA,iBAAiB,OAAA;AACjB,iGAAA,UAAU,OAAA;AACV,kGAAA,WAAW,OAAA;AACX,sGAAA,eAAe,OAAA;AACf,8FAAA,OAAO,OAAA;AACP,+FAAA,QAAQ,OAAA;AACR,+FAAA,QAAQ,OAAA;AACR,iGAAA,UAAU,OAAA;AACV,iGAAA,UAAU,OAAA;AACV,mGAAA,YAAY,OAAA;AACZ,oGAAA,aAAa,OAAA;AACb,wGAAA,iBAAiB,OAAA;AACjB,4FAAA,KAAK,OAAA;AACL,8FAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/browser/index.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,iCAMiB;AALf,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,0GAAA,iBAAiB,OAAA;AACjB,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AASrB,qCAA8D;AAArD,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAC1C,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AAGrB,6BAkBe;AAjBb,oGAAA,aAAa,OAAA;AACb,kGAAA,WAAW,OAAA;AACX,kGAAA,WAAW,OAAA;AACX,wGAAA,iBAAiB,OAAA;AACjB,iGAAA,UAAU,OAAA;AACV,kGAAA,WAAW,OAAA;AACX,sGAAA,eAAe,OAAA;AACf,8FAAA,OAAO,OAAA;AACP,+FAAA,QAAQ,OAAA;AACR,+FAAA,QAAQ,OAAA;AACR,iGAAA,UAAU,OAAA;AACV,iGAAA,UAAU,OAAA;AACV,mGAAA,YAAY,OAAA;AACZ,oGAAA,aAAa,OAAA;AACb,wGAAA,iBAAiB,OAAA;AACjB,4FAAA,KAAK,OAAA;AACL,8FAAA,OAAO,OAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Deterministic credential entry + login for the DEBUG browser (2026-10).
3
+ *
4
+ * The debug/MCP browser (`browser_open` / `browser_action`) is an agent-driven
5
+ * QA/automation browser. It historically refused to touch any password field
6
+ * (`LOGIN_BLOCKED`), which made QA tasks that need a sign-in impossible. This
7
+ * module is the explicit, OPT-IN escape hatch (`allowCredentials`), authored so
8
+ * the LLM never has to type a secret itself:
9
+ *
10
+ * - `findLoginFields(page)` locates the username / password / submit controls
11
+ * with plain DOM heuristics (autocomplete -> input type -> label/text).
12
+ * - `performLogin(page, { username, password })` fills them, handles the common
13
+ * two-step email -> Continue -> password flow, submits, and returns a
14
+ * structured result. It is LLM-free.
15
+ * - `fillFieldVerified(page, x, y, value)` is the hardened insert: it focuses
16
+ * the field, replaces its contents, and VERIFIES the value actually landed,
17
+ * falling back to character-by-character key events when `Input.insertText`
18
+ * is swallowed (a controlled/echoing password widget).
19
+ * - `typeTextVerified(page, text)` is the same verification for the generic
20
+ * `type` action, so a password typed by the agent is confirmed too.
21
+ *
22
+ * The auto-answer loop (`browse --auto-answer`) is a DIFFERENT code path and
23
+ * still never touches credentials - see `personal-fields.ts`.
24
+ *
25
+ * NO secret is ever logged here.
26
+ */
27
+ import { type CdpPage } from './cdp';
28
+ export interface LoginControl {
29
+ x: number;
30
+ y: number;
31
+ /** name/id of the control, for diagnostics only (never a value). */
32
+ hint?: string;
33
+ }
34
+ export interface LoginFields {
35
+ username: LoginControl | null;
36
+ password: LoginControl | null;
37
+ submit: LoginControl | null;
38
+ /** True when a one-time-code / OTP challenge field is on screen. */
39
+ otp: LoginControl | null;
40
+ }
41
+ export type LoginError = 'LOGIN_FIELD_NOT_FOUND' | 'CREDENTIAL_FILL_FAILED' | 'MFA_REQUIRED' | 'LOGIN_NO_SESSION';
42
+ export interface LoginResult {
43
+ ok: boolean;
44
+ usernameFilled: boolean;
45
+ passwordFilled: boolean;
46
+ submitted: boolean;
47
+ twoStep: boolean;
48
+ error?: LoginError;
49
+ detail?: string;
50
+ }
51
+ export interface PerformLoginOptions {
52
+ username?: string;
53
+ password: string;
54
+ /** Click the submit/continue control (default true). */
55
+ submit?: boolean;
56
+ /** Max time to wait for the password field after step 1 (default 6000ms). */
57
+ stepTimeoutMs?: number;
58
+ /** Max form steps (default 2: email -> password). */
59
+ maxSteps?: number;
60
+ }
61
+ export declare function findLoginFields(page: CdpPage): Promise<LoginFields>;
62
+ /**
63
+ * Type text into the currently focused control and VERIFY it landed.
64
+ * `Input.insertText` first (fires a proper `input` event for controlled
65
+ * components); on a shortfall, retry character-by-character via key events.
66
+ * Returns the value actually observed in the field.
67
+ */
68
+ export declare function typeTextVerified(page: CdpPage, text: string): Promise<boolean>;
69
+ /**
70
+ * Fill a specific control (by click coords) with a value and verify it landed.
71
+ * Clears the field first (select-all then insert / backspace).
72
+ */
73
+ export declare function fillFieldVerified(page: CdpPage, control: LoginControl, value: string): Promise<boolean>;
74
+ /**
75
+ * Deterministic login. Fills whatever credentials are present, submits, and
76
+ * handles the common two-step (email -> Continue -> password) flow. Returns a
77
+ * structured result; it NEVER throws and NEVER logs a secret.
78
+ */
79
+ export declare function performLogin(page: CdpPage, opts: PerformLoginOptions): Promise<LoginResult>;
80
+ /** True when the currently focused element is a password/credential control. */
81
+ export declare function isCredentialFocused(page: CdpPage): Promise<boolean>;