@amalgm/chat 0.2.8 → 0.2.9-preview.34176088664

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/PURPOSE.md CHANGED
@@ -202,3 +202,18 @@ instructions. Amp, Gemini CLI, and Kiro were not installed for individual
202
202
  acceptance tests.
203
203
 
204
204
  The public contracts live in `docs/contracts/` and the shipped Chat skill.
205
+
206
+ ## Managed package delivery
207
+
208
+ Managed package delivery starts from a clean, exact main or preview source
209
+ commit. The workflow occurrence supplies only its generated version and source
210
+ record; tests run against those candidate inputs before packing. Every native
211
+ gate and publication use that same tarball and integrity. A candidate tag makes
212
+ bytes available to release assembly; it never promotes an installed runtime.
213
+ Release tooling remains available inside each owner repository so a developer
214
+ or CI job never needs access to another private product repository.
215
+ Registry credentials are available only to the final protected publication job,
216
+ after every native examination proves the exact candidate bytes.
217
+ Native consumers install the archive as a dependency, so SDK development
218
+ dependencies never become an end-user installation requirement.
219
+ Each admitted owner gate proves its actual checkout equals the managed source.
package/README.md CHANGED
@@ -103,7 +103,17 @@ npm test
103
103
  npm pack --dry-run
104
104
  ```
105
105
 
106
- Package releases use `.github/workflows/publish-package.yml`. A reviewed main
107
- commit is tagged exactly `v<package version>`; trusted npm publishing stages
108
- that package, and a maintainer approves the staged artifact with 2FA. Manual
109
- dirty-worktree publishing is not a release path.
106
+ Managed npm delivery uses `.github/workflows/publish-package.yml` after the
107
+ exact main/preview owner checks pass. The occurrence generates a unique
108
+ prerelease version and records its source SHA; it reruns the owner suite, packs
109
+ once, and installs that tarball on Linux, macOS and Windows before publication.
110
+ The `candidate-main`/`candidate-preview` tags are release-assembly inputs and
111
+ never select installed runtimes. `package.json` declares this owner's gates,
112
+ CLI probes, peer-only exports and lifecycle permissions. The standalone runner
113
+ under `scripts/release/` is intentionally copied across owners to preserve
114
+ private repository access boundaries. The final publish step uses the `NPM_TOKEN`
115
+ secret in the `npm-release` environment. Where npm trusted publishing is
116
+ configured for this repository's `publish-package.yml` and that environment,
117
+ the token can be omitted. Authentication does not replace native certification,
118
+ exact source records or artifact integrity; private source repositories do not
119
+ receive npm's public-source provenance.
@@ -235,6 +235,29 @@ export declare function createClaudeNormalizer(events: EventConstructors): {
235
235
  method?: string | undefined;
236
236
  payload?: unknown;
237
237
  } | undefined;
238
+ } | {
239
+ ts: number;
240
+ type: "compaction.started";
241
+ trigger: "auto" | "manual" | "model_triggered";
242
+ providerSessionId?: string | null | undefined;
243
+ raw?: {
244
+ source: string;
245
+ method?: string | undefined;
246
+ payload?: unknown;
247
+ } | undefined;
248
+ } | {
249
+ ts: number;
250
+ type: "compaction.finished";
251
+ trigger: "auto" | "manual" | "model_triggered";
252
+ providerSessionId?: string | null | undefined;
253
+ raw?: {
254
+ source: string;
255
+ method?: string | undefined;
256
+ payload?: unknown;
257
+ } | undefined;
258
+ preTokens?: number | null | undefined;
259
+ postTokens?: number | null | undefined;
260
+ durationMs?: number | null | undefined;
238
261
  } | {
239
262
  ts: number;
240
263
  type: "warning";
@@ -310,29 +333,6 @@ export declare function createClaudeNormalizer(events: EventConstructors): {
310
333
  source: string;
311
334
  exact: boolean;
312
335
  } | undefined;
313
- } | {
314
- ts: number;
315
- type: "compaction.started";
316
- trigger: "auto" | "manual" | "model_triggered";
317
- providerSessionId?: string | null | undefined;
318
- raw?: {
319
- source: string;
320
- method?: string | undefined;
321
- payload?: unknown;
322
- } | undefined;
323
- } | {
324
- ts: number;
325
- type: "compaction.finished";
326
- trigger: "auto" | "manual" | "model_triggered";
327
- providerSessionId?: string | null | undefined;
328
- raw?: {
329
- source: string;
330
- method?: string | undefined;
331
- payload?: unknown;
332
- } | undefined;
333
- preTokens?: number | null | undefined;
334
- postTokens?: number | null | undefined;
335
- durationMs?: number | null | undefined;
336
336
  })[];
337
337
  normalizeClaudeMessage: (message: AnyRecord | null | undefined, state?: ClaudeNormalizerState | null) => ({
338
338
  ts: number;
@@ -514,6 +514,29 @@ export declare function createClaudeNormalizer(events: EventConstructors): {
514
514
  method?: string | undefined;
515
515
  payload?: unknown;
516
516
  } | undefined;
517
+ } | {
518
+ ts: number;
519
+ type: "compaction.started";
520
+ trigger: "auto" | "manual" | "model_triggered";
521
+ providerSessionId?: string | null | undefined;
522
+ raw?: {
523
+ source: string;
524
+ method?: string | undefined;
525
+ payload?: unknown;
526
+ } | undefined;
527
+ } | {
528
+ ts: number;
529
+ type: "compaction.finished";
530
+ trigger: "auto" | "manual" | "model_triggered";
531
+ providerSessionId?: string | null | undefined;
532
+ raw?: {
533
+ source: string;
534
+ method?: string | undefined;
535
+ payload?: unknown;
536
+ } | undefined;
537
+ preTokens?: number | null | undefined;
538
+ postTokens?: number | null | undefined;
539
+ durationMs?: number | null | undefined;
517
540
  } | {
518
541
  ts: number;
519
542
  type: "warning";
@@ -589,29 +612,6 @@ export declare function createClaudeNormalizer(events: EventConstructors): {
589
612
  source: string;
590
613
  exact: boolean;
591
614
  } | undefined;
592
- } | {
593
- ts: number;
594
- type: "compaction.started";
595
- trigger: "auto" | "manual" | "model_triggered";
596
- providerSessionId?: string | null | undefined;
597
- raw?: {
598
- source: string;
599
- method?: string | undefined;
600
- payload?: unknown;
601
- } | undefined;
602
- } | {
603
- ts: number;
604
- type: "compaction.finished";
605
- trigger: "auto" | "manual" | "model_triggered";
606
- providerSessionId?: string | null | undefined;
607
- raw?: {
608
- source: string;
609
- method?: string | undefined;
610
- payload?: unknown;
611
- } | undefined;
612
- preTokens?: number | null | undefined;
613
- postTokens?: number | null | undefined;
614
- durationMs?: number | null | undefined;
615
615
  })[];
616
616
  stableStringify: typeof stableStringify;
617
617
  stringifyClaudeContent: typeof stringifyClaudeContent;
@@ -243,6 +243,29 @@ export declare function createCodexNormalizer(events: EventConstructors): {
243
243
  method?: string | undefined;
244
244
  payload?: unknown;
245
245
  } | undefined;
246
+ } | {
247
+ ts: number;
248
+ type: "compaction.started";
249
+ trigger: "auto" | "manual" | "model_triggered";
250
+ providerSessionId?: string | null | undefined;
251
+ raw?: {
252
+ source: string;
253
+ method?: string | undefined;
254
+ payload?: unknown;
255
+ } | undefined;
256
+ } | {
257
+ ts: number;
258
+ type: "compaction.finished";
259
+ trigger: "auto" | "manual" | "model_triggered";
260
+ providerSessionId?: string | null | undefined;
261
+ raw?: {
262
+ source: string;
263
+ method?: string | undefined;
264
+ payload?: unknown;
265
+ } | undefined;
266
+ preTokens?: number | null | undefined;
267
+ postTokens?: number | null | undefined;
268
+ durationMs?: number | null | undefined;
246
269
  } | {
247
270
  ts: number;
248
271
  type: "warning";
@@ -318,29 +341,6 @@ export declare function createCodexNormalizer(events: EventConstructors): {
318
341
  source: string;
319
342
  exact: boolean;
320
343
  } | undefined;
321
- } | {
322
- ts: number;
323
- type: "compaction.started";
324
- trigger: "auto" | "manual" | "model_triggered";
325
- providerSessionId?: string | null | undefined;
326
- raw?: {
327
- source: string;
328
- method?: string | undefined;
329
- payload?: unknown;
330
- } | undefined;
331
- } | {
332
- ts: number;
333
- type: "compaction.finished";
334
- trigger: "auto" | "manual" | "model_triggered";
335
- providerSessionId?: string | null | undefined;
336
- raw?: {
337
- source: string;
338
- method?: string | undefined;
339
- payload?: unknown;
340
- } | undefined;
341
- preTokens?: number | null | undefined;
342
- postTokens?: number | null | undefined;
343
- durationMs?: number | null | undefined;
344
344
  })[];
345
345
  };
346
346
  /** The Codex normalizer set, closed over injected constructors. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amalgm/chat",
3
- "version": "0.2.8",
3
+ "version": "0.2.9-preview.34176088664",
4
4
  "description": "A provider-agnostic agent chat SDK with ACP content, prepared execution, normalized streams, and usage.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -86,7 +86,12 @@
86
86
  },
87
87
  "scripts": {
88
88
  "build": "node scripts/clean-dist.mjs && tsc -p tsconfig.json",
89
- "test": "npm run build && node --test"
89
+ "test": "npm run build && node --test",
90
+ "release:admit": "node scripts/release/package.mjs admit",
91
+ "release:prepare": "node scripts/release/package.mjs prepare",
92
+ "release:examine": "node scripts/release/package.mjs examine",
93
+ "release:publish": "node scripts/release/package.mjs publish",
94
+ "test:release": "node --test scripts/release/*.test.mjs"
90
95
  },
91
96
  "dependencies": {
92
97
  "@agentclientprotocol/sdk": "^1.4.0",
@@ -100,5 +105,24 @@
100
105
  "devDependencies": {
101
106
  "@types/better-sqlite3": "^7.6.13",
102
107
  "typescript": "^5.7.3"
108
+ },
109
+ "amalgmRelease": {
110
+ "schema": 1,
111
+ "workflow": "verify.yml",
112
+ "jobs": [
113
+ "verify"
114
+ ],
115
+ "verify": "test",
116
+ "cli": []
117
+ },
118
+ "allowScripts": {
119
+ "better-sqlite3@12.11.1": true
120
+ },
121
+ "gitHead": "ab03320249fad2a201e21714c855a03b8edcc9fd",
122
+ "amalgmSource": {
123
+ "repository": "amalgm-inc/amalgm-chat",
124
+ "branch": "preview",
125
+ "commit": "ab03320249fad2a201e21714c855a03b8edcc9fd",
126
+ "occurrence": "34176088664"
103
127
  }
104
128
  }