@lambdacurry/arbor 0.12.6 → 0.12.8

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 (2) hide show
  1. package/dist/arbor.js +113 -0
  2. package/package.json +1 -1
package/dist/arbor.js CHANGED
@@ -1500,6 +1500,81 @@ var computerConfigs = sqliteTable("computer_configs", {
1500
1500
  topicIdx: index("computer_configs_topic_idx").on(t.topicId),
1501
1501
  threadIdx: index("computer_configs_thread_idx").on(t.threadId)
1502
1502
  }));
1503
+ var githubInstallations = sqliteTable("github_installations", {
1504
+ id: text("id").primaryKey(),
1505
+ orgId: text("org_id").notNull().references(() => orgs.id),
1506
+ githubInstallationId: text("github_installation_id").notNull(),
1507
+ githubAccountId: text("github_account_id").notNull(),
1508
+ accountLogin: text("account_login").notNull(),
1509
+ accountType: text("account_type").notNull(),
1510
+ repositorySelection: text("repository_selection").$type().notNull(),
1511
+ status: text("status").$type().notNull().default("active"),
1512
+ permissions: text("permissions", { mode: "json" }).$type().notNull().default({}),
1513
+ createdByProfileId: text("created_by_profile_id").notNull().references(() => profiles.id),
1514
+ updatedByProfileId: text("updated_by_profile_id").notNull().references(() => profiles.id),
1515
+ createdExecutionContextId: text("created_execution_context_id").notNull().references(() => executionContexts.id),
1516
+ updatedExecutionContextId: text("updated_execution_context_id").notNull().references(() => executionContexts.id),
1517
+ lastProviderDeliveryId: text("last_provider_delivery_id"),
1518
+ lastProviderSyncAt: ts("last_provider_sync_at"),
1519
+ createdAt: ts("created_at").notNull(),
1520
+ updatedAt: ts("updated_at").notNull()
1521
+ }, (t) => ({
1522
+ githubIdIdx: uniqueIndex("github_installations_github_id_idx").on(t.githubInstallationId),
1523
+ orgIdx: index("github_installations_org_idx").on(t.orgId, t.status)
1524
+ }));
1525
+ var githubRepositories = sqliteTable("github_repositories", {
1526
+ id: text("id").primaryKey(),
1527
+ installationId: text("installation_id").notNull().references(() => githubInstallations.id),
1528
+ githubRepositoryId: text("github_repository_id").notNull(),
1529
+ fullName: text("full_name").notNull(),
1530
+ fullNameKey: text("full_name_key").notNull(),
1531
+ ownerLogin: text("owner_login").notNull(),
1532
+ name: text("name").notNull(),
1533
+ private: integer("private", { mode: "boolean" }).notNull(),
1534
+ archived: integer("archived", { mode: "boolean" }).notNull().default(false),
1535
+ defaultBranch: text("default_branch"),
1536
+ status: text("status").$type().notNull().default("active"),
1537
+ createdAt: ts("created_at").notNull(),
1538
+ updatedAt: ts("updated_at").notNull()
1539
+ }, (t) => ({
1540
+ githubIdIdx: uniqueIndex("github_repositories_github_id_idx").on(t.installationId, t.githubRepositoryId),
1541
+ fullNameIdx: uniqueIndex("github_repositories_full_name_idx").on(t.installationId, t.fullNameKey),
1542
+ installationIdx: index("github_repositories_installation_idx").on(t.installationId, t.status)
1543
+ }));
1544
+ var githubRepositoryConnections = sqliteTable("github_repository_connections", {
1545
+ id: text("id").primaryKey(),
1546
+ repositoryId: text("repository_id").notNull().references(() => githubRepositories.id),
1547
+ scope: text("scope").$type().notNull(),
1548
+ scopeId: text("scope_id").notNull(),
1549
+ orgId: text("org_id").notNull().references(() => orgs.id),
1550
+ spaceId: text("space_id").references(() => spaces.id),
1551
+ topicId: text("topic_id").references(() => topics.id),
1552
+ threadId: text("thread_id").references(() => threads.id),
1553
+ status: text("status").$type().notNull().default("active"),
1554
+ createdByProfileId: text("created_by_profile_id").notNull().references(() => profiles.id),
1555
+ updatedByProfileId: text("updated_by_profile_id").notNull().references(() => profiles.id),
1556
+ createdExecutionContextId: text("created_execution_context_id").notNull().references(() => executionContexts.id),
1557
+ updatedExecutionContextId: text("updated_execution_context_id").notNull().references(() => executionContexts.id),
1558
+ createdAt: ts("created_at").notNull(),
1559
+ updatedAt: ts("updated_at").notNull()
1560
+ }, (t) => ({
1561
+ targetIdx: uniqueIndex("github_repository_connections_target_idx").on(t.repositoryId, t.scope, t.scopeId),
1562
+ orgIdx: index("github_repository_connections_org_idx").on(t.orgId, t.status),
1563
+ spaceIdx: index("github_repository_connections_space_idx").on(t.spaceId, t.status),
1564
+ topicIdx: index("github_repository_connections_topic_idx").on(t.topicId, t.status),
1565
+ threadIdx: index("github_repository_connections_thread_idx").on(t.threadId, t.status)
1566
+ }));
1567
+ var githubWebhookDeliveries = sqliteTable("github_webhook_deliveries", {
1568
+ id: text("id").primaryKey(),
1569
+ githubDeliveryId: text("github_delivery_id").notNull(),
1570
+ installationId: text("installation_id").notNull().references(() => githubInstallations.id),
1571
+ event: text("event").notNull(),
1572
+ action: text("action").notNull(),
1573
+ receivedAt: ts("received_at").notNull()
1574
+ }, (t) => ({
1575
+ deliveryIdx: uniqueIndex("github_webhook_deliveries_delivery_idx").on(t.githubDeliveryId),
1576
+ installationIdx: index("github_webhook_deliveries_installation_idx").on(t.installationId, t.receivedAt)
1577
+ }));
1503
1578
  var threadComputers = sqliteTable("thread_computers", {
1504
1579
  id: text("id").primaryKey(),
1505
1580
  threadId: text("thread_id").notNull().references(() => threads.id),
@@ -16296,6 +16371,29 @@ var PAGINATION_INPUT = {
16296
16371
  cursor: exports_external.string().optional().describe("opaque cursor from a prior response's nextCursor (use with --limit)")
16297
16372
  };
16298
16373
  var ACTIONS = [
16374
+ {
16375
+ name: "github_repositories",
16376
+ title: "List installed GitHub repositories",
16377
+ description: "List repositories projected from this organization's verified Arbor Computer GitHub App installation. This returns repository ids and metadata, never credentials; use the id with github_connect_repository.",
16378
+ inputSchema: { ...PAGINATION_INPUT },
16379
+ surfaces: ["cli"],
16380
+ toolset: "admin",
16381
+ run: forward("github.repositories")
16382
+ },
16383
+ {
16384
+ name: "github_connect_repository",
16385
+ title: "Connect a GitHub repository",
16386
+ description: "Connect or disconnect one installed GitHub repository at an Arbor organization, Space, Topic, or Thread. This explicit, recoverable connection is required before Arbor may use private repository context there; it does not grant an agent a Git credential.",
16387
+ inputSchema: {
16388
+ repositoryId: exports_external.string().describe("installed repository id from github_repositories, ghr_…"),
16389
+ scope: exports_external.enum(["organization", "space", "topic", "thread"]).describe("the Arbor scope that may use this repository's context"),
16390
+ scopeId: exports_external.string().describe("id matching the selected scope"),
16391
+ connected: exports_external.boolean().describe("true to connect; false to disconnect recoverably")
16392
+ },
16393
+ surfaces: ["cli"],
16394
+ toolset: "admin",
16395
+ run: forward("github.set_repository_connection")
16396
+ },
16299
16397
  {
16300
16398
  name: "recall",
16301
16399
  title: "Recall existing knowledge",
@@ -16644,6 +16742,21 @@ var ACTIONS = [
16644
16742
  toolset: "loop",
16645
16743
  run: forward("computer_runtime.clone")
16646
16744
  },
16745
+ {
16746
+ name: "computer_sync",
16747
+ title: "Sync an allowed repository",
16748
+ description: "Fetch, fast-forward pull, or push the checked-out branch of a cloned recipe repository using the working collaborator's GitHub token just in time. The lightweight Computer fixes the allowlisted GitHub URL, never force-pushes or deletes refs, and neither stores nor returns the token.",
16749
+ inputSchema: {
16750
+ computerSessionId: exports_external.string().describe("the computerSessionId returned by computer_open, cms_…"),
16751
+ repository: exports_external.string().describe("allowed owner/repository slug already cloned by computer_clone"),
16752
+ operation: exports_external.enum(["fetch", "pull", "push"]).describe("network operation to perform"),
16753
+ githubToken: exports_external.string().min(1).describe("short-lived GitHub token supplied by the caller"),
16754
+ githubUsername: exports_external.string().optional().describe("GitHub username; defaults to x-access-token")
16755
+ },
16756
+ surfaces: ["computer-mcp", "computer-cli"],
16757
+ toolset: "loop",
16758
+ run: forward("computer_runtime.sync")
16759
+ },
16647
16760
  {
16648
16761
  name: "computer_checkpoint",
16649
16762
  title: "Checkpoint completed work",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambdacurry/arbor",
3
- "version": "0.12.6",
3
+ "version": "0.12.8",
4
4
  "description": "The Arbor CLI — a shared workspace for people and agents. The human + headless-agent write path over Arbor's guarded operation surface.",
5
5
  "keywords": [
6
6
  "agents",