@awcp/sdk 0.0.10 → 0.0.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.
Files changed (36) hide show
  1. package/dist/delegator/config.d.ts +33 -22
  2. package/dist/delegator/config.d.ts.map +1 -1
  3. package/dist/delegator/config.js +14 -10
  4. package/dist/delegator/config.js.map +1 -1
  5. package/dist/delegator/executor-client.d.ts +9 -1
  6. package/dist/delegator/executor-client.d.ts.map +1 -1
  7. package/dist/delegator/executor-client.js +38 -0
  8. package/dist/delegator/executor-client.js.map +1 -1
  9. package/dist/delegator/index.d.ts +1 -1
  10. package/dist/delegator/index.d.ts.map +1 -1
  11. package/dist/delegator/index.js +1 -1
  12. package/dist/delegator/index.js.map +1 -1
  13. package/dist/delegator/service.d.ts +11 -14
  14. package/dist/delegator/service.d.ts.map +1 -1
  15. package/dist/delegator/service.js +158 -33
  16. package/dist/delegator/service.js.map +1 -1
  17. package/dist/delegator/snapshot-store.d.ts +27 -0
  18. package/dist/delegator/snapshot-store.d.ts.map +1 -0
  19. package/dist/delegator/snapshot-store.js +40 -0
  20. package/dist/delegator/snapshot-store.js.map +1 -0
  21. package/dist/executor/config.d.ts +5 -2
  22. package/dist/executor/config.d.ts.map +1 -1
  23. package/dist/executor/config.js +2 -0
  24. package/dist/executor/config.js.map +1 -1
  25. package/dist/executor/service.d.ts +5 -1
  26. package/dist/executor/service.d.ts.map +1 -1
  27. package/dist/executor/service.js +80 -2
  28. package/dist/executor/service.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/listener/http-listener.d.ts.map +1 -1
  32. package/dist/listener/http-listener.js +10 -0
  33. package/dist/listener/http-listener.js.map +1 -1
  34. package/dist/utils/resolve-workdir.d.ts +2 -2
  35. package/dist/utils/resolve-workdir.d.ts.map +1 -1
  36. package/package.json +2 -2
@@ -1,15 +1,19 @@
1
1
  /**
2
2
  * AWCP Delegator Configuration
3
3
  */
4
- import type { Delegation, AccessMode, DelegatorTransportAdapter } from '@awcp/core';
4
+ import type { Delegation, AccessMode, DelegatorTransportAdapter, SnapshotPolicy, EnvironmentSnapshot } from '@awcp/core';
5
5
  import type { AdmissionConfig } from './admission.js';
6
6
  export type { AdmissionConfig } from './admission.js';
7
7
  /**
8
- * Environment builder configuration
8
+ * Snapshot policy configuration
9
9
  */
10
- export interface EnvironmentConfig {
11
- /** Base directory for environment directories */
12
- baseDir: string;
10
+ export interface SnapshotConfig {
11
+ /** Snapshot mode: auto=immediate apply, staged=store for selection, discard=no storage */
12
+ mode?: SnapshotPolicy;
13
+ /** Retention time in ms for staged snapshots (default: 30 minutes) */
14
+ retentionMs?: number;
15
+ /** Maximum snapshots per delegation (default: 10) */
16
+ maxSnapshots?: number;
13
17
  }
14
18
  /**
15
19
  * Default values for delegations
@@ -27,18 +31,22 @@ export interface DelegatorHooks {
27
31
  onDelegationCreated?: (delegation: Delegation) => void;
28
32
  onDelegationStarted?: (delegation: Delegation) => void;
29
33
  onDelegationCompleted?: (delegation: Delegation) => void;
34
+ onSnapshotReceived?: (delegation: Delegation, snapshot: EnvironmentSnapshot) => void;
35
+ onSnapshotApplied?: (delegation: Delegation, snapshot: EnvironmentSnapshot) => void;
30
36
  onError?: (delegationId: string, error: Error) => void;
31
37
  }
32
38
  /**
33
39
  * AWCP Delegator Configuration
34
40
  */
35
41
  export interface DelegatorConfig {
36
- /** Environment builder configuration */
37
- environment: EnvironmentConfig;
42
+ /** Base directory for all delegation data (environments, snapshots) */
43
+ baseDir: string;
38
44
  /** Transport adapter for data plane */
39
45
  transport: DelegatorTransportAdapter;
40
46
  /** Admission control */
41
47
  admission?: AdmissionConfig;
48
+ /** Snapshot policy */
49
+ snapshot?: SnapshotConfig;
42
50
  /** Default values for delegations */
43
51
  defaults?: DelegationDefaults;
44
52
  /** Lifecycle hooks */
@@ -52,6 +60,14 @@ export declare const DEFAULT_ADMISSION: {
52
60
  readonly maxFileCount: 10000;
53
61
  readonly maxSingleFileBytes: number;
54
62
  };
63
+ /**
64
+ * Default snapshot settings
65
+ */
66
+ export declare const DEFAULT_SNAPSHOT: {
67
+ readonly mode: SnapshotPolicy;
68
+ readonly retentionMs: number;
69
+ readonly maxSnapshots: 10;
70
+ };
55
71
  /**
56
72
  * Default delegation settings
57
73
  */
@@ -59,20 +75,6 @@ export declare const DEFAULT_DELEGATION: {
59
75
  readonly ttlSeconds: 3600;
60
76
  readonly accessMode: AccessMode;
61
77
  };
62
- /**
63
- * Combined default configuration
64
- */
65
- export declare const DEFAULT_DELEGATOR_CONFIG: {
66
- readonly admission: {
67
- readonly maxTotalBytes: number;
68
- readonly maxFileCount: 10000;
69
- readonly maxSingleFileBytes: number;
70
- };
71
- readonly defaults: {
72
- readonly ttlSeconds: 3600;
73
- readonly accessMode: AccessMode;
74
- };
75
- };
76
78
  /**
77
79
  * Resolved admission config with all fields
78
80
  */
@@ -81,6 +83,14 @@ export interface ResolvedAdmissionConfig {
81
83
  maxFileCount: number;
82
84
  maxSingleFileBytes: number;
83
85
  }
86
+ /**
87
+ * Resolved snapshot config with all fields
88
+ */
89
+ export interface ResolvedSnapshotConfig {
90
+ mode: SnapshotPolicy;
91
+ retentionMs: number;
92
+ maxSnapshots: number;
93
+ }
84
94
  /**
85
95
  * Resolved defaults with all fields
86
96
  */
@@ -92,9 +102,10 @@ export interface ResolvedDelegationDefaults {
92
102
  * Resolved configuration with all defaults applied
93
103
  */
94
104
  export interface ResolvedDelegatorConfig {
95
- environment: EnvironmentConfig;
105
+ baseDir: string;
96
106
  transport: DelegatorTransportAdapter;
97
107
  admission: ResolvedAdmissionConfig;
108
+ snapshot: ResolvedSnapshotConfig;
98
109
  defaults: ResolvedDelegationDefaults;
99
110
  hooks: DelegatorHooks;
100
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,uCAAuC;IACvC,SAAS,EAAE,yBAAyB,CAAC;IACrC,wBAAwB;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,sBAAsB;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;yBAET,UAAU;CACtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;6BANf,UAAU;;CAStB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,EAAE,uBAAuB,CAAC;IACnC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,uBAAuB,CAiBvF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,yBAAyB,CAAC;IACrC,wBAAwB;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,sBAAsB;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;mBACX,cAAc;;;CAGtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;yBAET,UAAU;CACtB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,EAAE,uBAAuB,CAAC;IACnC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,uBAAuB,CAoBvF"}
@@ -9,6 +9,14 @@ export const DEFAULT_ADMISSION = {
9
9
  maxFileCount: 10000,
10
10
  maxSingleFileBytes: 50 * 1024 * 1024, // 50MB
11
11
  };
12
+ /**
13
+ * Default snapshot settings
14
+ */
15
+ export const DEFAULT_SNAPSHOT = {
16
+ mode: 'auto',
17
+ retentionMs: 30 * 60 * 1000, // 30 minutes
18
+ maxSnapshots: 10,
19
+ };
12
20
  /**
13
21
  * Default delegation settings
14
22
  */
@@ -16,24 +24,20 @@ export const DEFAULT_DELEGATION = {
16
24
  ttlSeconds: 3600,
17
25
  accessMode: 'rw',
18
26
  };
19
- /**
20
- * Combined default configuration
21
- */
22
- export const DEFAULT_DELEGATOR_CONFIG = {
23
- admission: DEFAULT_ADMISSION,
24
- defaults: DEFAULT_DELEGATION,
25
- };
26
27
  export function resolveDelegatorConfig(config) {
27
28
  return {
28
- environment: {
29
- baseDir: config.environment.baseDir,
30
- },
29
+ baseDir: config.baseDir,
31
30
  transport: config.transport,
32
31
  admission: {
33
32
  maxTotalBytes: config.admission?.maxTotalBytes ?? DEFAULT_ADMISSION.maxTotalBytes,
34
33
  maxFileCount: config.admission?.maxFileCount ?? DEFAULT_ADMISSION.maxFileCount,
35
34
  maxSingleFileBytes: config.admission?.maxSingleFileBytes ?? DEFAULT_ADMISSION.maxSingleFileBytes,
36
35
  },
36
+ snapshot: {
37
+ mode: config.snapshot?.mode ?? DEFAULT_SNAPSHOT.mode,
38
+ retentionMs: config.snapshot?.retentionMs ?? DEFAULT_SNAPSHOT.retentionMs,
39
+ maxSnapshots: config.snapshot?.maxSnapshots ?? DEFAULT_SNAPSHOT.maxSnapshots,
40
+ },
37
41
  defaults: {
38
42
  ttlSeconds: config.defaults?.ttlSeconds ?? DEFAULT_DELEGATION.ttlSeconds,
39
43
  accessMode: config.defaults?.accessMode ?? DEFAULT_DELEGATION.accessMode,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoDH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAO,QAAQ;IAC/C,YAAY,EAAE,KAAK;IACnB,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAG,OAAO;CACtC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAkB;CACtB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,kBAAkB;CACpB,CAAC;AA8BX,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;SACpC;QACD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE;YACT,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,IAAI,iBAAiB,CAAC,aAAa;YACjF,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,iBAAiB,CAAC,YAAY;YAC9E,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,iBAAiB,CAAC,kBAAkB;SACjG;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAU;YACxE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAU;SACzE;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4DH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAO,QAAQ;IAC/C,YAAY,EAAE,KAAK;IACnB,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAG,OAAO;CACtC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAwB;IAC9B,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAY,aAAa;IACpD,YAAY,EAAE,EAAE;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAkB;CACtB,CAAC;AAwCX,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE;YACT,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,IAAI,iBAAiB,CAAC,aAAa;YACjF,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,iBAAiB,CAAC,YAAY;YAC9E,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,iBAAiB,CAAC,kBAAkB;SACjG;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,gBAAgB,CAAC,IAAI;YACpD,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,gBAAgB,CAAC,WAAW;YACzE,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,IAAI,gBAAgB,CAAC,YAAY;SAC7E;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAU;YACxE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAU;SACzE;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HTTP Client for sending AWCP messages to Executor
3
3
  */
4
- import type { AwcpMessage, AcceptMessage, ErrorMessage, TaskEvent } from '@awcp/core';
4
+ import type { AwcpMessage, AcceptMessage, ErrorMessage, TaskEvent, TaskResultResponse } from '@awcp/core';
5
5
  export type InviteResponse = AcceptMessage | ErrorMessage;
6
6
  export interface ExecutorClientOptions {
7
7
  timeout?: number;
@@ -30,6 +30,14 @@ export declare class ExecutorClient {
30
30
  * Request Executor to cancel a delegation
31
31
  */
32
32
  sendCancel(executorUrl: string, delegationId: string): Promise<void>;
33
+ /**
34
+ * Fetch task result from Executor (for offline recovery)
35
+ */
36
+ fetchResult(executorUrl: string, delegationId: string): Promise<TaskResultResponse>;
37
+ /**
38
+ * Acknowledge result receipt to Executor
39
+ */
40
+ acknowledgeResult(executorUrl: string, delegationId: string): Promise<void>;
33
41
  private send;
34
42
  }
35
43
  //# sourceMappingURL=executor-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor-client.d.ts","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;gBAEpB,OAAO,CAAC,EAAE,qBAAqB;IAM3C;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpF;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;YAkB1E,OAAO;IAgDtB;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB5D,IAAI;CAwBnB"}
1
+ {"version":3,"file":"executor-client.d.ts","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1G,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;gBAEpB,OAAO,CAAC,EAAE,qBAAqB;IAM3C;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpF;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;YAkB1E,OAAO;IAgDtB;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1E;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBzF;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBnE,IAAI;CAwBnB"}
@@ -111,6 +111,44 @@ export class ExecutorClient {
111
111
  clearTimeout(timeoutId);
112
112
  }
113
113
  }
114
+ /**
115
+ * Fetch task result from Executor (for offline recovery)
116
+ */
117
+ async fetchResult(executorUrl, delegationId) {
118
+ const baseUrl = executorUrl.replace(/\/$/, '').replace(/\/awcp$/, '');
119
+ const url = `${baseUrl}/awcp/tasks/${delegationId}/result`;
120
+ const controller = new AbortController();
121
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
122
+ try {
123
+ const response = await fetch(url, {
124
+ headers: { 'Content-Type': 'application/json' },
125
+ signal: controller.signal,
126
+ });
127
+ return await response.json();
128
+ }
129
+ finally {
130
+ clearTimeout(timeoutId);
131
+ }
132
+ }
133
+ /**
134
+ * Acknowledge result receipt to Executor
135
+ */
136
+ async acknowledgeResult(executorUrl, delegationId) {
137
+ const baseUrl = executorUrl.replace(/\/$/, '').replace(/\/awcp$/, '');
138
+ const url = `${baseUrl}/awcp/tasks/${delegationId}/ack`;
139
+ const controller = new AbortController();
140
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
141
+ try {
142
+ await fetch(url, {
143
+ method: 'POST',
144
+ headers: { 'Content-Type': 'application/json' },
145
+ signal: controller.signal,
146
+ });
147
+ }
148
+ finally {
149
+ clearTimeout(timeoutId);
150
+ }
151
+ }
114
152
  async send(executorUrl, message) {
115
153
  const controller = new AbortController();
116
154
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
@@ -1 +1 @@
1
- {"version":3,"file":"executor-client.js","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-client.js","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { DelegatorService, type DelegatorServiceOptions } from './service.js';
2
- export { type DelegatorConfig, type EnvironmentConfig, type AdmissionConfig, type DelegationDefaults, type DelegatorHooks, type ResolvedDelegatorConfig, DEFAULT_DELEGATOR_CONFIG, DEFAULT_ADMISSION, DEFAULT_DELEGATION, resolveDelegatorConfig, } from './config.js';
2
+ export { type DelegatorConfig, type SnapshotConfig, type AdmissionConfig, type DelegationDefaults, type DelegatorHooks, type ResolvedDelegatorConfig, type ResolvedSnapshotConfig, DEFAULT_ADMISSION, DEFAULT_SNAPSHOT, DEFAULT_DELEGATION, resolveDelegatorConfig, } from './config.js';
3
3
  export { startDelegatorDaemon, type DaemonConfig, type DaemonInstance, } from './bin/daemon.js';
4
4
  export { DelegatorDaemonClient, type DelegateRequest, type DelegateResponse, type ListDelegationsResponse, } from './bin/client.js';
5
5
  export { AdmissionController, type AdmissionResult, type WorkspaceStats } from './admission.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,KAAK,eAAe,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,KAAK,eAAe,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // High-level API
2
2
  export { DelegatorService } from './service.js';
3
- export { DEFAULT_DELEGATOR_CONFIG, DEFAULT_ADMISSION, DEFAULT_DELEGATION, resolveDelegatorConfig, } from './config.js';
3
+ export { DEFAULT_ADMISSION, DEFAULT_SNAPSHOT, DEFAULT_DELEGATION, resolveDelegatorConfig, } from './config.js';
4
4
  // Daemon mode
5
5
  export { startDelegatorDaemon, } from './bin/daemon.js';
6
6
  export { DelegatorDaemonClient, } from './bin/client.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAgC,MAAM,cAAc,CAAC;AAC9E,OAAO,EAOL,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,cAAc;AACd,OAAO,EACL,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAA6C,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAwF,MAAM,0BAA0B,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAwB,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAgC,MAAM,cAAc,CAAC;AAC9E,OAAO,EAQL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,cAAc;AACd,OAAO,EACL,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAA6C,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAwF,MAAM,0BAA0B,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAwB,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Manages the AWCP delegation protocol on the Delegator side.
5
5
  */
6
- import { type Delegation, type AcceptMessage, type DoneMessage, type ErrorMessage, type AwcpMessage, type DelegatorServiceStatus, type DelegatorRequestHandler, type DelegateParams } from '@awcp/core';
6
+ import { type Delegation, type AcceptMessage, type DoneMessage, type ErrorMessage, type AwcpMessage, type DelegatorServiceStatus, type DelegatorRequestHandler, type DelegateParams, type EnvironmentSnapshot } from '@awcp/core';
7
7
  import { type DelegatorConfig } from './config.js';
8
8
  export interface DelegatorServiceOptions {
9
9
  config: DelegatorConfig;
@@ -13,37 +13,34 @@ export declare class DelegatorService implements DelegatorRequestHandler {
13
13
  private transport;
14
14
  private admissionController;
15
15
  private environmentBuilder;
16
+ private snapshotStore;
16
17
  private executorClient;
17
18
  private delegations;
18
19
  private stateMachines;
19
20
  private executorUrls;
21
+ private cleanupTimer?;
20
22
  constructor(options: DelegatorServiceOptions);
21
23
  delegate(params: DelegateParams): Promise<string>;
22
24
  handleAccept(message: AcceptMessage): Promise<void>;
23
25
  private subscribeToTaskEvents;
24
26
  private handleTaskEvent;
25
- /**
26
- * Apply result from Executor back to original workspace
27
- */
28
- private applyResult;
27
+ private handleSnapshotEvent;
28
+ private applySnapshotToWorkspace;
29
29
  handleDone(message: DoneMessage): Promise<void>;
30
30
  handleError(message: ErrorMessage): Promise<void>;
31
31
  handleMessage(message: AwcpMessage): Promise<void>;
32
32
  cancel(delegationId: string): Promise<void>;
33
33
  getDelegation(delegationId: string): Delegation | undefined;
34
+ listSnapshots(delegationId: string): EnvironmentSnapshot[];
35
+ applySnapshot(delegationId: string, snapshotId: string): Promise<void>;
36
+ discardSnapshot(delegationId: string, snapshotId: string): Promise<void>;
34
37
  waitForCompletion(delegationId: string, timeoutMs?: number): Promise<Delegation>;
35
38
  getStatus(): DelegatorServiceStatus;
39
+ stop(): void;
40
+ private shouldCleanup;
36
41
  private cleanup;
37
- /**
38
- * Transition delegation state and keep delegation.state in sync
39
- */
42
+ private startCleanupTimer;
40
43
  private transitionState;
41
- /**
42
- * Validate and normalize the workspace path.
43
- * - Converts relative paths to absolute paths
44
- * - Verifies the directory exists
45
- * - Returns the normalized absolute path
46
- */
47
44
  private validateAndNormalizePath;
48
45
  }
49
46
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/delegator/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAGhB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EASpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,aAAa,CAAC;AAKzG,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,gBAAiB,YAAW,uBAAuB;IAC9D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,YAAY,CAA6B;gBAErC,OAAO,EAAE,uBAAuB;IAiBtC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA4EjD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAkD3C,qBAAqB;YAyBrB,eAAe;IAsC7B;;OAEG;YACW,WAAW;IAwBnB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B7F,SAAS,IAAI,sBAAsB;YAarB,OAAO;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;;OAKG;YACW,wBAAwB;CAiCvC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/delegator/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAIhB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAUzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,aAAa,CAAC;AAMzG,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,gBAAiB,YAAW,uBAAuB;IAC9D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,OAAO,EAAE,uBAAuB;IA2BtC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuFjD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAiD3C,qBAAqB;YAwBrB,eAAe;YA2Cf,mBAAmB;YAmDnB,wBAAwB;IAuBhC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC/C,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAMpD,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxE,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B7F,SAAS,IAAI,sBAAsB;IAanC,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,aAAa;YAOP,OAAO;IAOrB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,eAAe;YAcT,wBAAwB;CA+BvC"}