@lambdacurry/arbor 0.15.0 → 0.15.2
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/dist/arbor.js +72 -13
- package/package.json +1 -1
package/dist/arbor.js
CHANGED
|
@@ -1526,6 +1526,32 @@ var githubInstallations = sqliteTable("github_installations", {
|
|
|
1526
1526
|
githubIdIdx: uniqueIndex("github_installations_github_id_idx").on(t.githubInstallationId),
|
|
1527
1527
|
orgIdx: index("github_installations_org_idx").on(t.orgId, t.status)
|
|
1528
1528
|
}));
|
|
1529
|
+
var githubUserAuthorizations = sqliteTable("github_user_authorizations", {
|
|
1530
|
+
id: text("id").primaryKey(),
|
|
1531
|
+
profileId: text("profile_id").notNull().references(() => profiles.id),
|
|
1532
|
+
orgId: text("org_id").notNull().references(() => orgs.id),
|
|
1533
|
+
githubUserId: text("github_user_id").notNull(),
|
|
1534
|
+
githubLogin: text("github_login").notNull(),
|
|
1535
|
+
status: text("status").$type().notNull().default("active"),
|
|
1536
|
+
accessCiphertext: text("access_ciphertext"),
|
|
1537
|
+
accessIv: text("access_iv"),
|
|
1538
|
+
accessKeyId: text("access_key_id"),
|
|
1539
|
+
accessAlgorithm: text("access_algorithm"),
|
|
1540
|
+
accessExpiresAt: ts("access_expires_at"),
|
|
1541
|
+
refreshCiphertext: text("refresh_ciphertext"),
|
|
1542
|
+
refreshIv: text("refresh_iv"),
|
|
1543
|
+
refreshKeyId: text("refresh_key_id"),
|
|
1544
|
+
refreshAlgorithm: text("refresh_algorithm"),
|
|
1545
|
+
refreshExpiresAt: ts("refresh_expires_at"),
|
|
1546
|
+
createdExecutionContextId: text("created_execution_context_id").notNull().references(() => executionContexts.id),
|
|
1547
|
+
updatedExecutionContextId: text("updated_execution_context_id").notNull().references(() => executionContexts.id),
|
|
1548
|
+
createdAt: ts("created_at").notNull(),
|
|
1549
|
+
updatedAt: ts("updated_at").notNull()
|
|
1550
|
+
}, (t) => ({
|
|
1551
|
+
profileIdx: uniqueIndex("github_user_authorizations_profile_idx").on(t.profileId),
|
|
1552
|
+
githubUserIdx: index("github_user_authorizations_github_user_idx").on(t.githubUserId, t.status),
|
|
1553
|
+
orgIdx: index("github_user_authorizations_org_idx").on(t.orgId, t.status)
|
|
1554
|
+
}));
|
|
1529
1555
|
var githubRepositories = sqliteTable("github_repositories", {
|
|
1530
1556
|
id: text("id").primaryKey(),
|
|
1531
1557
|
installationId: text("installation_id").notNull().references(() => githubInstallations.id),
|
|
@@ -2177,9 +2203,6 @@ var PREVIEW_MIME_TYPES = new Set([
|
|
|
2177
2203
|
"font/woff",
|
|
2178
2204
|
"font/woff2"
|
|
2179
2205
|
]);
|
|
2180
|
-
// ../core/src/ops/app.ts
|
|
2181
|
-
var APP_MAX_MODULE_BYTES = 10 * 1024 * 1024;
|
|
2182
|
-
var APP_MAX_ASSET_BYTES = 25 * 1024 * 1024;
|
|
2183
2206
|
// ../core/src/ops/secret.ts
|
|
2184
2207
|
var SECRET_PERMISSIONS = [
|
|
2185
2208
|
"create",
|
|
@@ -2193,6 +2216,10 @@ var SECRET_PERMISSIONS = [
|
|
|
2193
2216
|
"plaintext:read"
|
|
2194
2217
|
];
|
|
2195
2218
|
var SECRET_ADMIN_PERMISSIONS = SECRET_PERMISSIONS.filter((permission) => permission !== "create" && permission !== "plaintext:read");
|
|
2219
|
+
|
|
2220
|
+
// ../core/src/ops/app.ts
|
|
2221
|
+
var APP_MAX_MODULE_BYTES = 10 * 1024 * 1024;
|
|
2222
|
+
var APP_MAX_ASSET_BYTES = 25 * 1024 * 1024;
|
|
2196
2223
|
// ../core/src/queries/lane-match.ts
|
|
2197
2224
|
var STOP_WORDS = new Set("a an and are as at be by for from has have here how i in is it me of on or our the their they this to was what when where which who will with you your".split(" "));
|
|
2198
2225
|
// ../core/src/queries/activity.ts
|
|
@@ -17213,11 +17240,16 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17213
17240
|
app_get: exports_external.looseObject({
|
|
17214
17241
|
app: app2,
|
|
17215
17242
|
deployments: exports_external.array(jsonObject),
|
|
17243
|
+
configurationReadiness: jsonObject.nullable(),
|
|
17216
17244
|
resets: exports_external.array(jsonObject),
|
|
17217
17245
|
events: exports_external.array(jsonObject),
|
|
17218
17246
|
url: exports_external.string()
|
|
17219
17247
|
}),
|
|
17220
|
-
app_deployment_get: exports_external.looseObject({
|
|
17248
|
+
app_deployment_get: exports_external.looseObject({
|
|
17249
|
+
deployment,
|
|
17250
|
+
bundle: jsonObject,
|
|
17251
|
+
configurationReadiness: jsonObject
|
|
17252
|
+
}),
|
|
17221
17253
|
app_fetch: appInvocationResponse,
|
|
17222
17254
|
app_request: appInvocationResponse,
|
|
17223
17255
|
app_create: app2,
|
|
@@ -17329,7 +17361,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17329
17361
|
operation: exports_external.literal("clone"),
|
|
17330
17362
|
repository: exports_external.string(),
|
|
17331
17363
|
dir: exports_external.string(),
|
|
17332
|
-
credential: exports_external.
|
|
17364
|
+
credential: exports_external.literal("caller"),
|
|
17333
17365
|
branch: exports_external.string().optional(),
|
|
17334
17366
|
head: exports_external.string().optional(),
|
|
17335
17367
|
refs: exports_external.array(exports_external.string()).optional()
|
|
@@ -17363,7 +17395,7 @@ var MCP_OUTPUT_SCHEMAS = {
|
|
|
17363
17395
|
operation: exports_external.literal("push"),
|
|
17364
17396
|
repository: exports_external.string(),
|
|
17365
17397
|
dir: exports_external.string(),
|
|
17366
|
-
credential: exports_external.enum(["caller", "
|
|
17398
|
+
credential: exports_external.enum(["caller", "github-user"]),
|
|
17367
17399
|
branch: exports_external.string().optional(),
|
|
17368
17400
|
head: exports_external.string().optional(),
|
|
17369
17401
|
before: exports_external.string().optional(),
|
|
@@ -17623,6 +17655,33 @@ var ACTION_DEFINITIONS = [
|
|
|
17623
17655
|
toolset: "admin",
|
|
17624
17656
|
run: forward("github.set_repository_connection")
|
|
17625
17657
|
},
|
|
17658
|
+
{
|
|
17659
|
+
name: "github_identity",
|
|
17660
|
+
title: "Show your GitHub connection",
|
|
17661
|
+
description: "Show whether your own Arbor human profile has a connected GitHub identity, with the login and when the connection expires. Redacted by construction — it never returns a credential.",
|
|
17662
|
+
inputSchema: {},
|
|
17663
|
+
surfaces: ["cli"],
|
|
17664
|
+
toolset: "admin",
|
|
17665
|
+
run: forward("github.user_status")
|
|
17666
|
+
},
|
|
17667
|
+
{
|
|
17668
|
+
name: "github_connect_identity",
|
|
17669
|
+
title: "Connect your GitHub identity",
|
|
17670
|
+
description: "Mint the short-lived URL you open in a signed-in browser to connect your GitHub identity, so an Arbor Computer can push your commits as you. Human profiles only; the URL authorizes nothing by itself and expires in ten minutes.",
|
|
17671
|
+
inputSchema: {},
|
|
17672
|
+
surfaces: ["cli"],
|
|
17673
|
+
toolset: "admin",
|
|
17674
|
+
run: forward("github.user_connect")
|
|
17675
|
+
},
|
|
17676
|
+
{
|
|
17677
|
+
name: "github_disconnect_identity",
|
|
17678
|
+
title: "Disconnect your GitHub identity",
|
|
17679
|
+
description: "Disconnect your own GitHub identity from Arbor and erase the stored credential material; a Computer can no longer push as you until you connect again. The audit record of the connection is preserved.",
|
|
17680
|
+
inputSchema: {},
|
|
17681
|
+
surfaces: ["cli"],
|
|
17682
|
+
toolset: "admin",
|
|
17683
|
+
run: forward("github.user_disconnect")
|
|
17684
|
+
},
|
|
17626
17685
|
{
|
|
17627
17686
|
name: "recall",
|
|
17628
17687
|
title: "Recall existing knowledge",
|
|
@@ -17988,12 +18047,12 @@ var ACTION_DEFINITIONS = [
|
|
|
17988
18047
|
{
|
|
17989
18048
|
name: "computer_sync",
|
|
17990
18049
|
title: "Sync an allowed repository",
|
|
17991
|
-
description: "Fetch, fast-forward pull, or push the checked-out branch of a cloned recipe repository. OMIT githubToken to refresh a repository named in this computer's effective recipe with Arbor's own managed credential — Arbor rechecks the repository connection and mints a request-scoped one-repository read credential server-side, so a restored computer can reach current history with no token of yours. Managed refresh covers fetch and pull; push writes to GitHub
|
|
18050
|
+
description: "Fetch, fast-forward pull, or push the checked-out branch of a cloned recipe repository. OMIT githubToken to refresh a repository named in this computer's effective recipe with Arbor's own managed credential — Arbor rechecks the repository connection and mints a request-scoped one-repository read credential server-side, so a restored computer can reach current history with no token of yours. Managed refresh covers fetch and pull; push writes to GitHub, so omit githubToken there to push as the signed-in human's GitHub identity connected in Account Settings, or supply your just-in-time collaborator token as an override. The lightweight Computer fixes the allowlisted GitHub URL, never force-pushes or deletes refs, and neither stores nor returns either credential.",
|
|
17992
18051
|
inputSchema: {
|
|
17993
18052
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
17994
18053
|
repository: exports_external.string().describe("allowed owner/repository slug already cloned by computer_clone"),
|
|
17995
18054
|
operation: exports_external.enum(["fetch", "pull", "push"]).describe("network operation to perform"),
|
|
17996
|
-
githubToken: exports_external.string().min(1).optional().describe("short-lived collaborator GitHub token; omit for fetch/pull to use Arbor's managed
|
|
18055
|
+
githubToken: exports_external.string().min(1).optional().describe("short-lived collaborator GitHub token; omit for fetch/pull to use Arbor's managed read credential, or for push to use the signed-in human's connected GitHub identity"),
|
|
17997
18056
|
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; defaults to x-access-token")
|
|
17998
18057
|
},
|
|
17999
18058
|
surfaces: ["computer-cli"],
|
|
@@ -18031,12 +18090,12 @@ var ACTION_DEFINITIONS = [
|
|
|
18031
18090
|
{
|
|
18032
18091
|
name: "computer_push",
|
|
18033
18092
|
title: "Push an allowed repository",
|
|
18034
|
-
description: "Push the checked-out branch to its fixed allowlisted GitHub repository without force-pushing or deleting refs.
|
|
18093
|
+
description: "Push the checked-out branch to its fixed allowlisted GitHub repository without force-pushing or deleting refs. OMIT githubToken to use the signed-in human's GitHub connection from Account Settings; Arbor refreshes that GitHub App user credential server-side and never returns or persists it in the Computer. Supply githubToken only for an explicit caller credential override.",
|
|
18035
18094
|
inputSchema: {
|
|
18036
18095
|
computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
|
|
18037
18096
|
repository: exports_external.string().describe("allowed owner/repository slug already cloned"),
|
|
18038
|
-
githubToken: exports_external.string().min(1).describe("short-lived GitHub token
|
|
18039
|
-
githubUsername: exports_external.string().optional().describe("GitHub username;
|
|
18097
|
+
githubToken: exports_external.string().min(1).optional().describe("optional short-lived GitHub token override; omit to use your connected GitHub identity"),
|
|
18098
|
+
githubUsername: exports_external.string().optional().describe("GitHub username for a supplied githubToken; omit for your connected GitHub identity")
|
|
18040
18099
|
},
|
|
18041
18100
|
surfaces: ["computer-mcp"],
|
|
18042
18101
|
toolset: "loop",
|
|
@@ -19289,7 +19348,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19289
19348
|
{
|
|
19290
19349
|
name: "app_get",
|
|
19291
19350
|
title: "Read an App",
|
|
19292
|
-
description: "READ ONLY: Inspect one App's stable URL, active deployment, pending control intent, deployment history, health, and durable state generation. It cannot modify App state, deployment state, access, or durable SQLite; use its activeDeploymentId as app_activate's expectedActiveDeploymentId.",
|
|
19351
|
+
description: "READ ONLY: Inspect one App's stable URL, active deployment, pending control intent, deployment history, provider health, deployment-aware redacted configuration readiness for the active release, and durable state generation. It cannot modify App state, deployment state, access, or durable SQLite; use its activeDeploymentId as app_activate's expectedActiveDeploymentId.",
|
|
19293
19352
|
inputSchema: { appId: exports_external.string().describe("the App, app_…") },
|
|
19294
19353
|
surfaces: ["mcp", "cli"],
|
|
19295
19354
|
toolset: "apps",
|
|
@@ -19356,7 +19415,7 @@ var ACTION_DEFINITIONS = [
|
|
|
19356
19415
|
{
|
|
19357
19416
|
name: "app_deployment_get",
|
|
19358
19417
|
title: "Inspect an App deployment",
|
|
19359
|
-
description: "READ ONLY: Inspect one deployment's candidate, active, failed, or superseded state, source AppBundle, provider receipt, and redacted
|
|
19418
|
+
description: "READ ONLY: Inspect one deployment's candidate, active, failed, or superseded state, source AppBundle, provider receipt, redacted provider health result, and redacted configuration readiness against that bundle's declared runtime requirements. It cannot modify App state, deployment state, access, or durable SQLite.",
|
|
19360
19419
|
inputSchema: {
|
|
19361
19420
|
appId: exports_external.string().describe("owning App, app_…"),
|
|
19362
19421
|
deploymentId: exports_external.string().describe("deployment, dep_…")
|
package/package.json
CHANGED