@stigmer/server 3.22.1 → 3.23.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 (71) hide show
  1. package/dist/artifactstorage/artifact-storage.d.ts +29 -31
  2. package/dist/artifactstorage/artifact-storage.d.ts.map +1 -1
  3. package/dist/artifactstorage/artifact-storage.js +5 -7
  4. package/dist/artifactstorage/artifact-storage.js.map +1 -1
  5. package/dist/artifactstorage/r2-storage.d.ts +12 -7
  6. package/dist/artifactstorage/r2-storage.d.ts.map +1 -1
  7. package/dist/artifactstorage/r2-storage.js +6 -14
  8. package/dist/artifactstorage/r2-storage.js.map +1 -1
  9. package/dist/boot/compose.d.ts.map +1 -1
  10. package/dist/boot/compose.js +49 -24
  11. package/dist/boot/compose.js.map +1 -1
  12. package/dist/boot/config.d.ts +4 -3
  13. package/dist/boot/config.d.ts.map +1 -1
  14. package/dist/boot/config.js.map +1 -1
  15. package/dist/boot/skill-transfer-origin.d.ts +52 -0
  16. package/dist/boot/skill-transfer-origin.d.ts.map +1 -0
  17. package/dist/boot/skill-transfer-origin.js +54 -0
  18. package/dist/boot/skill-transfer-origin.js.map +1 -0
  19. package/dist/domain/plugin/controller.d.ts +3 -7
  20. package/dist/domain/plugin/controller.d.ts.map +1 -1
  21. package/dist/domain/plugin/controller.js +8 -8
  22. package/dist/domain/plugin/controller.js.map +1 -1
  23. package/dist/domain/skill/constants.d.ts +26 -3
  24. package/dist/domain/skill/constants.d.ts.map +1 -1
  25. package/dist/domain/skill/constants.js +26 -3
  26. package/dist/domain/skill/constants.js.map +1 -1
  27. package/dist/domain/skill/controller.d.ts +6 -11
  28. package/dist/domain/skill/controller.d.ts.map +1 -1
  29. package/dist/domain/skill/controller.js +33 -22
  30. package/dist/domain/skill/controller.js.map +1 -1
  31. package/dist/domain/skill/push.d.ts +2 -2
  32. package/dist/domain/skill/push.d.ts.map +1 -1
  33. package/dist/domain/skill/push.js +2 -2
  34. package/dist/domain/skill/push.js.map +1 -1
  35. package/dist/domain/skill/transfer/handler.d.ts +17 -9
  36. package/dist/domain/skill/transfer/handler.d.ts.map +1 -1
  37. package/dist/domain/skill/transfer/handler.js +19 -8
  38. package/dist/domain/skill/transfer/handler.js.map +1 -1
  39. package/dist/domain/skill/transfer/slots.d.ts +26 -41
  40. package/dist/domain/skill/transfer/slots.d.ts.map +1 -1
  41. package/dist/domain/skill/transfer/slots.js +80 -87
  42. package/dist/domain/skill/transfer/slots.js.map +1 -1
  43. package/dist/domain/skill/transfer/staging.d.ts +48 -0
  44. package/dist/domain/skill/transfer/staging.d.ts.map +1 -0
  45. package/dist/domain/skill/transfer/staging.js +127 -0
  46. package/dist/domain/skill/transfer/staging.js.map +1 -0
  47. package/dist/pipeline/steps/resolve-artifact-source.d.ts +11 -8
  48. package/dist/pipeline/steps/resolve-artifact-source.d.ts.map +1 -1
  49. package/dist/pipeline/steps/resolve-artifact-source.js +8 -4
  50. package/dist/pipeline/steps/resolve-artifact-source.js.map +1 -1
  51. package/package.json +6 -6
  52. package/src/artifactstorage/__tests__/artifact-storage.test.ts +36 -33
  53. package/src/artifactstorage/__tests__/r2-storage.test.ts +11 -13
  54. package/src/artifactstorage/artifact-storage.ts +37 -33
  55. package/src/artifactstorage/r2-storage.ts +6 -15
  56. package/src/boot/__tests__/skill-transfer-origin.test.ts +72 -0
  57. package/src/boot/compose.ts +62 -25
  58. package/src/boot/config.ts +4 -3
  59. package/src/boot/skill-transfer-origin.ts +76 -0
  60. package/src/domain/plugin/controller.ts +15 -17
  61. package/src/domain/skill/__tests__/skill.test.ts +5 -3
  62. package/src/domain/skill/__tests__/slots.test.ts +113 -60
  63. package/src/domain/skill/__tests__/staging.test.ts +304 -0
  64. package/src/domain/skill/constants.ts +28 -3
  65. package/src/domain/skill/controller.ts +44 -35
  66. package/src/domain/skill/push.ts +3 -3
  67. package/src/domain/skill/transfer/handler.ts +33 -15
  68. package/src/domain/skill/transfer/slots.ts +89 -100
  69. package/src/domain/skill/transfer/staging.ts +191 -0
  70. package/src/pipeline/steps/resolve-artifact-source.ts +20 -13
  71. package/src/transport/registry/__tests__/lanes.test.ts +1 -1
@@ -12,17 +12,15 @@ export declare class ArtifactStorageNotFoundError extends Error {
12
12
  constructor(key: string);
13
13
  }
14
14
  /**
15
- * A staged upload minted by presignPut: the URL receives the bytes, the
16
- * stagingKey reads them back through the same driver. Staged blobs are
17
- * short-lived by contract — the local lane sweeps them on TTL expiry and
18
- * boot; R2 deployments configure a bucket lifecycle rule on the staging
19
- * prefix (the §6b driver-side sweep expectation).
15
+ * A staged upload minted by presignPut: the URL receives the bytes, which
16
+ * the caller reads back through download() under the key IT named. Staged
17
+ * blobs are short-lived by contract — the local lane sweeps them on TTL
18
+ * expiry and boot; a bucket deployment configures a lifecycle rule on the
19
+ * domain's staging prefix (the §6b driver-side sweep expectation).
20
20
  */
21
21
  export interface PresignedUpload {
22
- /** Accepts one HTTP PUT of exactly the declared byte count. */
22
+ /** Accepts an HTTP PUT of exactly the declared byte count. */
23
23
  readonly url: string;
24
- /** Driver key where the staged bytes land, readable via download(). */
25
- readonly stagingKey: string;
26
24
  /** The TTL actually granted, after per-driver clamping. */
27
25
  readonly ttlMs: number;
28
26
  }
@@ -47,18 +45,21 @@ export interface ArtifactStorage {
47
45
  */
48
46
  getSignedUrl(key: string, expiresInMs: number, downloadFilename: string): Promise<string>;
49
47
  /**
50
- * A time-limited upload URL for a staging-prefixed blob of exactly
51
- * declaredSizeBytes (§6b). Per-driver semantics differ DELIBERATELY and
52
- * are contract, not accident: the local backend rides the skill transfer
53
- * lane's URL-as-credential slot mechanism (single-use, exact-size
54
- * enforced by the lane, TTL clamped to the lane's slot TTL) and answers
55
- * only on instances with a staged-upload lane wired — unwired instances
56
- * throw the explicit not-configured error, never a silent no-op. The R2
57
- * backend presigns a PUT (repeatable within its TTL, size enforced by
58
- * the signed Content-Length header, TTL clamped to the 7-day R2
59
- * maximum).
48
+ * A time-limited upload URL for a blob of exactly declaredSizeBytes at
49
+ * the key the CALLER names (§6b). The key is the domain's: it chooses
50
+ * the staging prefix its sweep targets and the mapping from its wire
51
+ * reference, and reads the bytes back through download(key) — the
52
+ * driver never invents a key of its own. Per-driver semantics differ
53
+ * DELIBERATELY and are contract, not accident: the local backend rides
54
+ * the skill transfer lane's URL-as-credential slot mechanism
55
+ * (single-use, exact-size enforced by the lane, TTL clamped to the
56
+ * lane's slot TTL) and answers only on instances with a staged-upload
57
+ * lane wired — unwired instances throw the explicit not-configured
58
+ * error, never a silent no-op. The R2 backend presigns a PUT
59
+ * (repeatable within its TTL, size enforced by the signed
60
+ * Content-Length header, TTL clamped to the 7-day R2 maximum).
60
61
  */
61
- presignPut(declaredSizeBytes: number, ttlMs: number): Promise<PresignedUpload>;
62
+ presignPut(key: string, declaredSizeBytes: number, ttlMs: number): Promise<PresignedUpload>;
62
63
  /** Removes the artifact; missing is not an error. */
63
64
  delete(key: string): Promise<void>;
64
65
  /** Whether an artifact with the key exists. */
@@ -83,19 +84,16 @@ export type ArtifactStorageDriverFactory = () => ArtifactStorage;
83
84
  * the shape it needs and stays ignorant of who provides it.
84
85
  */
85
86
  export interface StagedUploadLane {
86
- /** Reserves a single-use upload slot; returns its reference + TTL. */
87
- mint(declaredSizeBytes: number): {
88
- ref: string;
89
- ttlMs: number;
90
- };
91
- /** The externally-reachable PUT URL for a minted reference. */
92
- uploadUrl(ref: string): string;
93
87
  /**
94
- * The driver key where the reference's staged bytes land — MUST resolve
95
- * inside the driver instance's root, or download(stagingKey) could
96
- * never read what the lane received.
88
+ * Reserves a single-use upload slot whose bytes land at `key` under this
89
+ * driver instance's root — the lane stages into the driver's own tree,
90
+ * so download(key) reads exactly what the lane received. Returns the
91
+ * externally-reachable PUT URL and the TTL the lane grants.
97
92
  */
98
- stagedKey(ref: string): string;
93
+ reserve(key: string, declaredSizeBytes: number): {
94
+ url: string;
95
+ ttlMs: number;
96
+ };
99
97
  }
100
98
  export interface ArtifactStorageConfig {
101
99
  /** "local" or "r2" ("" defaults to local — Go NewArtifactStorage). */
@@ -145,7 +143,7 @@ export declare class LocalArtifactStorage implements ArtifactStorage {
145
143
  upload(key: string, data: Uint8Array, _contentType: string): Promise<void>;
146
144
  download(key: string): Promise<Uint8Array>;
147
145
  size(key: string): Promise<number>;
148
- presignPut(declaredSizeBytes: number, _ttlMs: number): Promise<PresignedUpload>;
146
+ presignPut(key: string, declaredSizeBytes: number, _ttlMs: number): Promise<PresignedUpload>;
149
147
  getSignedUrl(key: string, _expiresInMs: number, downloadFilename: string): Promise<string>;
150
148
  delete(key: string): Promise<void>;
151
149
  exists(key: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-storage.d.ts","sourceRoot":"","sources":["../../src/artifactstorage/artifact-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-storage.d.ts","sourceRoot":"","sources":["../../src/artifactstorage/artifact-storage.ts"],"names":[],"mappings":"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"}
@@ -132,19 +132,17 @@ export class LocalArtifactStorage {
132
132
  throw error;
133
133
  }
134
134
  }
135
- async presignPut(declaredSizeBytes, _ttlMs) {
135
+ async presignPut(key, declaredSizeBytes, _ttlMs) {
136
136
  if (this.stagedUploadLane === undefined) {
137
137
  throw new Error("local presigned uploads not configured - no staged-upload lane is wired to this store instance");
138
138
  }
139
+ // The key must be one this instance can read back, or the lane would
140
+ // stage bytes download(key) can never reach.
141
+ this.resolveWithinRoot(key);
139
142
  // The lane's slot TTL governs, not the caller's ask — the slot
140
143
  // registry sweeps on ITS clock, and a URL outliving its slot would be
141
144
  // a credential for nothing.
142
- const { ref, ttlMs } = this.stagedUploadLane.mint(declaredSizeBytes);
143
- return {
144
- url: this.stagedUploadLane.uploadUrl(ref),
145
- stagingKey: this.stagedUploadLane.stagedKey(ref),
146
- ttlMs,
147
- };
145
+ return this.stagedUploadLane.reserve(key, declaredSizeBytes);
148
146
  }
149
147
  async getSignedUrl(key, _expiresInMs, downloadFilename) {
150
148
  if (this.serveUrl === "") {
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-storage.js","sourceRoot":"","sources":["../../src/artifactstorage/artifact-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-storage.js","sourceRoot":"","sources":["../../src/artifactstorage/artifact-storage.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,19 @@
1
+ /**
2
+ * R2 artifact storage — ports pkg/domain/artifact/storage/r2_storage.go:
3
+ * the Cloudflare R2 (S3-compatible) backend, filling the factory arm #17
4
+ * deferred to this sub-project (owner-ratified, approved at the #13 plan
5
+ * gate together with the @aws-sdk dependency).
6
+ *
7
+ * Not conformance-assertable on the local targets (same as Go — the Go
8
+ * tree carries no R2 tests at all); the port adds unit pins for the pieces
9
+ * that have logic: config validation copy, the 7-day presign clamp, the
10
+ * signed Content-Disposition, and the not-found mapping.
11
+ */
1
12
  import { S3Client } from "@aws-sdk/client-s3";
2
13
  import { getSignedUrl as presignGetObject } from "@aws-sdk/s3-request-presigner";
3
14
  import type { ArtifactStorage, PresignedUpload } from "./artifact-storage.js";
4
15
  /** Go: "R2 has a maximum expiration of 7 days" — presigns clamp here. */
5
16
  export declare const R2_MAX_EXPIRATION_MS: number;
6
- /**
7
- * Key prefix for presignPut staging blobs (§6b). Pinned as the surface a
8
- * deployment's bucket lifecycle rule targets: the driver mints under it,
9
- * operations sweeps it — changing it orphans staged blobs from the sweep.
10
- */
11
- export declare const R2_STAGING_PREFIX = "staging/";
12
17
  export interface R2StorageConfig {
13
18
  readonly bucket: string;
14
19
  readonly endpoint: string;
@@ -40,7 +45,7 @@ export declare class R2ArtifactStorage implements ArtifactStorage {
40
45
  upload(key: string, data: Uint8Array, contentType: string): Promise<void>;
41
46
  download(key: string): Promise<Uint8Array>;
42
47
  size(key: string): Promise<number>;
43
- presignPut(declaredSizeBytes: number, ttlMs: number): Promise<PresignedUpload>;
48
+ presignPut(key: string, declaredSizeBytes: number, ttlMs: number): Promise<PresignedUpload>;
44
49
  getSignedUrl(key: string, expiresInMs: number, downloadFilename: string): Promise<string>;
45
50
  delete(key: string): Promise<void>;
46
51
  exists(key: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"r2-storage.d.ts","sourceRoot":"","sources":["../../src/artifactstorage/r2-storage.ts"],"names":[],"mappings":"AAaA,OAAO,EAML,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM9E,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAU5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,gBAAgB,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAE7E;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,SAAS;IAkClD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB1C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclC,UAAU,CACd,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC;IAwBrB,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IAoBZ,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAS9B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAevD"}
1
+ {"version":3,"file":"r2-storage.d.ts","sourceRoot":"","sources":["../../src/artifactstorage/r2-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAML,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM9E,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAU5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,gBAAgB,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAE7E;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,SAAS;IAkClD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB1C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclC,UAAU,CACd,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC;IAuBrB,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IAoBZ,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAS9B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAevD"}
@@ -9,18 +9,11 @@
9
9
  * that have logic: config validation copy, the 7-day presign clamp, the
10
10
  * signed Content-Disposition, and the not-found mapping.
11
11
  */
12
- import { randomBytes } from "node:crypto";
13
12
  import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3";
14
13
  import { getSignedUrl as presignGetObject } from "@aws-sdk/s3-request-presigner";
15
14
  import { ArtifactStorageNotFoundError, contentDispositionAttachment, } from "./artifact-storage.js";
16
15
  /** Go: "R2 has a maximum expiration of 7 days" — presigns clamp here. */
17
16
  export const R2_MAX_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000;
18
- /**
19
- * Key prefix for presignPut staging blobs (§6b). Pinned as the surface a
20
- * deployment's bucket lifecycle rule targets: the driver mints under it,
21
- * operations sweeps it — changing it orphans staged blobs from the sweep.
22
- */
23
- export const R2_STAGING_PREFIX = "staging/";
24
17
  /**
25
18
  * Go get_content/get_download_url wrap their storage calls in a 30s
26
19
  * context timeout. The TS ArtifactStorage interface carries no signal, so
@@ -123,15 +116,14 @@ export class R2ArtifactStorage {
123
116
  throw new Error(`r2 head failed: ${errorText(error)}`, { cause: error });
124
117
  }
125
118
  }
126
- async presignPut(declaredSizeBytes, ttlMs) {
119
+ async presignPut(key, declaredSizeBytes, ttlMs) {
127
120
  const clampedMs = Math.min(ttlMs, R2_MAX_EXPIRATION_MS);
128
- // Random staging key: the URL is the credential (unguessable), and the
129
- // prefix is the contract surface a bucket lifecycle rule sweeps (§6b —
130
- // staged uploads the domain never committed must not accrete forever).
131
- const stagingKey = `${R2_STAGING_PREFIX}${randomBytes(16).toString("hex")}`;
121
+ // The key is the caller's: the domain names its staging prefix (the
122
+ // surface a bucket lifecycle rule sweeps) and keeps the unguessable
123
+ // part of the URL-as-credential in the reference it hands the client.
132
124
  const command = new PutObjectCommand({
133
125
  Bucket: this.bucket,
134
- Key: stagingKey,
126
+ Key: key,
135
127
  // Signed into the URL: a PUT whose body disagrees with the declared
136
128
  // size fails the signature check — R2's arm of the exact-size
137
129
  // contract the local lane enforces by counting bytes.
@@ -141,7 +133,7 @@ export class R2ArtifactStorage {
141
133
  const url = await this.presign(this.client, command, {
142
134
  expiresIn: Math.floor(clampedMs / 1000),
143
135
  });
144
- return { url, stagingKey, ttlMs: clampedMs };
136
+ return { url, ttlMs: clampedMs };
145
137
  }
146
138
  catch (error) {
147
139
  throw new Error(`r2 presign failed: ${errorText(error)}`, { cause: error });
@@ -1 +1 @@
1
- {"version":3,"file":"r2-storage.js","sourceRoot":"","sources":["../../src/artifactstorage/r2-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"r2-storage.js","sourceRoot":"","sources":["../../src/artifactstorage/r2-storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/boot/compose.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA6BpE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoCzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAgClE,OAAO,EAKL,aAAa,EAEd,MAAM,6BAA6B,CAAC;AA0BrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAWjE,OAAO,EAAE,YAAY,IAAI,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAW7G,OAAO,EAAE,WAAW,EAAyB,MAAM,wBAAwB,CAAC;AAQ5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,+EAA+E;IAC/E,KAAK,EAAE,KAAK,CAAC;IACb;;;;;;;;;OASG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;;;;OAKG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;OAIG;IACH,0BAA0B,EAAE,YAAY,CAAC;IACzC;;;;;OAKG;IACH,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D;;;;;;;;;OASG;IACH,kBAAkB,EAAE,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD;;;;;OAKG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,kEAAkE;IAClE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC5C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAo7CzB"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/boot/compose.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA6BpE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoCzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAsClE,OAAO,EAKL,aAAa,EAEd,MAAM,6BAA6B,CAAC;AA0BrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAWjE,OAAO,EAAE,YAAY,IAAI,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAW7G,OAAO,EAAE,WAAW,EAAyB,MAAM,wBAAwB,CAAC;AAQ5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,+EAA+E;IAC/E,KAAK,EAAE,KAAK,CAAC;IACb;;;;;;;;;OASG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;;;;OAKG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;OAIG;IACH,0BAA0B,EAAE,YAAY,CAAC;IACzC;;;;;OAKG;IACH,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D;;;;;;;;;OASG;IACH,kBAAkB,EAAE,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD;;;;;OAKG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,kEAAkE;IAClE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC5C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAk9CzB"}
@@ -92,11 +92,12 @@ import { registerSessionServices } from "../domain/session/controller.js";
92
92
  import { registerPluginServices } from "../domain/plugin/controller.js";
93
93
  import { PLUGIN_ARTIFACT_KEY_PREFIX } from "../domain/plugin/constants.js";
94
94
  import { registerSkillServices } from "../domain/skill/controller.js";
95
- import { DEFAULT_SLOT_TTL_MS, MAX_ZIP_SIZE, } from "../domain/skill/constants.js";
95
+ import { DEFAULT_SLOT_TTL_MS, MAX_ZIP_SIZE, STAGING_KEY_PREFIX, } from "../domain/skill/constants.js";
96
96
  import { newSkillArtifactStorage } from "../domain/skill/storage/artifact-storage.js";
97
97
  import { newContentAddressedArchiveStore } from "../archive/content-store.js";
98
- import { newSkillTransferLane, uploadUrl as skillUploadUrl, } from "../domain/skill/transfer/handler.js";
98
+ import { newSkillTransferLane, transferServeUrl, uploadUrl as skillUploadUrl, } from "../domain/skill/transfer/handler.js";
99
99
  import { UploadSlots } from "../domain/skill/transfer/slots.js";
100
+ import { newArchiveStaging, uploadRefOf, } from "../domain/skill/transfer/staging.js";
100
101
  import { DEFAULT_WRITE_VERSION, ENCRYPTION_KEY_ENV_VAR, ENCRYPTION_KEY_FILE_NAME, ENCRYPTION_WRITE_VERSION_ENV_VAR, SecretService, StaticKeySecretCodec, } from "../encryption/encryption.js";
101
102
  import { getOrCreateNamedKey } from "../encryption/key-manager.js";
102
103
  import { V1_VERSION } from "../encryption/v1-codec.js";
@@ -121,6 +122,7 @@ import { PostgresStore } from "../store/postgres/store.js";
121
122
  import { SqliteStore } from "../store/sqlite/store.js";
122
123
  import { resolveExtensions } from "../extensions/registry.js";
123
124
  import { resolveOAuthRedirectUri } from "./oauth-redirect-uri.js";
125
+ import { assessSkillTransferOrigin } from "./skill-transfer-origin.js";
124
126
  import { registerWorkflowServices } from "../domain/workflow/controller.js";
125
127
  import { bundledModelRegistryDocument, bundledTaskKindRegistryDocument, } from "../domain/workflow/registry/bundled.js";
126
128
  import { ModelRegistryStore } from "../domain/workflow/registry/model-registry-store.js";
@@ -689,7 +691,7 @@ export async function composeServer(options) {
689
691
  : undefined;
690
692
  // The skill artifact store + transfer lane (Go server.go:318-340). The
691
693
  // store is content-addressed and never-GC at {storagePath}/skills/;
692
- // the slots registry wipes {storagePath}/skills-staging at boot (orphans
694
+ // the slots registry wipes {storagePath}/skills/staging at boot (orphans
693
695
  // from a dead process are useless — the registry died with it). On OSS
694
696
  // the lane is ALWAYS configured (Go wires it unconditionally too): the
695
697
  // FailedPrecondition lane-absent arms exist for construction-order
@@ -701,11 +703,19 @@ export async function composeServer(options) {
701
703
  // deployment changes nothing for skill artifacts until it opts in
702
704
  // explicitly, and the Go-written skills/ directory keeps serving in
703
705
  // place on the default arm.
704
- const skillUploadSlots = new UploadSlots(path.join(config.storagePath, "skills-staging"), DEFAULT_SLOT_TTL_MS, MAX_ZIP_SIZE);
706
+ //
707
+ // Capability URLs come from the driver through the staging port
708
+ // (domain/skill/transfer/staging.ts, stigmer#1219): the local driver's
709
+ // presignPut reserves a slot here and renders the lane URL below, a
710
+ // bucket driver's signs a PUT straight to the bucket, and the
711
+ // controllers cannot tell which. The slots are constructed on every
712
+ // arm so the HTTP lane always has a registry to consult; on a bucket
713
+ // arm nothing is ever reserved in it.
714
+ const skillUploadSlots = new UploadSlots(config.storagePath, STAGING_KEY_PREFIX, DEFAULT_SLOT_TTL_MS, MAX_ZIP_SIZE);
715
+ const skillType = config.skillArtifactStorageType === ""
716
+ ? "local"
717
+ : config.skillArtifactStorageType;
705
718
  const skillStorageDriver = (() => {
706
- const skillType = config.skillArtifactStorageType === ""
707
- ? "local"
708
- : config.skillArtifactStorageType;
709
719
  if (skillType === "local") {
710
720
  // Go layout invariant: {storagePath}/skills exists from boot with
711
721
  // 0755 (the retired LocalFileStorage constructor's mkdir; the
@@ -716,14 +726,18 @@ export async function composeServer(options) {
716
726
  });
717
727
  // The local presigned-PUT arm rides the skill transfer lane's slot
718
728
  // mechanism (§6b Q1 ruling: one upload surface, no new lane). The
719
- // slots stage inside THIS driver's root, so a minted stagingKey
720
- // reads back through the same instance; the empty serve URL is the
721
- // honest state — skill downloads ride the transfer lane, never
722
- // getSignedUrl.
723
- return new LocalArtifactStorage(config.storagePath, "", {
724
- mint: (declaredSizeBytes) => skillUploadSlots.mint(declaredSizeBytes),
725
- uploadUrl: (ref) => skillUploadUrl(config.skillTransferBaseUrl, ref),
726
- stagedKey: (ref) => `skills-staging/${skillUploadSlots.stagedFileName(ref)}`,
729
+ // slots stage inside THIS driver's root under the domain's staging
730
+ // key, so download(key) reads back what the lane received; the
731
+ // serve URL is the lane's download route, so getSignedUrl renders
732
+ // the very URL the lane dispatches.
733
+ return new LocalArtifactStorage(config.storagePath, transferServeUrl(config.skillTransferBaseUrl), {
734
+ reserve: (key, declaredSizeBytes) => {
735
+ const { ttlMs } = skillUploadSlots.reserve(key, declaredSizeBytes);
736
+ return {
737
+ url: skillUploadUrl(config.skillTransferBaseUrl, uploadRefOf(key)),
738
+ ttlMs,
739
+ };
740
+ },
727
741
  });
728
742
  }
729
743
  // Non-local skill backends share the artifact store's R2 settings for
@@ -745,7 +759,24 @@ export async function composeServer(options) {
745
759
  // (`plugins/`) keeps the two stores apart and the plugin store owns its
746
760
  // keys (src/archive/content-store.ts).
747
761
  const pluginArtifactStorage = newContentAddressedArchiveStore(skillStorageDriver, PLUGIN_ARTIFACT_KEY_PREFIX);
762
+ // One staging port for every archive kind, over the one skill blob
763
+ // driver: the controllers mint, consume and sign through it and never
764
+ // meet the slots or the bucket.
765
+ const skillArchiveStaging = newArchiveStaging(skillStorageDriver, logger);
748
766
  const skillTransferLane = newSkillTransferLane(skillUploadSlots, skillArtifactStorage, logger);
767
+ // A hosted server relaying bytes through itself from its loopback
768
+ // default mints URLs no caller can reach (stigmer#1219); nothing inside
769
+ // the process can observe that, so the boot says it. Never fatal: the
770
+ // inline push and every other RPC work, and a self-host behind a tunnel
771
+ // it forgot to name deserves a pointer, not an outage.
772
+ const transferOrigin = assessSkillTransferOrigin({
773
+ baseUrl: config.skillTransferBaseUrl,
774
+ relaysThroughServer: skillType === "local",
775
+ requireAuthentication,
776
+ });
777
+ if (transferOrigin.kind === "loopback-hosted") {
778
+ logger.warn("skill artifact transfer lane mints capability URLs on the server's own loopback while the server requires authentication; pushes above the gRPC message cap and sandbox skill downloads will fail — set SKILL_TRANSFER_BASE_URL to the origin callers reach this server on", { baseUrl: transferOrigin.baseUrl });
779
+ }
749
780
  // The console lane (lane 4, DD-012): present only when a static export
750
781
  // is bundled (slim artifacts) or configured (STIGMER_CONSOLE_DIR) —
751
782
  // "not bundled" is a modeled state, logged once, with the router
@@ -1163,14 +1194,11 @@ export async function composeServer(options) {
1163
1194
  // The agentexecution blob store (server.go:362-363) — read side of
1164
1195
  // pushFromExecutionArtifact.
1165
1196
  executionArtifactStorage: artifactStorage,
1166
- transferLane: {
1167
- slots: skillUploadSlots,
1168
- baseUrl: config.skillTransferBaseUrl,
1169
- },
1197
+ staging: skillArchiveStaging,
1170
1198
  });
1171
1199
  // Plugins materialise their members through the in-process lane as
1172
1200
  // the installing caller; the lazy provider resolves the clients built
1173
- // from these same routes after boot. The upload slots are the skill
1201
+ // from these same routes after boot. The staging port is the skill
1174
1202
  // lane's: one upload surface for every archive.
1175
1203
  registerPluginServices(router, {
1176
1204
  store,
@@ -1179,10 +1207,7 @@ export async function composeServer(options) {
1179
1207
  authorizationLifecycle,
1180
1208
  artifactStorage: pluginArtifactStorage,
1181
1209
  materializerProvider: () => requireInProcess().pluginMaterializer,
1182
- transferLane: {
1183
- slots: skillUploadSlots,
1184
- baseUrl: config.skillTransferBaseUrl,
1185
- },
1210
+ staging: skillArchiveStaging,
1186
1211
  });
1187
1212
  // Artifact CRUD shares the ONE blob store with agentexecution's
1188
1213
  // attachment lanes (Go server.go 347–374).