needle-cloud 2.4.5 → 2.4.6
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/CHANGELOG.md +6 -0
- package/dist/cli-619611b8.js +1 -0
- package/dist/cli.esm.js +1 -1
- package/dist/cli.send-logs.discovery-5657815c.js +1 -0
- package/dist/index.d.ts +412 -7
- package/dist/index.esm.js +1 -1
- package/package.json +23 -22
- package/dist/cli-5251dd32.js +0 -1
- package/dist/cli.send-logs.discovery-a99400e6.js +0 -1
package/dist/cli.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node-fetch";import"@web-std/file";import"node:crypto";export{p as program}from"./cli-
|
|
1
|
+
import"node-fetch";import"@web-std/file";import"node:crypto";export{p as program}from"./cli-619611b8.js";import"fs";import"dotenv";import"ora";import"commander";import"open";import"crypto";import"buffer";import"path";import"node:fs";import"node:fs/promises";import"node:os";import"node:path";import"util";import"stream";import"http";import"https";import"url";import"net";import"tls";import"assert";import"tty";import"os";import"events";import"http2";import"zlib";import"node:readline/promises";import"@logto/node";import"node:readline";import"node:stream";import"node:zlib";import"express";import"ws";import"child_process";import"minimatch";import"body-parser";import"node:child_process";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{existsSync as t,readdirSync as o,statSync as r}from"node:fs";import{dirname as i,join as e}from"node:path";import{g as n}from"./cli-619611b8.js";import"node-fetch";import"@web-std/file";import"node:crypto";import"commander";import"fs";import"open";import"crypto";import"buffer";import"path";import"ora";import"node:fs/promises";import"node:os";import"util";import"stream";import"http";import"https";import"url";import"net";import"tls";import"assert";import"tty";import"os";import"events";import"http2";import"zlib";import"node:readline/promises";import"dotenv";import"@logto/node";import"node:readline";import"node:stream";import"node:zlib";import"express";import"ws";import"child_process";import"minimatch";import"body-parser";import"node:child_process";function p(){var p;let m;try{m=n()}catch{return null}const s=null==(p=m)||null==(p=p.entries)?void 0:p[0];if(!s)return null;if(!s.log_location)return null;if("unity"!==s.editor&&"blender"!==s.editor)return null;if(!t(s.log_location))return null;const l=s.log_location,c=function(t,i){const n=new Set([i]);try{for(const i of o(t)){if(!i.toLowerCase().endsWith(".log"))continue;const o=e(t,i);try{if(!r(o).isFile())continue}catch{continue}n.add(o)}}catch{}return[...n]}(i(l),l);return{editor:s.editor,path:l,paths:c}}export{p as findActiveEditorLog};
|
package/dist/index.d.ts
CHANGED
|
@@ -90,6 +90,10 @@ declare namespace Auth {
|
|
|
90
90
|
* Request an access token for the configured resource
|
|
91
91
|
* @param {string | undefined | null} [org_id] - The organization ID (optional). If none is provided the user access token will be requested.
|
|
92
92
|
* @returns {Promise<string>}
|
|
93
|
+
*
|
|
94
|
+
* Deduplicated per org: every caller that needs a token used to ask
|
|
95
|
+
* independently, so one page load fired eight identical requests. Concurrent
|
|
96
|
+
* callers now share one; see _requestAccessToken.
|
|
93
97
|
*/
|
|
94
98
|
function requestAccessToken(org_id?: string | undefined | null): Promise<string>;
|
|
95
99
|
/**
|
|
@@ -170,26 +174,65 @@ type RecentChatsResponse$1 = {
|
|
|
170
174
|
}
|
|
171
175
|
|
|
172
176
|
|
|
173
|
-
/**
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
/**
|
|
178
|
+
* How much of an image the model is asked to look at. `low` costs a fraction of
|
|
179
|
+
* `high` and answers most of what a picture is sent for ("is the object in
|
|
180
|
+
* frame?", "is the scene dark?"); choose `high` when it has to read text in the
|
|
181
|
+
* image. Defaults to `low`.
|
|
182
|
+
*/
|
|
183
|
+
type ImageDetail = "high" | "low"
|
|
184
|
+
|
|
185
|
+
/** An image sent to the model. `url` is an http(s) url or a `data:image/...` url. */
|
|
186
|
+
type ClientImage = {
|
|
187
|
+
type: "image",
|
|
188
|
+
url: string,
|
|
189
|
+
detail?: ImageDetail,
|
|
177
190
|
}
|
|
178
191
|
|
|
192
|
+
/** Context block sent by the client (e.g. page metadata, scene hierarchy, a screenshot). */
|
|
193
|
+
type ClientContext =
|
|
194
|
+
| { type: "text", text: string }
|
|
195
|
+
| ClientImage
|
|
196
|
+
|
|
179
197
|
|
|
180
198
|
type ChatMessageToolCall = {
|
|
181
199
|
name: string,
|
|
200
|
+
/** Server-provided pretty label for the tool, when the tool author set one
|
|
201
|
+
* (streamed on the tool_call event). The UI prefers this over title-casing
|
|
202
|
+
* the raw `name`. */
|
|
203
|
+
display_name?: string | null,
|
|
182
204
|
args: Record<string, any>,
|
|
183
205
|
result_length?: number,
|
|
184
206
|
duration_ms?: number,
|
|
185
207
|
}
|
|
186
208
|
|
|
209
|
+
/**
|
|
210
|
+
* An image belonging to a chat message — a screenshot the AI took, a render.
|
|
211
|
+
*
|
|
212
|
+
* `url` is a stable, token-signed route on the API (not a presigned storage
|
|
213
|
+
* url): it can be rendered directly, it does not expire between page loads, and
|
|
214
|
+
* it stops resolving as soon as the chat is deleted.
|
|
215
|
+
*/
|
|
216
|
+
type ChatMessageAttachment = {
|
|
217
|
+
kind: "image",
|
|
218
|
+
url: string,
|
|
219
|
+
mime?: string,
|
|
220
|
+
width?: number,
|
|
221
|
+
height?: number,
|
|
222
|
+
/** How much of it the model was asked to look at. */
|
|
223
|
+
detail?: ImageDetail,
|
|
224
|
+
/** What produced it, e.g. the name of the tool that returned it. */
|
|
225
|
+
source?: string,
|
|
226
|
+
}
|
|
227
|
+
|
|
187
228
|
type ChatMessage = {
|
|
188
229
|
created_at: string,
|
|
189
230
|
id: string,
|
|
190
231
|
role: "assistant" | "tool" | "user",
|
|
191
232
|
content: string,
|
|
192
233
|
tool_calls?: ChatMessageToolCall[],
|
|
234
|
+
/** Images belonging to this message. Absent on the vast majority of messages. */
|
|
235
|
+
attachments?: ChatMessageAttachment[],
|
|
193
236
|
metadata?: {
|
|
194
237
|
tokens?: { input: number, output: number },
|
|
195
238
|
model?: string,
|
|
@@ -274,11 +317,18 @@ type ChatStreamEvent = { /** SSE event id for position tracking. */ id?: number
|
|
|
274
317
|
/** Server-assigned message ID for the AI response. */
|
|
275
318
|
| { type: "message_id", message_id: string }
|
|
276
319
|
/** The AI invoked a tool. Use for UI indicators (e.g. "Running get_screenshot..."). */
|
|
277
|
-
| { type: "tool_call", name: string, args: Record<string, any> }
|
|
320
|
+
| { type: "tool_call", name: string, display_name?: string | null, args: Record<string, any> }
|
|
278
321
|
/** A tool finished executing. The AI will continue generating with the result. */
|
|
279
322
|
| { type: "tool_result", name: string }
|
|
280
323
|
/** An error occurred. Display `message` to the user. */
|
|
281
324
|
| { type: "error", message: string }
|
|
325
|
+
/**
|
|
326
|
+
* A non-fatal problem the USER should see, rendered as its own line rather
|
|
327
|
+
* than folded into the answer. First case: a step whose model cannot view
|
|
328
|
+
* images, so the picture was left out of the request instead of failing the
|
|
329
|
+
* whole turn.
|
|
330
|
+
*/
|
|
331
|
+
| { type: "notice", message: string }
|
|
282
332
|
/** Generation was interrupted by the user (via `interruptChat()`). */
|
|
283
333
|
| { type: "stopped" }
|
|
284
334
|
/** Informational status update (e.g. "Searching documentation..."). */
|
|
@@ -337,6 +387,36 @@ type ToolDefinition$1 = {
|
|
|
337
387
|
inputSchema: Record<string, any>,
|
|
338
388
|
}
|
|
339
389
|
|
|
390
|
+
/**
|
|
391
|
+
* Which chat a tool request came from, passed to `onToolRequest`.
|
|
392
|
+
*
|
|
393
|
+
* One tool connection serves every chat you have open, so a client running more
|
|
394
|
+
* than one conversation needs this to attach the result to the right one.
|
|
395
|
+
*/
|
|
396
|
+
type ToolRequestMeta = {
|
|
397
|
+
/** The chat this request belongs to; `null` if the server did not identify one. */
|
|
398
|
+
chatId: string | null,
|
|
399
|
+
/** Id of this request, matching the result sent back for it. */
|
|
400
|
+
requestId: string,
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* What a tool hands back.
|
|
405
|
+
*
|
|
406
|
+
* `images` is the way to return a PICTURE — a screenshot, a render, a chart —
|
|
407
|
+
* instead of describing it. They reach the model as image parts on a following
|
|
408
|
+
* user turn (a tool message itself can only carry text), so the model sees them
|
|
409
|
+
* rather than being handed a base64 string it cannot read.
|
|
410
|
+
*
|
|
411
|
+
* Keep them few and small: an image is a payload, and `detail: "low"` is both
|
|
412
|
+
* the default and usually enough.
|
|
413
|
+
*/
|
|
414
|
+
type ToolRequestOutcome = {
|
|
415
|
+
result?: any,
|
|
416
|
+
error?: string,
|
|
417
|
+
images?: Array<{ url: string, detail?: ImageDetail }>,
|
|
418
|
+
}
|
|
419
|
+
|
|
340
420
|
|
|
341
421
|
// ─── ChatSession Types ──────────────────────────────────────────────
|
|
342
422
|
|
|
@@ -357,8 +437,9 @@ type ChatSessionOptions$1 = {
|
|
|
357
437
|
* Called when the server requests tool execution.
|
|
358
438
|
* Return `{ result: ... }` on success or `{ error: "..." }` on failure.
|
|
359
439
|
* Required if `tools` is non-empty.
|
|
440
|
+
* `meta.chatId` says which chat asked — a session can drive several.
|
|
360
441
|
*/
|
|
361
|
-
onToolRequest?: (name: string, args: Record<string, any
|
|
442
|
+
onToolRequest?: (name: string, args: Record<string, any>, meta: ToolRequestMeta) => Promise<ToolRequestOutcome>,
|
|
362
443
|
/**
|
|
363
444
|
* How long (ms) to wait for the WebSocket to connect and register tools
|
|
364
445
|
* before `ready` rejects. Defaults to 5000. Set to 0 to skip WS entirely.
|
|
@@ -1204,6 +1285,13 @@ type ContentListItem = {
|
|
|
1204
1285
|
content_type: ContentType | null;
|
|
1205
1286
|
/** Available content formats for this content item (e.g. ["glb", "textures"]) */
|
|
1206
1287
|
content_formats: ContentFormat[];
|
|
1288
|
+
/** Page for editing this item in the cloud UI. Present for everything the
|
|
1289
|
+
* caller can see through this endpoint, since it is already scoped to their
|
|
1290
|
+
* org. Null only when the server has no configured frontend origin. */
|
|
1291
|
+
edit_url?: string | null;
|
|
1292
|
+
/** Standalone viewer page. Null for deployments (they ARE a website — use
|
|
1293
|
+
* `url`) and for items with no artifact to view yet. */
|
|
1294
|
+
view_url?: string | null;
|
|
1207
1295
|
/** Number of top-level versions (matches the versions[] array in the detail response) */
|
|
1208
1296
|
version_count: number;
|
|
1209
1297
|
/** Whether the content is password-protected (requires commercial license) */
|
|
@@ -1403,6 +1491,323 @@ declare function getContent(identifier: string, opts?: {
|
|
|
1403
1491
|
authToken?: string;
|
|
1404
1492
|
}): Promise<GetContentDetailResponse>;
|
|
1405
1493
|
|
|
1494
|
+
/**
|
|
1495
|
+
* @internal Needle editor cloud projects — versioned revisions of OPAQUE
|
|
1496
|
+
* project documents (needle-cloud plans/cloud-projects-api.md). Editor-only,
|
|
1497
|
+
* NO stability guarantee, deliberately not in the public OpenAPI docs.
|
|
1498
|
+
*
|
|
1499
|
+
* The server never parses a document: it stores blobs plus a revision graph.
|
|
1500
|
+
* These types ARE the wire contract the editor's IProjectRemote adapter
|
|
1501
|
+
* aligns to.
|
|
1502
|
+
*/
|
|
1503
|
+
|
|
1504
|
+
/** derived server-side from timestamps; deleted outranks archived.
|
|
1505
|
+
* "deleted" lists the BIN (bounded to the restore window). */
|
|
1506
|
+
type ProjectState = "active" | "archived" | "deleted";
|
|
1507
|
+
|
|
1508
|
+
interface ProjectInfo {
|
|
1509
|
+
/** public project handle (projects.identifier) */
|
|
1510
|
+
id: string;
|
|
1511
|
+
name: string;
|
|
1512
|
+
/** product discriminator, e.g. "web-project" (the editor) — opaque to the server */
|
|
1513
|
+
kind?: string;
|
|
1514
|
+
created_at?: string | null;
|
|
1515
|
+
updated_at?: string | null;
|
|
1516
|
+
/** set = the project is ARCHIVED (read-only; pushes return 409) */
|
|
1517
|
+
archived_at?: string | null;
|
|
1518
|
+
/** set = the project is in the BIN (only on ?state=deleted listings) */
|
|
1519
|
+
deleted_at?: string | null;
|
|
1520
|
+
/** user-editable metadata — opaque to the server */
|
|
1521
|
+
description?: string | null;
|
|
1522
|
+
tags?: string[] | null;
|
|
1523
|
+
/** newest revision's actor id — null for a project with no pushes */
|
|
1524
|
+
updated_by?: string | null;
|
|
1525
|
+
/** resolved display name of updated_by (cached lookup) — null when unresolvable */
|
|
1526
|
+
updated_by_name?: string | null;
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
interface ProjectRevisionInfo {
|
|
1530
|
+
/** resolved display name of the actor (server-side cached Logto lookup);
|
|
1531
|
+
* null when unresolvable — the actor ID stays the stored truth.
|
|
1532
|
+
* Present on the revisions LISTING only. */
|
|
1533
|
+
actorName?: string | null;
|
|
1534
|
+
/** 1-based, strictly increasing per project */
|
|
1535
|
+
revision: number;
|
|
1536
|
+
/** the revision this push was built on (0 for the first) */
|
|
1537
|
+
baseRevision: number;
|
|
1538
|
+
/** sha-256 hex of the full document bytes */
|
|
1539
|
+
hash: string;
|
|
1540
|
+
/** token identity of the pusher — never client-supplied */
|
|
1541
|
+
actor: string;
|
|
1542
|
+
/** ISO timestamp */
|
|
1543
|
+
timestamp: string | null;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
interface CreateProjectResponse {
|
|
1547
|
+
id: string;
|
|
1548
|
+
name: string;
|
|
1549
|
+
kind?: string;
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
interface ListProjectsResponse {
|
|
1553
|
+
projects: ProjectInfo[];
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
/** PARTIAL update: absent = keep, null = clear */
|
|
1557
|
+
interface UpdateProjectRequest {
|
|
1558
|
+
name?: string;
|
|
1559
|
+
description?: string | null;
|
|
1560
|
+
/** max 20 tags, 1-64 characters each (deduped server-side) */
|
|
1561
|
+
tags?: string[] | null;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
interface UpdateProjectResponse {
|
|
1565
|
+
id: string;
|
|
1566
|
+
name: string;
|
|
1567
|
+
description: string | null;
|
|
1568
|
+
tags: string[] | null;
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
interface CloneProjectResponse {
|
|
1572
|
+
/** the COPY's public handle */
|
|
1573
|
+
id: string;
|
|
1574
|
+
name: string;
|
|
1575
|
+
kind?: string;
|
|
1576
|
+
/** the source project's handle */
|
|
1577
|
+
sourceId: string;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
interface ProjectHeadResponse {
|
|
1581
|
+
head: ProjectRevisionInfo | null;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
interface PushProjectRequest {
|
|
1585
|
+
/** project id (public handle) */
|
|
1586
|
+
project: string;
|
|
1587
|
+
/** optimistic-concurrency token: the revision the client built on */
|
|
1588
|
+
baseRevision: number;
|
|
1589
|
+
/** sha-256 hex of the decoded bytes — verified server-side */
|
|
1590
|
+
hash: string;
|
|
1591
|
+
/** base64 document bytes */
|
|
1592
|
+
bytes: string;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
interface PushProjectResponse {
|
|
1596
|
+
/** ok = revision minted; unchanged = identical to head, nothing minted;
|
|
1597
|
+
* stale = head moved past the base — pull, merge client-side, retry */
|
|
1598
|
+
status: "ok" | "unchanged" | "stale";
|
|
1599
|
+
head: ProjectRevisionInfo;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
interface PullProjectResponse {
|
|
1603
|
+
info: ProjectRevisionInfo;
|
|
1604
|
+
/** base64 document bytes */
|
|
1605
|
+
bytes: string;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* @internal Needle editor cloud projects — versioned revisions of OPAQUE
|
|
1610
|
+
* project documents. Editor-only, NO stability guarantee (needle-cloud
|
|
1611
|
+
* plans/cloud-projects-api.md): the document format is young and this
|
|
1612
|
+
* surface changes with it. The server never parses a document.
|
|
1613
|
+
*
|
|
1614
|
+
* Auth mirrors {@link listContent}: browser session unless an explicit
|
|
1615
|
+
* `authToken` is passed (the Needle editor's identity service does).
|
|
1616
|
+
*/
|
|
1617
|
+
/**
|
|
1618
|
+
* @internal
|
|
1619
|
+
* @param {string} name
|
|
1620
|
+
* @param {{ org?: string, authToken?: string, kind: string }} opts - kind = product discriminator, REQUIRED (editor: "web-project")
|
|
1621
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").CreateProjectResponse>}
|
|
1622
|
+
*/
|
|
1623
|
+
declare function createProject(name: string, opts: {
|
|
1624
|
+
org?: string;
|
|
1625
|
+
authToken?: string;
|
|
1626
|
+
kind: string;
|
|
1627
|
+
}): Promise<CreateProjectResponse>;
|
|
1628
|
+
/**
|
|
1629
|
+
* @internal
|
|
1630
|
+
* @param {{ org?: string, authToken?: string, kind?: string, state?: import("@needle-tools/cloud-sdk/types/api.projects").ProjectState }} [opts] - kind filters to one product's projects; state = "active" (default) | "archived" | "deleted" (the bin)
|
|
1631
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").ListProjectsResponse>}
|
|
1632
|
+
*/
|
|
1633
|
+
declare function listProjects(opts?: {
|
|
1634
|
+
org?: string;
|
|
1635
|
+
authToken?: string;
|
|
1636
|
+
kind?: string;
|
|
1637
|
+
state?: ProjectState;
|
|
1638
|
+
}): Promise<ListProjectsResponse>;
|
|
1639
|
+
/**
|
|
1640
|
+
* @internal
|
|
1641
|
+
* @param {string} project - project id (public handle)
|
|
1642
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1643
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").ProjectHeadResponse>}
|
|
1644
|
+
*/
|
|
1645
|
+
declare function getProjectHead(project: string, opts?: {
|
|
1646
|
+
org?: string;
|
|
1647
|
+
authToken?: string;
|
|
1648
|
+
}): Promise<ProjectHeadResponse>;
|
|
1649
|
+
/**
|
|
1650
|
+
* @internal
|
|
1651
|
+
* @param {import("@needle-tools/cloud-sdk/types/api.projects").PushProjectRequest} request
|
|
1652
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1653
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").PushProjectResponse>}
|
|
1654
|
+
*/
|
|
1655
|
+
declare function pushProjectRevision(request: PushProjectRequest, opts?: {
|
|
1656
|
+
org?: string;
|
|
1657
|
+
authToken?: string;
|
|
1658
|
+
}): Promise<PushProjectResponse>;
|
|
1659
|
+
/**
|
|
1660
|
+
* @internal Resolves to null when the project or revision does not exist —
|
|
1661
|
+
* callers (the editor's project remote) treat that as "nothing to pull",
|
|
1662
|
+
* not an error.
|
|
1663
|
+
* @param {string} project - project id (public handle)
|
|
1664
|
+
* @param {number} [revision] - specific revision; head when omitted
|
|
1665
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1666
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").PullProjectResponse | null>}
|
|
1667
|
+
*/
|
|
1668
|
+
declare function pullProjectRevision(project: string, revision?: number, opts?: {
|
|
1669
|
+
org?: string;
|
|
1670
|
+
authToken?: string;
|
|
1671
|
+
}): Promise<PullProjectResponse | null>;
|
|
1672
|
+
/**
|
|
1673
|
+
* @internal SOFT delete — history and blobs are preserved server-side.
|
|
1674
|
+
* @param {string} project - project id (public handle)
|
|
1675
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1676
|
+
* @returns {Promise<{id: string, message: string}>}
|
|
1677
|
+
*/
|
|
1678
|
+
declare function deleteProject(project: string, opts?: {
|
|
1679
|
+
org?: string;
|
|
1680
|
+
authToken?: string;
|
|
1681
|
+
}): Promise<{
|
|
1682
|
+
id: string;
|
|
1683
|
+
message: string;
|
|
1684
|
+
}>;
|
|
1685
|
+
/**
|
|
1686
|
+
* @internal Un-delete a project from the bin (bounded server-side to the bin window).
|
|
1687
|
+
* @param {string} project - project id (public handle)
|
|
1688
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1689
|
+
* @returns {Promise<{id: string, message: string}>}
|
|
1690
|
+
*/
|
|
1691
|
+
declare function restoreProject(project: string, opts?: {
|
|
1692
|
+
org?: string;
|
|
1693
|
+
authToken?: string;
|
|
1694
|
+
}): Promise<{
|
|
1695
|
+
id: string;
|
|
1696
|
+
message: string;
|
|
1697
|
+
}>;
|
|
1698
|
+
/**
|
|
1699
|
+
* @internal Archive = read-only + hidden from the default list; pushes return 409.
|
|
1700
|
+
* @param {string} project - project id (public handle)
|
|
1701
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1702
|
+
* @returns {Promise<{id: string, message: string}>}
|
|
1703
|
+
*/
|
|
1704
|
+
declare function archiveProject(project: string, opts?: {
|
|
1705
|
+
org?: string;
|
|
1706
|
+
authToken?: string;
|
|
1707
|
+
}): Promise<{
|
|
1708
|
+
id: string;
|
|
1709
|
+
message: string;
|
|
1710
|
+
}>;
|
|
1711
|
+
/**
|
|
1712
|
+
* @internal
|
|
1713
|
+
* @param {string} project - project id (public handle)
|
|
1714
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1715
|
+
* @returns {Promise<{id: string, message: string}>}
|
|
1716
|
+
*/
|
|
1717
|
+
declare function unarchiveProject(project: string, opts?: {
|
|
1718
|
+
org?: string;
|
|
1719
|
+
authToken?: string;
|
|
1720
|
+
}): Promise<{
|
|
1721
|
+
id: string;
|
|
1722
|
+
message: string;
|
|
1723
|
+
}>;
|
|
1724
|
+
/**
|
|
1725
|
+
* @internal Duplicate a project inside its org — zero-copy server-side.
|
|
1726
|
+
* @param {string} project - source project id (public handle)
|
|
1727
|
+
* @param {{ org?: string, authToken?: string, name?: string }} [opts] - the copy's name; "<source> (copy)" when omitted
|
|
1728
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").CloneProjectResponse>}
|
|
1729
|
+
*/
|
|
1730
|
+
declare function cloneProject(project: string, opts?: {
|
|
1731
|
+
org?: string;
|
|
1732
|
+
authToken?: string;
|
|
1733
|
+
name?: string;
|
|
1734
|
+
}): Promise<CloneProjectResponse>;
|
|
1735
|
+
/**
|
|
1736
|
+
* @internal PARTIAL metadata update — absent fields stay, null clears.
|
|
1737
|
+
* @param {string} project - project id (public handle)
|
|
1738
|
+
* @param {import("@needle-tools/cloud-sdk/types/api.projects").UpdateProjectRequest} patch
|
|
1739
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1740
|
+
* @returns {Promise<import("@needle-tools/cloud-sdk/types/api.projects").UpdateProjectResponse>}
|
|
1741
|
+
*/
|
|
1742
|
+
declare function updateProject(project: string, patch: UpdateProjectRequest, opts?: {
|
|
1743
|
+
org?: string;
|
|
1744
|
+
authToken?: string;
|
|
1745
|
+
}): Promise<UpdateProjectResponse>;
|
|
1746
|
+
/**
|
|
1747
|
+
* @internal Which of these file-blob hashes the org pool does not hold yet.
|
|
1748
|
+
* @param {readonly string[]} hashes
|
|
1749
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1750
|
+
* @returns {Promise<{ missing: string[] }>}
|
|
1751
|
+
*/
|
|
1752
|
+
declare function checkProjectBlobs(hashes: readonly string[], opts?: {
|
|
1753
|
+
org?: string;
|
|
1754
|
+
authToken?: string;
|
|
1755
|
+
}): Promise<{
|
|
1756
|
+
missing: string[];
|
|
1757
|
+
}>;
|
|
1758
|
+
/**
|
|
1759
|
+
* @internal Presigned PUT url for one file blob.
|
|
1760
|
+
* @param {string} hash
|
|
1761
|
+
* @param {number} size
|
|
1762
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1763
|
+
* @returns {Promise<{ url: string, key: string }>}
|
|
1764
|
+
*/
|
|
1765
|
+
declare function requestProjectBlobUpload(hash: string, size: number, opts?: {
|
|
1766
|
+
org?: string;
|
|
1767
|
+
authToken?: string;
|
|
1768
|
+
}): Promise<{
|
|
1769
|
+
url: string;
|
|
1770
|
+
key: string;
|
|
1771
|
+
}>;
|
|
1772
|
+
/**
|
|
1773
|
+
* @internal Complete (HEAD-verify + index) an uploaded file blob.
|
|
1774
|
+
* @param {string} hash
|
|
1775
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1776
|
+
* @returns {Promise<{ hash: string, size: number }>}
|
|
1777
|
+
*/
|
|
1778
|
+
declare function completeProjectBlobUpload(hash: string, opts?: {
|
|
1779
|
+
org?: string;
|
|
1780
|
+
authToken?: string;
|
|
1781
|
+
}): Promise<{
|
|
1782
|
+
hash: string;
|
|
1783
|
+
size: number;
|
|
1784
|
+
}>;
|
|
1785
|
+
/**
|
|
1786
|
+
* @internal Presigned GET url for a file blob; null when absent.
|
|
1787
|
+
* @param {string} hash
|
|
1788
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1789
|
+
* @returns {Promise<{ url: string, size: number } | null>}
|
|
1790
|
+
*/
|
|
1791
|
+
declare function requestProjectBlobDownload(hash: string, opts?: {
|
|
1792
|
+
org?: string;
|
|
1793
|
+
authToken?: string;
|
|
1794
|
+
}): Promise<{
|
|
1795
|
+
url: string;
|
|
1796
|
+
size: number;
|
|
1797
|
+
} | null>;
|
|
1798
|
+
/**
|
|
1799
|
+
* @internal Revision history of a project, newest first.
|
|
1800
|
+
* @param {string} project
|
|
1801
|
+
* @param {{ org?: string, authToken?: string }} [opts]
|
|
1802
|
+
* @returns {Promise<{ revisions: import("@needle-tools/cloud-sdk/types/api.projects").ProjectRevisionInfo[] }>}
|
|
1803
|
+
*/
|
|
1804
|
+
declare function listProjectRevisions(project: string, opts?: {
|
|
1805
|
+
org?: string;
|
|
1806
|
+
authToken?: string;
|
|
1807
|
+
}): Promise<{
|
|
1808
|
+
revisions: ProjectRevisionInfo[];
|
|
1809
|
+
}>;
|
|
1810
|
+
|
|
1406
1811
|
/**
|
|
1407
1812
|
* Start the checkout process
|
|
1408
1813
|
* @param {{ price_id:string }} args
|
|
@@ -1420,5 +1825,5 @@ declare namespace AuthScopes {
|
|
|
1420
1825
|
let All: string[];
|
|
1421
1826
|
}
|
|
1422
1827
|
|
|
1423
|
-
export { Auth, AuthScopes, NeedleLoginButton, createChatSession, getContent, getDeployments, getPublicContent, getUserLicenses, listChats, listContent, listPublicContent, ownsProduct, startCheckoutSession, uploadFiles };
|
|
1828
|
+
export { Auth, AuthScopes, NeedleLoginButton, archiveProject, checkProjectBlobs, cloneProject, completeProjectBlobUpload, createChatSession, createProject, deleteProject, getContent, getDeployments, getProjectHead, getPublicContent, getUserLicenses, listChats, listContent, listProjectRevisions, listProjects, listPublicContent, ownsProduct, pullProjectRevision, pushProjectRevision, requestProjectBlobDownload, requestProjectBlobUpload, restoreProject, startCheckoutSession, unarchiveProject, updateProject, uploadFiles };
|
|
1424
1829
|
export type { AuthData, AuthInitOpts, ChatAuthOpts, ChatSessionHandle, ChatSessionOptions, ChatSessionSendOptions, Deployment, Filelike, LogtoUserCustomData, RecentChatsResponse, ResourceUrl, ToolDefinition, UserInfoResponse };
|