buckyos 0.7.159 → 0.7.162

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.
@@ -1,6 +1,7 @@
1
1
  import type { CommandContext } from '../core/context.ts'
2
2
  import type { CommandModule } from '../core/command.ts'
3
3
  import { EXIT_PERMISSION, EXIT_UNAVAILABLE, ToolError, UsageError } from '../core/errors.ts'
4
+ import { AIWS_MANIFEST_FILE, AIWS_MANIFEST_VERSION, aiwsContentDigest, controlSkeleton } from 'buckyos/node'
4
5
  import { createDeterministicTarGz, digestFile, sha256Bytes } from './pikg_archive.ts'
5
6
  import {
6
7
  APPDOC_ENTRY,
@@ -55,11 +56,13 @@ const SHA256_ID = /^sha256:[0-9a-f]{64}$/
55
56
  const OBJECT_ID = /^(?:appdoc|pkg):[0-9a-f]{64}$/
56
57
  const SAFE_GENERATED_FILE = /^[A-Za-z0-9._-]+$/
57
58
  const OBJECT_OUTPUT = { type: 'object' as const, additionalProperties: true }
58
- const APP_KINDS = ['static-web', 'script', 'docker', 'agent-skills']
59
+ const APP_KINDS = ['static-web', 'script', 'docker', 'agent-skills', 'aiws-controls']
59
60
  const PATH_KINDS: Record<string, { key: string; category: string; selectorType: string }> = {
60
61
  'static-web': { key: 'web', category: 'web', selectorType: 'static' },
61
62
  script: { key: 'script', category: 'dapp', selectorType: 'single' },
62
63
  'agent-skills': { key: 'agent_skills', category: 'agent_skills', selectorType: 'single' },
64
+ // AI Workspace controls: one bundle (aiws-manifest.json + controls/<dir>/), installed into the AI Workspace library
65
+ 'aiws-controls': { key: 'aiws', category: 'aiws', selectorType: 'single' },
63
66
  }
64
67
 
65
68
  export interface DockerImageInfo {
@@ -218,6 +221,11 @@ export function createPikgModule(dependencies: PikgModuleDependencies = {}): Com
218
221
  },
219
222
  { name: 'version', description: 'Initial App version', type: 'string' },
220
223
  { name: 'app-did', property: 'app_did', description: 'Explicit App DID', type: 'string' },
224
+ {
225
+ name: 'composite',
226
+ description: 'aiws-controls: start the package with a composite control (a panel of Blocks) instead of a declarative one',
227
+ type: 'boolean',
228
+ },
221
229
  ],
222
230
  inputSchema: {
223
231
  type: 'object',
@@ -229,6 +237,7 @@ export function createPikgModule(dependencies: PikgModuleDependencies = {}): Com
229
237
  source: { type: 'string', minLength: 1 },
230
238
  version: { type: 'string', minLength: 1 },
231
239
  app_did: { type: 'string', minLength: 1 },
240
+ composite: { type: 'boolean' },
232
241
  },
233
242
  additionalProperties: false,
234
243
  },
@@ -243,6 +252,8 @@ export function createPikgModule(dependencies: PikgModuleDependencies = {}): Com
243
252
  'buckyos pikg init .',
244
253
  'buckyos --non-interactive pikg init . --owner did:bns:root --kind static-web --source ./web/dist',
245
254
  'buckyos --non-interactive pikg init . --owner did:bns:root --kind agent-skills --source ./skills',
255
+ 'buckyos --non-interactive pikg init . --owner did:bns:alice --kind aiws-controls --source ./aiws',
256
+ 'buckyos --non-interactive pikg init . --owner did:bns:alice --kind aiws-controls --source ./aiws --composite',
246
257
  ],
247
258
  handler: async (ctx, input) => await initCommand(ctx, input, docker),
248
259
  },
@@ -493,9 +504,13 @@ async function initCommand(
493
504
  try {
494
505
  await getHost().lstat(absoluteSource)
495
506
  } catch (error) {
496
- if (isHostError(error, 'NotFound')) {
507
+ if (!isHostError(error, 'NotFound')) throw error
508
+ if (kind === 'aiws-controls') {
509
+ await writeAiwsSkeleton(absoluteSource, owner, name, input.composite === true)
510
+ sourceSummary.skeleton = true
511
+ } else {
497
512
  await ctx.io.stderr(`warning: source does not exist yet: ${sourceSummary.path}\n`)
498
- } else throw error
513
+ }
499
514
  }
500
515
  }
501
516
 
@@ -557,6 +572,26 @@ async function initCommand(
557
572
  }
558
573
  }
559
574
 
575
+ /** A control package skeleton: one declarative control (or a composite one) under controls/<name>/ and its manifest
576
+ * (digest included). */
577
+ async function writeAiwsSkeleton(dir: string, ownerDid: string, name: string, composite: boolean): Promise<void> {
578
+ const kind = composite ? 'composite' : 'declarative'
579
+ const files = controlSkeleton({ authorDid: ownerDid, name, title: name, kind })
580
+ const encoder = new TextEncoder()
581
+ const host = getHost()
582
+ await host.mkdir(join(dir, 'controls', name), { recursive: true })
583
+ for (const [file, text] of Object.entries(files)) await host.writeTextFile(join(dir, 'controls', name, file), text)
584
+ const digest = await aiwsContentDigest(Object.entries(files).map(([file, text]) => [file, encoder.encode(text)] as [string, Uint8Array]))
585
+ const manifest = {
586
+ manifest_version: AIWS_MANIFEST_VERSION,
587
+ purpose: 'aiws',
588
+ host_api: composite ? {} : { declarative: 1 },
589
+ controls: [{ ident: `${ownerDid}#${name}`, name, kind, version: 1, digest, dir: `controls/${name}/`, title: name }],
590
+ workspace_templates: [],
591
+ }
592
+ await host.writeTextFile(join(dir, AIWS_MANIFEST_FILE), `${JSON.stringify(manifest, null, 2)}\n`)
593
+ }
594
+
560
595
  async function buildCommand(
561
596
  ctx: CommandContext,
562
597
  input: Record<string, unknown>,
@@ -1,10 +1,11 @@
1
- import { ndn } from 'buckyos/node'
1
+ import { ndn, verifyBundle } from 'buckyos/node'
2
2
  import { ToolError, UsageError } from '../core/errors.ts'
3
3
  import { getHost } from '../runtime/host.ts'
4
4
  import {
5
5
  digestFile,
6
6
  type FileDigest,
7
7
  openZip,
8
+ readTarGz,
8
9
  readZipEntry,
9
10
  sha256Bytes,
10
11
  verifyZipEntry,
@@ -69,6 +70,8 @@ export interface ValidatedPikg {
69
70
 
70
71
  export interface PikgInspectionResult {
71
72
  schema_version: 1
73
+ /** An `aiws` package: its bundle checked like the AI Workspace library does. */
74
+ aiws?: Record<string, unknown>
72
75
  protocol: string
73
76
  pikg_path: string
74
77
  size: number
@@ -141,6 +144,7 @@ export function derivedSelector(key: string): Record<string, string> | undefined
141
144
  agent: {},
142
145
  agent_skills: {},
143
146
  agent_tools: {},
147
+ aiws: {},
144
148
  script: {},
145
149
  }
146
150
  return selectors[key]
@@ -505,6 +509,33 @@ export function appDocObjectId(value: Record<string, unknown>): string {
505
509
  return ndn.buildNamedObjectByJson('appdoc', value)[0].toString()
506
510
  }
507
511
 
512
+ /** The sub-package of an `aiws` package: the AIWS bundle (aiws-manifest.json plus controls/<dir>/<file> and, from
513
+ * manifest_version 3, Workspace templates under templates/<id>/). */
514
+ export const AIWS_SUB_PACKAGE = 'aiws'
515
+ const MAX_AIWS_PAYLOAD_BYTES = 256 * 1024 * 1024
516
+
517
+ /** Check the bundle inside an `aiws` payload the way the AI Workspace library does (digests, component.json, the
518
+ * templates' shape, snapshot, digest and required controls, no file outside a control, a template or the manifest). */
519
+ export async function verifyAiwsPayload(tarGz: Uint8Array): Promise<Record<string, unknown>> {
520
+ const files = new Map<string, Uint8Array>()
521
+ for (const entry of await readTarGz(tarGz, MAX_AIWS_PAYLOAD_BYTES)) files.set(entry.path, entry.bytes)
522
+ let checked
523
+ try {
524
+ checked = await verifyBundle(files)
525
+ } catch (error) {
526
+ throw invalid('aiws', `aiws bundle: ${error instanceof Error ? error.message : String(error)}`)
527
+ }
528
+ const errors = checked.diagnostics.filter((d: { severity: string }) => d.severity === 'error')
529
+ if (errors.length > 0) {
530
+ throw invalid('aiws', `aiws bundle: ${errors.map((d: { file: string; message: string }) => `${d.file}: ${d.message}`).join('; ')}`)
531
+ }
532
+ return {
533
+ manifest_version: checked.manifest.manifest_version,
534
+ controls: checked.manifest.controls.map((c: Record<string, unknown>) => ({ ident: c.ident, kind: c.kind, version: c.version, digest: c.digest })),
535
+ templates: checked.manifest.workspace_templates.map((t: Record<string, unknown>) => ({ id: t.id, title: t.title, digest: t.digest, requires: t.requires })),
536
+ }
537
+ }
538
+
508
539
  export async function validateSnapshot(
509
540
  distDir: string,
510
541
  appDoc: Record<string, unknown>,
@@ -517,7 +548,11 @@ export async function validateSnapshot(
517
548
  const digest = await digestFile(path)
518
549
  payloads.set(entry.path, digest)
519
550
  }
520
- return validateObjectGraph(appDoc, packageMeta, payloads, true, false, true)
551
+ const validated = validateObjectGraph(appDoc, packageMeta, payloads, true, false, true)
552
+ if (appDoc.app_type === 'aiws') {
553
+ for (const sub of validated.subpackages) await verifyAiwsPayload(await getHost().readFile(join(distDir, sub.payload_path)))
554
+ }
555
+ return validated
521
556
  }
522
557
 
523
558
  export async function packSnapshot(
@@ -636,9 +671,15 @@ export async function inspectPikg(path: string): Promise<PikgInspectionResult> {
636
671
  Boolean(jwtEntry),
637
672
  !jsonDoc || !jwtDoc || appDocObjectId(jsonDoc) === appDocObjectId(jwtDoc),
638
673
  )
674
+ let aiws: Record<string, unknown> | undefined
675
+ if (appDoc.app_type === 'aiws') {
676
+ const sub = validated.subpackages[0]
677
+ aiws = await verifyAiwsPayload(await readZipEntry(archive, archive.byName.get(sub.payload_path)!, MAX_AIWS_PAYLOAD_BYTES))
678
+ }
639
679
  const pikgDigest = await digestFile(path)
640
680
  return {
641
681
  schema_version: 1,
682
+ ...(aiws ? { aiws } : {}),
642
683
  protocol: PACKAGE_META_SCHEMA,
643
684
  pikg_path: resolve(path),
644
685
  size: pikgDigest.size,
@@ -954,7 +995,7 @@ export function validateAppDocShape(appDoc: Record<string, unknown>): void {
954
995
  expectNonEmptyString(appDoc[field], `APPDOC.${field}`)
955
996
  }
956
997
  if (appDoc.doc_type !== 'app') throw invalid('appdoc', 'APPDOC.doc_type must be app')
957
- if (!['service', 'dapp', 'web', 'agent', 'agent_skills'].includes(String(appDoc.app_type))) {
998
+ if (!['service', 'dapp', 'web', 'agent', 'agent_skills', 'aiws'].includes(String(appDoc.app_type))) {
958
999
  throw invalid('appdoc', 'APPDOC.app_type is invalid')
959
1000
  }
960
1001
  if (appDoc.name !== undefined) expectNonEmptyString(appDoc.name, 'APPDOC.name')
@@ -1014,6 +1055,10 @@ export function validateAppDocShape(appDoc: Record<string, unknown>): void {
1014
1055
  throw invalid('appdoc', 'an agent_skills App must contain only the agent_skills sub package')
1015
1056
  }
1016
1057
  }
1058
+ // AI Workspace controls (buckyos aiworkspace README “Extension controls”): one bundle, nothing to run
1059
+ if (appDoc.app_type === 'aiws' && Object.keys(pkgList).join() !== AIWS_SUB_PACKAGE) {
1060
+ throw invalid('appdoc', 'an aiws package must contain only the aiws sub package')
1061
+ }
1017
1062
  deriveNamespaceForPackage(appDoc)
1018
1063
  }
1019
1064
 
@@ -65,7 +65,8 @@ async function openNfsp(ctx: CommandContext): Promise<NfspSession> {
65
65
  }
66
66
  }
67
67
 
68
- function gatewayOrigin(endpoint: string): string {
68
+ /** The Zone gateway origin of a service endpoint (`…/kapi/<service>`): where `/nfs/v1` and other routes live. */
69
+ export function gatewayOrigin(endpoint: string): string {
69
70
  const url = new URL(endpoint)
70
71
  const marker = url.pathname.indexOf('/kapi')
71
72
  url.pathname = marker >= 0 ? url.pathname.slice(0, marker) || '/' : '/'
package/cli/version.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // Generated by scripts/generate-cli-version.mjs. Do not edit.
2
- export const PACKAGE_VERSION = '0.7.159'
2
+ export const PACKAGE_VERSION = '0.7.162'
3
3
  export const TOOL_VERSION = PACKAGE_VERSION
4
4
  export const SDK_VERSION = PACKAGE_VERSION
5
5
  export const PROTOCOL_VERSION = '1'
@@ -44,6 +44,196 @@ export interface AiwsReference {
44
44
  export declare function aiwsReferenceUrl(reference: AiwsReference, workspaceId?: string): string;
45
45
  /** The Reference an `obj://aiworkspace/<ws>/entities/<entity_id>[?...]` URL projects. */
46
46
  export declare function parseAiwsReferenceUrl(url: string): AiwsReference;
47
+ /** What `ext.upgrade` / `ext.build` rewrite on the instances of a definition whose new version narrows what they rely
48
+ * on (schemas/migration.schema.json, Q30). */
49
+ export interface AiwsMigration {
50
+ config?: {
51
+ rename?: Record<string, string>;
52
+ drop?: string[];
53
+ fill?: Record<string, unknown>;
54
+ };
55
+ bindings?: {
56
+ rename?: Record<string, string>;
57
+ drop?: string[];
58
+ fill?: Record<string, {
59
+ entity_id: string;
60
+ }>;
61
+ };
62
+ slots?: {
63
+ rename?: Record<string, string>;
64
+ move?: Record<string, string>;
65
+ };
66
+ events?: {
67
+ rename?: Record<string, string>;
68
+ drop?: string[];
69
+ };
70
+ }
71
+ export interface AiwsExtBuildParams {
72
+ files: ({
73
+ name: string;
74
+ obj_id: string;
75
+ } | {
76
+ name: string;
77
+ base64: string;
78
+ })[];
79
+ folder_id?: string;
80
+ expect?: {
81
+ def_rev: number;
82
+ dir_rev: number;
83
+ };
84
+ force?: boolean;
85
+ dry_run?: boolean;
86
+ provenance?: {
87
+ pkg_id?: string;
88
+ version?: string;
89
+ digest?: string;
90
+ };
91
+ /** With `provenance`: rebuild an identity the folder holds from another source (an upgrade across Zones, Q30). */
92
+ upgrade?: boolean;
93
+ /** `{ <ident>: Migration }` for a build that narrows what instances rely on. */
94
+ migration?: Record<string, AiwsMigration>;
95
+ idempotency_key?: string;
96
+ }
97
+ export interface AiwsExtUpgradeParams {
98
+ workspace_id: string;
99
+ /** `pkg_id` default: the package the definition was imported from (`provenance.pkg_id`). */
100
+ items: {
101
+ def_entity_id: string;
102
+ pkg_id?: string;
103
+ }[];
104
+ migration?: Record<string, AiwsMigration>;
105
+ force?: boolean;
106
+ dry_run?: boolean;
107
+ idempotency_key?: string;
108
+ }
109
+ export interface AiwsExtUpgradeResult {
110
+ status: 'accepted' | 'unchanged' | 'checked';
111
+ commit_id?: string;
112
+ seq?: number;
113
+ controls: {
114
+ ident: string;
115
+ def_entity_id: string;
116
+ action: 'upgraded' | 'unchanged';
117
+ from?: string;
118
+ to?: string;
119
+ migrated?: string[];
120
+ }[];
121
+ /** `dry_run`: what the migration writes on each instance. */
122
+ plan?: {
123
+ instance: string;
124
+ ops: Record<string, unknown>[];
125
+ }[];
126
+ }
127
+ export interface AiwsTemplateParam {
128
+ type: 'string' | 'number' | 'boolean';
129
+ title?: string;
130
+ default?: string | number | boolean;
131
+ }
132
+ /** A Workspace template of a control package (aiws-manifest.json `workspace_templates`, schemas/template.schema.json,
133
+ * Q32): a snapshot under `templates/<id>/` and the controls of the same package it needs. */
134
+ export interface AiwsTemplateItem {
135
+ id: string;
136
+ title: string;
137
+ description?: string;
138
+ snapshot: string;
139
+ digest: string;
140
+ requires: {
141
+ host_api?: {
142
+ html?: number;
143
+ declarative?: number;
144
+ };
145
+ controls: string[];
146
+ };
147
+ params?: Record<string, AiwsTemplateParam>;
148
+ reset?: {
149
+ tables?: string[];
150
+ };
151
+ }
152
+ /** One template to export (`ext.export_template`, `ext.pack` / `ext.install` `templates`): chosen Surfaces (and data
153
+ * entities) of the Workspace. */
154
+ export interface AiwsTemplateExport {
155
+ surfaces: string[];
156
+ data?: string[];
157
+ template: {
158
+ id: string;
159
+ title: string;
160
+ description?: string;
161
+ params?: Record<string, AiwsTemplateParam>;
162
+ reset?: {
163
+ tables: string[];
164
+ };
165
+ };
166
+ }
167
+ /** `ext.build` / `ext.import`: one entry per control (`created | rebuilt | unchanged | satisfied`), the first also at the top. */
168
+ export interface AiwsExtBuildResult {
169
+ status: 'accepted' | 'unchanged' | 'checked';
170
+ commit_id?: string;
171
+ seq?: number;
172
+ unchanged?: boolean;
173
+ ident?: string;
174
+ def_entity_id?: string;
175
+ dir_entity_id?: string;
176
+ version?: number;
177
+ def_rev?: number;
178
+ dir_rev?: number;
179
+ action?: string;
180
+ build?: {
181
+ input_digest: string;
182
+ builder_version: string;
183
+ built_at: string;
184
+ };
185
+ controls: Record<string, unknown>[];
186
+ diagnostics: Record<string, unknown>[];
187
+ }
188
+ export interface AiwsLibraryPackage {
189
+ pkg_id: string;
190
+ version: string;
191
+ title: string;
192
+ author: string;
193
+ mode: string;
194
+ installed_at: string;
195
+ /** The package's manifest_version is above what the service reads: listed, not importable. */
196
+ needs_newer?: boolean;
197
+ controls: {
198
+ ident: string;
199
+ name: string;
200
+ kind: string;
201
+ version: number;
202
+ digest: string;
203
+ dir: string;
204
+ title?: string;
205
+ description?: string;
206
+ catalog?: Record<string, unknown>;
207
+ deps?: string[];
208
+ }[];
209
+ templates?: {
210
+ id: string;
211
+ title: string;
212
+ description?: string;
213
+ params?: Record<string, AiwsTemplateParam>;
214
+ requires: AiwsTemplateItem['requires'];
215
+ }[];
216
+ }
217
+ /** `ext.pack`: the `.pikg` the service wrote into the caller's `exports` bucket. */
218
+ export interface AiwsExtPackResult {
219
+ bucket_id: string;
220
+ key: string;
221
+ obj_id: string;
222
+ size: number;
223
+ digest: string;
224
+ app_doc_object_id: string;
225
+ app_did: string;
226
+ pkg_id: string;
227
+ version: string;
228
+ /** The bucket binding with a read token (as `doc.export`'s `download`). */
229
+ download: {
230
+ bucket_id: string;
231
+ key: string;
232
+ version: number;
233
+ obj_id: string;
234
+ token: string;
235
+ };
236
+ }
47
237
  /** What an executor outside the service reports for a run (M3): results in the Mock executor's shape, or an analysis. */
48
238
  export interface AiwsRunReport {
49
239
  run_id: string;
@@ -82,6 +272,123 @@ export declare class AiWorkspaceClient {
82
272
  /** The three-state commit result (`status: accepted | conflict | rejected`), never thrown. */
83
273
  commit(workspace_id: string, request: Record<string, unknown>): Promise<Record<string, unknown>>;
84
274
  getSubmission(workspace_id: string, epoch: string, idempotency_key: string): Promise<Record<string, unknown>>;
275
+ /** Changes after `after_seq` (`filter.detail: "touched"` for the touched entities only). */
276
+ getChanges(workspace_id: string, epoch: string, after_seq: number, opts?: {
277
+ limit?: number;
278
+ touchedOnly?: boolean;
279
+ }): Promise<Record<string, unknown>>;
280
+ /** Long poll until the head passes `after_seq` (or `timeout_ms`). */
281
+ waitChanges(workspace_id: string, after_seq: number, opts?: {
282
+ epoch?: string;
283
+ timeout_ms?: number;
284
+ }): Promise<{
285
+ epoch: string;
286
+ head_seq: number;
287
+ timed_out: boolean;
288
+ }>;
289
+ /** A whole-Workspace package (`.bcanvas`): `download` names it in the owner's exports bucket. */
290
+ exportDoc(workspace_id: string, mode: 'share' | 'personal_backup', self_contained: boolean, include_notes?: boolean): Promise<Record<string, unknown>>;
291
+ /** Register a FileObject as a staged asset: `{ bucket_id, key }` (the uploader's binding) or `{ obj_id }`. */
292
+ assetImportObject(workspace_id: string, source: {
293
+ bucket_id: string;
294
+ key: string;
295
+ } | {
296
+ obj_id: string;
297
+ }): Promise<{
298
+ object_id: string;
299
+ media_type: string;
300
+ size: number;
301
+ }>;
302
+ controlsList(): Promise<Record<string, unknown>>;
303
+ controlsDescribe(kind: string): Promise<Record<string, unknown>>;
304
+ controlsImport(workspace_id: string, params: Record<string, unknown>): Promise<Record<string, unknown>>;
305
+ controlsExport(workspace_id: string, entity_id: string, format?: 'markdown' | 'opml'): Promise<Record<string, unknown>>;
306
+ /** Build one control's source files into the Workspace; `BUILD_FAILED` carries `data.diagnostics`. */
307
+ extBuild(workspace_id: string, params: AiwsExtBuildParams): Promise<AiwsExtBuildResult>;
308
+ /** The bundle of definitions (`purpose: pull` needs read only and synthesizes the source of never-built ones). */
309
+ extExport(workspace_id: string, entity_ids: string[], purpose?: 'package' | 'pull'): Promise<{
310
+ manifest: Record<string, unknown>;
311
+ controls: Record<string, unknown>[];
312
+ files: {
313
+ path: string;
314
+ obj_id?: string;
315
+ size: number;
316
+ text?: string;
317
+ }[];
318
+ }>;
319
+ /** Into the caller's library: a `.pikg` object or one bound into the caller's `exports` bucket (consumed), or
320
+ * definitions of a Workspace (`from` + `package`). */
321
+ extInstall(params: {
322
+ pikg?: {
323
+ obj_id: string;
324
+ } | {
325
+ bucket_id: string;
326
+ key: string;
327
+ };
328
+ from?: {
329
+ workspace_id: string;
330
+ entity_ids: string[];
331
+ templates?: AiwsTemplateExport[];
332
+ };
333
+ package?: {
334
+ name: string;
335
+ version?: string;
336
+ title?: string;
337
+ };
338
+ mode?: 'dev';
339
+ }): Promise<{
340
+ pkg_id: string;
341
+ version: string;
342
+ action: string;
343
+ controls: Record<string, unknown>[];
344
+ }>;
345
+ /** Pack definitions (and what they build on, and templates of the Workspace) as an `aiws` `.pikg` into the caller's
346
+ * `exports` bucket (unsigned). */
347
+ extPack(workspace_id: string, entity_ids: string[], pkg: {
348
+ name: string;
349
+ version?: string;
350
+ title?: string;
351
+ }, templates?: AiwsTemplateExport[]): Promise<AiwsExtPackResult>;
352
+ /** Rebuild imported definitions from the caller's library (same Zone; across Zones `ext.build { provenance, upgrade }`):
353
+ * `EXT_LOCAL_CHANGES` when the snapshot was built locally since, unless `force`. */
354
+ extUpgrade(params: AiwsExtUpgradeParams): Promise<AiwsExtUpgradeResult>;
355
+ /** Chosen Surfaces as a template snapshot: the manifest item, the definitions it needs and the files (base64) of
356
+ * `templates/<id>/`. */
357
+ extExportTemplate(params: {
358
+ workspace_id: string;
359
+ } & AiwsTemplateExport): Promise<{
360
+ template: AiwsTemplateItem;
361
+ controls: Record<string, unknown>[];
362
+ files: {
363
+ path: string;
364
+ base64: string;
365
+ }[];
366
+ }>;
367
+ /** A new Workspace from a template of the caller's library (installing a template never creates one). */
368
+ extCreateFromTemplate(params: {
369
+ pkg_id: string;
370
+ template_id: string;
371
+ title?: string;
372
+ params?: Record<string, string | number | boolean>;
373
+ }): Promise<{
374
+ workspace_id: string;
375
+ }>;
376
+ extListLibrary(): Promise<{
377
+ packages: AiwsLibraryPackage[];
378
+ }>;
379
+ extUninstall(pkg_id: string): Promise<Record<string, unknown>>;
380
+ /** A library package's controls with their bytes (base64): what a client relays into a Workspace of another Zone. */
381
+ extLibraryBundle(pkg_id: string, idents?: string[]): Promise<{
382
+ pkg_id: string;
383
+ controls: Record<string, unknown>[];
384
+ }>;
385
+ /** Bring library controls into a Workspace of this Zone (one Commit). */
386
+ extImport(workspace_id: string, items: {
387
+ pkg_id: string;
388
+ ident: string;
389
+ }[], opts?: {
390
+ folder_id?: string;
391
+ }): Promise<AiwsExtBuildResult>;
85
392
  runStart(workspace_id: string, program: string, params: Record<string, unknown>, idempotency_key: string): Promise<Record<string, unknown>>;
86
393
  runGet(workspace_id: string, run_id: string, choices?: Record<string, unknown>): Promise<Record<string, unknown>>;
87
394
  runList(workspace_id: string, wish_id?: string, limit?: number): Promise<Record<string, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"aiworkspace_client.d.ts","sourceRoot":"","sources":["../src/aiworkspace_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aiworkspace_client.d.ts","sourceRoot":"","sources":["../src/aiworkspace_client.ts"],"names":[],"mappings":"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"}