@mercuryo-ai/magicpay-home 0.1.11 → 0.1.12
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/README.md +44 -33
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/workflow-state.d.ts +74 -5
- package/dist/workflow-state.d.ts.map +1 -1
- package/dist/workflow-state.js +37 -7
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
Shared home directory and state contract for the MagicPay CLI family.
|
|
6
6
|
|
|
7
7
|
This package owns `~/.magicpay/`: the on-disk home directory where
|
|
8
|
-
MagicPay's CLIs keep their config, browser
|
|
9
|
-
related files. It is not a CLI of its own — it is consumed
|
|
10
|
-
dependency by:
|
|
8
|
+
MagicPay's CLIs keep their config, browser-session pointer, workflow
|
|
9
|
+
state, and related files. It is not a CLI of its own — it is consumed
|
|
10
|
+
as a dependency by:
|
|
11
11
|
|
|
12
|
-
- [`@mercuryo-ai/
|
|
12
|
+
- [`@mercuryo-ai/magicbrowse-cli`](https://www.npmjs.com/package/@mercuryo-ai/magicbrowse-cli) — browser-only CLI; uses the shared MagicPay gateway config
|
|
13
13
|
- [`@mercuryo-ai/magicpay-cli`](https://www.npmjs.com/package/@mercuryo-ai/magicpay-cli) — protected-form fills
|
|
14
14
|
- [`@mercuryo-ai/magicpay-agent-cli`](https://www.npmjs.com/package/@mercuryo-ai/magicpay-agent-cli) — combined browser + payment agent
|
|
15
|
+
- [`@mercuryo-ai/agentbrowse-cli`](https://www.npmjs.com/package/@mercuryo-ai/agentbrowse-cli) — legacy browser CLI; on a deprecation track, not for new integrations
|
|
15
16
|
|
|
16
17
|
## Do I Need To Install This?
|
|
17
18
|
|
|
@@ -20,46 +21,56 @@ above. You do not need to install or configure it directly.
|
|
|
20
21
|
|
|
21
22
|
## Why This Package Exists
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
Each MagicPay CLI needs one place on disk for the shared API key, the
|
|
25
|
+
current workflow state, the browser-session pointer, mock-mode files,
|
|
26
|
+
and update-check state. Putting all of that under one named directory
|
|
27
|
+
keeps configuration, debugging, and reset operations predictable across
|
|
28
|
+
the whole CLI family.
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
`magicpay-home` is the owner of `~/.magicpay/` and of the typed helpers
|
|
31
|
+
the other packages call to read and write files there:
|
|
30
32
|
|
|
31
33
|
1. Defines the MagicPay home directory at `~/.magicpay/`.
|
|
32
|
-
2.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
3.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
2. Provides typed helpers for the MagicPay-specific files
|
|
35
|
+
(`config.json`, `workflow-state.json`, `browser-session.json`,
|
|
36
|
+
`update-state.json`, mock files).
|
|
37
|
+
3. Lets the CLIs share state across separate processes safely (atomic
|
|
38
|
+
writes, single-workflow lock).
|
|
39
|
+
|
|
40
|
+
> The browser library [`@mercuryo-ai/magicbrowse`](https://www.npmjs.com/package/@mercuryo-ai/magicbrowse)
|
|
41
|
+
> keeps its own runtime diagnostics under `MAGICBROWSE_HOME` (default
|
|
42
|
+
> `~/.magicbrowse/`) — `current-session.json`, `runs/<runId>.json`,
|
|
43
|
+
> `run-index.json`, named profiles. Those files are separate from the
|
|
44
|
+
> MagicPay home and are not redirected today. See
|
|
45
|
+
> [`@mercuryo-ai/magicbrowse`](https://www.npmjs.com/package/@mercuryo-ai/magicbrowse)
|
|
46
|
+
> for that layout.
|
|
40
47
|
|
|
41
48
|
## Directory Layout
|
|
42
49
|
|
|
43
50
|
All paths are relative to `~/.magicpay/` (or the OS equivalent of
|
|
44
51
|
`homedir() + "/.magicpay/"`).
|
|
45
52
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
53
|
+
All files in this table are owned and written by `magicpay-home` itself
|
|
54
|
+
(or by CLIs through `magicpay-home` helpers). The browser library's own
|
|
55
|
+
diagnostics live separately under `MAGICBROWSE_HOME` (see note above).
|
|
56
|
+
|
|
57
|
+
| Path | Purpose | Written by |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `config.json` | Shared config: MagicPay gateway (`apiKey`, `apiUrl`), browser defaults (profile, headless, proxy), updates policy. | `init` on any CLI. |
|
|
60
|
+
| `browser-session.json` | CDP endpoint and browser-session pointer the payment-side CLIs use to remember an `attach` across processes. | `magicpay-cli` and `magicpay-agent-cli`. |
|
|
61
|
+
| `workflow-state.json` | In-flight protected-form workflow state (open-data snapshot, cached transient secrets, current step). | `magicpay-cli` and `magicpay-agent-cli` only. |
|
|
62
|
+
| `update-state.json` | Last CLI update-check timestamp and cached result. | Any CLI that runs the update check. |
|
|
63
|
+
| `mock-stored-secrets.json` | Development-only mock vault items. Not used in production. | Only when the CLI is run in mock mode. |
|
|
64
|
+
| `mock-secret-requests.json` | Development-only mock secret-request log. Not used in production. | Only when the CLI is run in mock mode. |
|
|
65
|
+
| `profiles/` | Reserved directory for named browser-profile data when a CLI chooses to root profiles under MagicPay home. | Currently unused by the live CLI set; reserved path. |
|
|
66
|
+
| `runs/` | Per-run telemetry and files captured by MagicPay CLIs. | Any MagicPay CLI run that records run telemetry. |
|
|
56
67
|
|
|
57
68
|
Rules of thumb when debugging:
|
|
58
69
|
|
|
59
70
|
- **Safe to delete to reset auth:** `config.json`. The next `init` re-creates it.
|
|
60
71
|
- **Safe to delete to reset the browser session:** `browser-session.json`.
|
|
61
72
|
Next `launch` / `attach` starts fresh.
|
|
62
|
-
- **Safe to delete to reset an
|
|
73
|
+
- **Safe to delete to reset an active workflow:** `workflow-state.json`.
|
|
63
74
|
Any active `magicpay` / `magicpay-agent` session is lost; the next
|
|
64
75
|
`start-session` begins clean.
|
|
65
76
|
- **Do not hand-edit** any of these files — they are managed by the CLIs
|
|
@@ -71,12 +82,12 @@ Rules of thumb when debugging:
|
|
|
71
82
|
(`readMagicPayConfig`, `writeMagicPayConfig`, `doctorMagicPayConfig`).
|
|
72
83
|
- Path helpers for every file and directory above (`getMagicPayHomeDir`,
|
|
73
84
|
`getMagicPayConfigPath`, `getMagicPayBrowserSessionPath`, etc.).
|
|
74
|
-
- Workflow-state helpers for the
|
|
85
|
+
- Workflow-state helpers for the active protected-form session
|
|
75
86
|
(`loadWorkflowContext`, `saveWorkflowContext`, `clearWorkflowState`).
|
|
76
87
|
- Browser-session helpers (`loadMagicPayBrowserSession`,
|
|
77
|
-
`saveMagicPayBrowserSession`, `deleteMagicPayBrowserSession`)
|
|
78
|
-
|
|
79
|
-
|
|
88
|
+
`saveMagicPayBrowserSession`, `deleteMagicPayBrowserSession`) for the
|
|
89
|
+
CDP endpoint pointer that magicpay-cli and magicpay-agent-cli persist
|
|
90
|
+
across processes.
|
|
80
91
|
- CLI update-check helper (`checkForPackageUpdate`) with state persisted
|
|
81
92
|
in `update-state.json`.
|
|
82
93
|
- Safe concurrent writes so several MagicPay CLIs can run in the same
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { compareVersions, checkForPackageUpdate, type PackageUpdateCheckOptions,
|
|
|
2
2
|
export { type MagicPayBrowserProxyConfig, type MagicPayBrowserProxySetting, type MagicPayConfigDoctorConfigState, type MagicPayConfigDoctorFailure, type MagicPayConfigDoctorGatewayState, type MagicPayConfigDoctorIssue, type MagicPayConfigDoctorResult, type MagicPayConfigDoctorSuccess, type MagicPaySharedConfig, doctorMagicPayConfig, getMagicPayBrowserDefaults, getMagicPayConfigPath, getMagicPayHomeDir, getMagicPayProfilesDir, getMagicPayUpdateStatePath, loadGatewayConfig, normalizeMagicPayApiUrl, readMagicPayConfig, writeMagicPayConfig, } from './config.js';
|
|
3
3
|
export { deleteFileIfExists, ensureMagicPayHomeDir, ensureParentDir, atomicWriteJson, atomicWriteText, readJsonFile, } from './fs.js';
|
|
4
4
|
export { MAGICPAY_BROWSER_SESSION_FILENAME, MAGICPAY_CONFIG_FILENAME, MAGICPAY_HOME_DIRNAME, MAGICPAY_MOCK_SECRET_REQUESTS_FILENAME, MAGICPAY_MOCK_STORED_SECRETS_FILENAME, MAGICPAY_PROFILES_DIRNAME, MAGICPAY_RUNS_DIRNAME, MAGICPAY_UPDATE_STATE_FILENAME, MAGICPAY_WORKFLOW_STATE_FILENAME, getMagicPayBrowserSessionPath, getMagicPayMockSecretRequestsPath, getMagicPayMockStoredSecretsPath, getMagicPayRunsDir, getMagicPayWorkflowStatePath, } from './paths.js';
|
|
5
|
-
export { type CachedTransientSecretEntry, type MagicPayBrowserSessionCapabilities, type MagicPayBrowserSessionState, type MagicPaySession, type SessionOpenDataEntry, type SessionOpenDataFreshness, type SessionOpenDataProvenance, type SessionOpenDataSensitivity, type SessionOpenDataSnapshot, type SessionOpenDataSource, type MagicPayWorkflowContext, buildWorkflowContextForPersistence, cacheTransientSecret, canHydrateWorkflowContext, cleanupTransientSecretCache, clearWorkflowState, deleteCachedTransientSecret, deleteMagicPayBrowserSession, deleteWorkflowContext, getCachedTransientSecret, getSessionOpenDataValues, loadProfileFactsIntoOpenDataSnapshot, loadMagicPayBrowserSession, loadMagicPaySession, loadWorkflowContext, mergeSessionOpenDataValues, saveMagicPayBrowserSession, saveMagicPaySession, saveWorkflowContext, supportsMagicPayCaptchaSolve, withMagicPayCaptchaCapability, } from './workflow-state.js';
|
|
5
|
+
export { type CachedTransientSecretEntry, type BrowserSessionState, type BrowserSessionTransport, type MagicPayBrowserSessionCapabilities, type MagicPayBrowserSessionState, type MagicPaySession, type SessionOpenDataEntry, type SessionOpenDataFreshness, type SessionOpenDataProvenance, type SessionOpenDataSensitivity, type SessionOpenDataSnapshot, type SessionOpenDataSource, type MagicPayWorkflowContext, buildWorkflowContextForPersistence, cacheTransientSecret, canHydrateWorkflowContext, cleanupTransientSecretCache, clearWorkflowState, deleteCachedTransientSecret, deleteMagicPayBrowserSession, deleteWorkflowContext, getCachedTransientSecret, getSessionOpenDataValues, loadProfileFactsIntoOpenDataSnapshot, loadMagicPayBrowserSession, loadMagicPaySession, loadWorkflowContext, mergeSessionOpenDataValues, saveMagicPayBrowserSession, saveMagicPaySession, saveWorkflowContext, supportsMagicPayCaptchaSolve, withMagicPayCaptchaCapability, } from './workflow-state.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,qBAAqB,EACrB,sCAAsC,EACtC,qCAAqC,EACrC,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,kCAAkC,EAClC,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,qBAAqB,EACrB,sCAAsC,EACtC,qCAAqC,EACrC,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,kCAAkC,EAClC,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC"}
|
package/dist/workflow-state.d.ts
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
|
+
import type { MagicBrowseMatchGroupSubject, MagicBrowseSubmitTargetDescriptor, OpenDataTargetDescriptor, ProtectedRedactionProfiles } from '@mercuryo-ai/magicbrowse';
|
|
1
2
|
import type { MagicPayProfileFacts, SecretCatalog, SecretRequestSnapshot } from '@mercuryo-ai/magicpay-sdk';
|
|
2
|
-
|
|
3
|
+
export interface BrowserSessionIdentity {
|
|
4
|
+
browserInstanceRef: string;
|
|
5
|
+
endpoint: string;
|
|
6
|
+
pid?: number;
|
|
7
|
+
profile?: string;
|
|
8
|
+
provider?: string;
|
|
9
|
+
launchedAt: string;
|
|
10
|
+
ownership: 'magicbrowse' | 'external';
|
|
11
|
+
}
|
|
12
|
+
export interface BrowserSessionTransport {
|
|
13
|
+
endpoint?: string;
|
|
14
|
+
proxyMode?: 'direct' | 'proxy';
|
|
15
|
+
proxy?: {
|
|
16
|
+
server: string;
|
|
17
|
+
username?: string;
|
|
18
|
+
password?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export type BrowserRuntimePage = Record<string, unknown> & {
|
|
22
|
+
url?: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
scopeEpoch?: number;
|
|
25
|
+
};
|
|
26
|
+
export type BrowserRuntimeTarget = (OpenDataTargetDescriptor | MagicBrowseSubmitTargetDescriptor) & Record<string, unknown> & {
|
|
27
|
+
pageRef: string;
|
|
28
|
+
lifecycle: 'live' | 'stale' | 'gone';
|
|
29
|
+
availability: {
|
|
30
|
+
state: 'available' | 'unavailable' | 'hidden' | string;
|
|
31
|
+
reason?: string;
|
|
32
|
+
};
|
|
33
|
+
capability: 'actionable' | 'field' | string;
|
|
34
|
+
allowedActions: string[];
|
|
35
|
+
acceptancePolicy?: string;
|
|
36
|
+
surfaceRef?: string;
|
|
37
|
+
ownerRef?: string;
|
|
38
|
+
};
|
|
39
|
+
export type BrowserRuntimeFillableForm = MagicBrowseMatchGroupSubject & Record<string, unknown> & {
|
|
40
|
+
observedAt?: string;
|
|
41
|
+
presence?: 'present' | 'unknown' | 'absent';
|
|
42
|
+
scopeEpoch?: number;
|
|
43
|
+
};
|
|
44
|
+
export interface BrowserSessionState {
|
|
45
|
+
cdpUrl: string;
|
|
46
|
+
pid?: number;
|
|
47
|
+
launchedAt: string;
|
|
48
|
+
port?: number;
|
|
49
|
+
profile?: string;
|
|
50
|
+
identity?: BrowserSessionIdentity;
|
|
51
|
+
transport?: BrowserSessionTransport;
|
|
52
|
+
runtime?: {
|
|
53
|
+
currentPageRef?: string;
|
|
54
|
+
pages?: Record<string, BrowserRuntimePage>;
|
|
55
|
+
targets?: Record<string, BrowserRuntimeTarget>;
|
|
56
|
+
fillableForms?: Record<string, BrowserRuntimeFillableForm>;
|
|
57
|
+
protectedExposureByPage?: Record<string, unknown>;
|
|
58
|
+
protectedRedactionProfiles?: ProtectedRedactionProfiles;
|
|
59
|
+
secretCatalogByHost?: Record<string, SecretCatalog & {
|
|
60
|
+
source?: string;
|
|
61
|
+
}>;
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
};
|
|
64
|
+
stickyOwner?: Record<string, unknown>;
|
|
65
|
+
magicBrowseSessionId?: string;
|
|
66
|
+
runId?: string;
|
|
67
|
+
}
|
|
3
68
|
export interface CachedTransientSecretEntry {
|
|
4
69
|
requestId: string;
|
|
5
70
|
fillRef: string;
|
|
@@ -12,6 +77,12 @@ export interface CachedTransientSecretEntry {
|
|
|
12
77
|
export type SessionOpenDataSource = 'profile_facts' | 'session_open_value';
|
|
13
78
|
export type SessionOpenDataFreshness = 'profile_snapshot' | 'session_learned';
|
|
14
79
|
export type SessionOpenDataSensitivity = 'open' | 'protected';
|
|
80
|
+
export type SessionOpenDataApplicability = {
|
|
81
|
+
target: 'global';
|
|
82
|
+
} | {
|
|
83
|
+
target: 'host';
|
|
84
|
+
value: string;
|
|
85
|
+
};
|
|
15
86
|
export interface SessionOpenDataProvenance {
|
|
16
87
|
kind: 'profile_facts' | 'data_resolve' | 'data_provide';
|
|
17
88
|
requestId?: string;
|
|
@@ -22,10 +93,7 @@ export interface SessionOpenDataEntry {
|
|
|
22
93
|
source: SessionOpenDataSource;
|
|
23
94
|
freshness: SessionOpenDataFreshness;
|
|
24
95
|
sensitivity: SessionOpenDataSensitivity;
|
|
25
|
-
applicability:
|
|
26
|
-
target: 'global' | 'host';
|
|
27
|
-
value?: string;
|
|
28
|
-
};
|
|
96
|
+
applicability: SessionOpenDataApplicability;
|
|
29
97
|
updatedAt: string;
|
|
30
98
|
factsUpdatedAt?: string;
|
|
31
99
|
provenance: SessionOpenDataProvenance;
|
|
@@ -88,4 +156,5 @@ export declare function loadMagicPayBrowserSession(): MagicPayBrowserSessionStat
|
|
|
88
156
|
export declare function deleteMagicPayBrowserSession(): void;
|
|
89
157
|
export declare function saveMagicPaySession(session: MagicPaySession): void;
|
|
90
158
|
export declare function loadMagicPaySession(): MagicPaySession | null;
|
|
159
|
+
export declare function resolveBrowserSessionId(session: Pick<BrowserSessionState, 'cdpUrl' | 'identity' | 'pid' | 'magicBrowseSessionId'>): string;
|
|
91
160
|
//# sourceMappingURL=workflow-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow-state.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { createBrowserSessionStore, resolveBrowserSessionId, } from '@mercuryo-ai/agentbrowse';
|
|
2
1
|
import { deleteFileIfExists, atomicWriteJson, readJsonFile } from './fs.js';
|
|
3
|
-
import {
|
|
2
|
+
import { getMagicPayBrowserSessionPath, getMagicPayWorkflowStatePath, } from './paths.js';
|
|
4
3
|
export function withMagicPayCaptchaCapability(session, captchaSolve = true) {
|
|
5
4
|
const currentCapabilities = session.capabilities;
|
|
6
5
|
return {
|
|
@@ -71,7 +70,7 @@ function openDataEntryIdentity(entry) {
|
|
|
71
70
|
return [
|
|
72
71
|
normalizeOpenDataFieldKey(entry.fieldKey),
|
|
73
72
|
entry.applicability.target,
|
|
74
|
-
normalizeScopeValue(entry.applicability.value),
|
|
73
|
+
normalizeScopeValue(entry.applicability.target === 'host' ? entry.applicability.value : undefined),
|
|
75
74
|
entry.value,
|
|
76
75
|
].join('::');
|
|
77
76
|
}
|
|
@@ -189,10 +188,19 @@ export function getSessionOpenDataValues(session, fieldKey, options = {}) {
|
|
|
189
188
|
.map((entry) => cloneOpenDataEntry(entry));
|
|
190
189
|
}
|
|
191
190
|
function getMagicPayBrowserSessionStore() {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
const sessionPath = getMagicPayBrowserSessionPath();
|
|
192
|
+
return {
|
|
193
|
+
save(session) {
|
|
194
|
+
atomicWriteJson(sessionPath, session);
|
|
195
|
+
},
|
|
196
|
+
load() {
|
|
197
|
+
const session = readJsonFile(sessionPath);
|
|
198
|
+
return session?.cdpUrl ? session : null;
|
|
199
|
+
},
|
|
200
|
+
delete() {
|
|
201
|
+
deleteFileIfExists(sessionPath);
|
|
202
|
+
},
|
|
203
|
+
};
|
|
196
204
|
}
|
|
197
205
|
function isExpired(expiresAt, now) {
|
|
198
206
|
if (!expiresAt) {
|
|
@@ -359,3 +367,25 @@ export function loadMagicPaySession() {
|
|
|
359
367
|
return null;
|
|
360
368
|
}
|
|
361
369
|
}
|
|
370
|
+
function parseBrowserInstanceRef(cdpUrl) {
|
|
371
|
+
try {
|
|
372
|
+
const url = new URL(cdpUrl);
|
|
373
|
+
const pathname = url.pathname.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
374
|
+
return `${url.host}${pathname ? `/${pathname}` : ''}`;
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
return cdpUrl.replace(/^https?:\/\//, '').replace(/^wss?:\/\//, '').replace(/\/+$/, '');
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
export function resolveBrowserSessionId(session) {
|
|
381
|
+
if (session.magicBrowseSessionId) {
|
|
382
|
+
return session.magicBrowseSessionId;
|
|
383
|
+
}
|
|
384
|
+
if (session.identity?.browserInstanceRef) {
|
|
385
|
+
return session.identity.browserInstanceRef;
|
|
386
|
+
}
|
|
387
|
+
if (typeof session.pid === 'number' && Number.isFinite(session.pid) && session.pid > 0) {
|
|
388
|
+
return `pid-${session.pid}`;
|
|
389
|
+
}
|
|
390
|
+
return `cdp-${parseBrowserInstanceRef(session.cdpUrl)}`;
|
|
391
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercuryo-ai/magicpay-home",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Internal shared local home/config/state contract for MagicPay product CLIs",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@mercuryo-ai/
|
|
24
|
-
"@mercuryo-ai/magicpay-sdk": "0.1.
|
|
23
|
+
"@mercuryo-ai/magicbrowse": "0.0.1",
|
|
24
|
+
"@mercuryo-ai/magicpay-sdk": "0.1.4"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.0.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"vitest": "^4.0.18"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
|
-
"build": "pnpm --dir ../.. --filter @mercuryo-ai/
|
|
33
|
-
"check-types": "pnpm --dir ../.. --filter @mercuryo-ai/
|
|
32
|
+
"build": "pnpm --dir ../.. --filter @mercuryo-ai/magicbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build && node -e \"require('node:fs').rmSync('dist',{ recursive: true, force: true, maxRetries: 10, retryDelay: 50 })\" && tsc -p tsconfig.build.json",
|
|
33
|
+
"check-types": "pnpm --dir ../.. --filter @mercuryo-ai/magicbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build && tsc --noEmit",
|
|
34
34
|
"pack:verify": "node scripts/verify-pack-artifact.mjs",
|
|
35
35
|
"smoke:pack-install": "node scripts/verify-pack-install-smoke.mjs",
|
|
36
36
|
"test": "npm run test:deps && vitest run",
|
|
37
|
-
"test:deps": "pnpm --dir ../.. --filter @mercuryo-ai/
|
|
37
|
+
"test:deps": "pnpm --dir ../.. --filter @mercuryo-ai/magicbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build"
|
|
38
38
|
}
|
|
39
39
|
}
|