From ecc14a7caf035b73f93dd2eb0270308d3a80f75b Mon Sep 17 00:00:00 2001 From: Sawyer Date: Thu, 17 Sep 2026 10:16:47 -0700 Subject: [PATCH 1/2] Add publishable-workflows structural check CL-8157 makes every workflows/* and *-tools package individually publishable. Add check:publishable-workflows so a package that drops private: true regains it, or gains a workspace:*/private runtime dependency, fails CI instead of silently drifting. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG --- bun.lock | 216 +++++++++++++++--------- scripts/checks/publishable-workflows.ts | 132 +++++++++++++++ scripts/checks/test/run.test.ts | 1 + 3 files changed, 271 insertions(+), 78 deletions(-) create mode 100644 scripts/checks/publishable-workflows.ts diff --git a/bun.lock b/bun.lock index 1c31a35695..ffa7938ae1 100644 --- a/bun.lock +++ b/bun.lock @@ -262,14 +262,16 @@ "name": "@corbits/agent-directory-tools", "version": "0.0.6", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/agent-events": { "name": "@corbits/agent-events", @@ -416,27 +418,31 @@ "name": "@corbits/capability-tools", "version": "0.0.6", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/catalog-tools": { "name": "@corbits/catalog-tools", "version": "0.0.6", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/chat": { "name": "@corbits/chat", @@ -733,14 +739,16 @@ "name": "@corbits/github-tools", "version": "0.0.10", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/gotenberg-render": { "name": "@corbits/gotenberg-render", @@ -758,8 +766,6 @@ "name": "@corbits/granola-tools", "version": "0.0.4", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { @@ -771,6 +777,10 @@ "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/hub-api-client": { "name": "@corbits/hub-api-client", @@ -904,8 +914,6 @@ "name": "@corbits/linear-tools", "version": "0.0.4", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { @@ -917,6 +925,10 @@ "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/longevity-sim": { "name": "@corbits/longevity-sim", @@ -935,21 +947,21 @@ "name": "@corbits/manus-tools", "version": "0.0.11", "dependencies": { - "@intx/agent": "0.3.0", - "@intx/types": "0.3.0", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/mcp-tools": { "name": "@corbits/mcp-tools", "version": "0.0.11", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", "arktype": "catalog:", }, @@ -957,6 +969,10 @@ "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/memory-hub": { "name": "@corbits/memory-hub", @@ -977,14 +993,16 @@ "name": "@corbits/memory-tools", "version": "0.0.4", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/migration-runner": { "name": "@corbits/migration-runner", @@ -1147,14 +1165,16 @@ "name": "@corbits/reddit-tools", "version": "0.0.2", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/sandbox-sidecar": { "name": "@corbits/sandbox-sidecar", @@ -1242,14 +1262,16 @@ "name": "@corbits/skills-tools", "version": "0.0.7", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/slug": { "name": "@corbits/slug", @@ -1286,14 +1308,16 @@ "name": "@corbits/tools-skills", "version": "0.0.3", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/turn-artifacts": { "name": "@corbits/turn-artifacts", @@ -1318,14 +1342,16 @@ "name": "@corbits/web-search-tools", "version": "0.0.3", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/webhook-triggers": { "name": "@corbits/webhook-triggers", @@ -1356,14 +1382,16 @@ "name": "@corbits/workflow-authoring-tools", "version": "0.0.6", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + }, }, "packages/workflows": { "name": "@corbits/workflows", @@ -1687,10 +1715,7 @@ "name": "@corbits/assistant-workflow", "version": "0.0.2", "dependencies": { - "@corbits/catalog-tools": "workspace:*", - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", + "@corbits/catalog-tools": "0.0.6", }, "devDependencies": { "@corbits/agent-directory-tools": "workspace:*", @@ -1701,194 +1726,221 @@ "@workbench/templates": "workspace:*", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/attio-task-agent": { "name": "@corbits/attio-task-agent-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/code-review": { "name": "@corbits/code-review-workflow", "version": "0.0.1", "dependencies": { - "@corbits/code-review": "workspace:*", - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", + "@corbits/code-review": "0.0.1", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/collateral-generation": { "name": "@corbits/collateral-generation-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/diligence-brief": { "name": "@corbits/diligence-brief-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/echo": { "name": "@corbits/echo-workflow", "version": "0.0.1", - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", - }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/exa-topic-watch": { "name": "@corbits/exa-topic-watch-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/granola-call": { "name": "@corbits/granola-call-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/heartbeat": { "name": "@corbits/heartbeat-workflow", "version": "0.0.1", - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", - }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/last-30-days-research": { "name": "@corbits/last-30-days-research-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/morning-brief": { "name": "@corbits/morning-brief-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/pain-point-collateral": { "name": "@corbits/pain-point-collateral-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/process-granola-call": { "name": "@corbits/process-granola-call-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/reddit-opportunity-scanner": { "name": "@corbits/reddit-opportunity-scanner-workflow", "version": "0.0.1", "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:", }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, "workflows/workbench-digest": { "name": "@corbits/workbench-digest-workflow", "version": "0.0.1", - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", - }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:", }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0", + }, }, }, "trustedDependencies": [ @@ -3439,10 +3491,12 @@ "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@corbits/artifacts-hub/@corbits/artifacts": ["@corbits/artifacts@github:corbitsdev/corbits-artifacts#dc435ba", { "dependencies": { "@hono/standard-validator": "^0.2.3" }, "peerDependencies": { "@intx/hub-api": "^0.2.2", "@intx/types": "^0.2.2", "arktype": "^2.1.29", "drizzle-orm": "^0.45.2", "hono": "^4.12.32", "hono-openapi": "^1.2.0", "postgres": "^3.4.9" } }, "corbitsdev-corbits-artifacts-dc435ba", "sha512-VksIyrrJY9nRke0QyjgqGdW3gLD73Bi3+CzpJWG+l8vRJKdUxVi7ms2Mp95NmJXr4TpVX6i1z4odufX/QBxnSw=="], + "@corbits/inbox/@corbits/mailbox": ["@corbits/mailbox@github:corbitsdev/corbits-mailbox#118a2cd", { "dependencies": { "@hono/standard-validator": "0.2.3", "@standard-community/standard-json": "0.3.5", "@standard-community/standard-openapi": "0.2.9", "arktype": "2.1.29", "hono-openapi": "1.3.1" }, "peerDependencies": { "@intx/log": "^0.2.2", "@intx/mime": "^0.2.2", "@intx/types": "^0.2.2", "drizzle-orm": "^0.45.2", "hono": "^4.12.0", "postgres": "^3.4.0" } }, "corbitsdev-corbits-mailbox-118a2cd", "sha512-jVRl6/IH34JBPVUz7mqWyBm1w7uJxvYAI27gjw7zL1dFO4L+D0E5q/8b+mpwKMNOKKlGXU6UF5pdHnY8ilYx8g=="], "@corbits/mailbox/hono-openapi": ["hono-openapi@1.3.1", "", { "peerDependencies": { "@hono/standard-validator": "^0.2.0", "@standard-community/standard-json": "^0.3.5", "@standard-community/standard-openapi": "^0.2.9", "@types/json-schema": "^7.0.15", "hono": "^4.11.2", "openapi-types": "^12.1.3" }, "optionalPeers": ["@hono/standard-validator", "hono"] }, "sha512-NLVeVkhKZ3drmQNEIPac8HX8Y54uf1hJAgIM/7MfDsaeVVmB+QILWQxx5x3R3NvRHgedcbEbOCGY2uR7WQYyMw=="], + "@corbits/memory-hub/@corbits/memory": ["@corbits/memory@github:corbitsdev/corbits-memory#9e6f213", { "dependencies": { "@intx/agent": "0.2.2", "@intx/authz": "0.2.2", "@intx/hub-api": "0.2.2", "@intx/log": "0.2.2", "@intx/workflow": "0.2.2", "arktype": "^2.1.29", "drizzle-orm": "^0.45.1", "hono": "^4.9.0", "hono-openapi": "^1.3.1", "postgres": "^3.4.7" } }, "corbitsdev-corbits-memory-9e6f213", "sha512-utnM4ZT2zmslcPXYWAAqxlDNLcpGsXFiTOtj8h7+OXnhCP0Eaw8yl25+yCTyHpvt3jcdeG4h5uFsSj7ou0BZCA=="], + "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], @@ -3463,7 +3517,9 @@ "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.9", "", {}, "sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw=="], - "@workbench/hub/@corbits/artifacts": ["@corbits/artifacts@github:corbitsdev/corbits-artifacts#dc435ba", { "dependencies": { "@hono/standard-validator": "^0.2.3" }, "peerDependencies": { "@intx/hub-api": "^0.2.2", "@intx/types": "^0.2.2", "arktype": "^2.1.29", "drizzle-orm": "^0.45.2", "hono": "^4.12.32", "hono-openapi": "^1.2.0", "postgres": "^3.4.9" } }, "corbitsdev-corbits-artifacts-dc435ba", "sha512-VksIyrrJY9nRke0QyjgqGdW3gLD73Bi3+CzpJWG+l8vRJKdUxVi7ms2Mp95NmJXr4TpVX6i1z4odufX/QBxnSw=="], + "@workbench/hub/@corbits/mailbox": ["@corbits/mailbox@github:corbitsdev/corbits-mailbox#118a2cd", { "dependencies": { "@hono/standard-validator": "0.2.3", "@standard-community/standard-json": "0.3.5", "@standard-community/standard-openapi": "0.2.9", "arktype": "2.1.29", "hono-openapi": "1.3.1" }, "peerDependencies": { "@intx/log": "^0.2.2", "@intx/mime": "^0.2.2", "@intx/types": "^0.2.2", "drizzle-orm": "^0.45.2", "hono": "^4.12.0", "postgres": "^3.4.0" } }, "corbitsdev-corbits-mailbox-118a2cd", "sha512-jVRl6/IH34JBPVUz7mqWyBm1w7uJxvYAI27gjw7zL1dFO4L+D0E5q/8b+mpwKMNOKKlGXU6UF5pdHnY8ilYx8g=="], + + "@workbench/hub/@corbits/memory": ["@corbits/memory@github:corbitsdev/corbits-memory#9e6f213", { "dependencies": { "@intx/agent": "0.2.2", "@intx/authz": "0.2.2", "@intx/hub-api": "0.2.2", "@intx/log": "0.2.2", "@intx/workflow": "0.2.2", "arktype": "^2.1.29", "drizzle-orm": "^0.45.1", "hono": "^4.9.0", "hono-openapi": "^1.3.1", "postgres": "^3.4.7" } }, "corbitsdev-corbits-memory-9e6f213", "sha512-utnM4ZT2zmslcPXYWAAqxlDNLcpGsXFiTOtj8h7+OXnhCP0Eaw8yl25+yCTyHpvt3jcdeG4h5uFsSj7ou0BZCA=="], "@workbench/sidecar/@corbits/oauth-core": ["@corbits/oauth-core@github:corbitsdev/corbits-oauth-core#e1e69e6", { "dependencies": { "arktype": "2.2.3" } }, "corbitsdev-corbits-oauth-core-e1e69e6", "sha512-wUrD73iVyk/Dtb4yRn3hCh6N8syfsEvAkRz4XYqT0FIB3sYDSMYEWHcDMJx9nq64my/HBOeN1J6PHIOtpjhtPg=="], @@ -3515,6 +3571,8 @@ "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "@corbits/inbox/@corbits/mailbox/hono-openapi": ["hono-openapi@1.3.1", "", { "peerDependencies": { "@hono/standard-validator": "^0.2.0", "@standard-community/standard-json": "^0.3.5", "@standard-community/standard-openapi": "^0.2.9", "@types/json-schema": "^7.0.15", "hono": "^4.11.2", "openapi-types": "^12.1.3" }, "optionalPeers": ["@hono/standard-validator", "hono"] }, "sha512-NLVeVkhKZ3drmQNEIPac8HX8Y54uf1hJAgIM/7MfDsaeVVmB+QILWQxx5x3R3NvRHgedcbEbOCGY2uR7WQYyMw=="], + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], @@ -3561,6 +3619,8 @@ "@modelcontextprotocol/sdk/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "@workbench/hub/@corbits/mailbox/hono-openapi": ["hono-openapi@1.3.1", "", { "peerDependencies": { "@hono/standard-validator": "^0.2.0", "@standard-community/standard-json": "^0.3.5", "@standard-community/standard-openapi": "^0.2.9", "@types/json-schema": "^7.0.15", "hono": "^4.11.2", "openapi-types": "^12.1.3" }, "optionalPeers": ["@hono/standard-validator", "hono"] }, "sha512-NLVeVkhKZ3drmQNEIPac8HX8Y54uf1hJAgIM/7MfDsaeVVmB+QILWQxx5x3R3NvRHgedcbEbOCGY2uR7WQYyMw=="], + "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "minipass-flush/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], diff --git a/scripts/checks/publishable-workflows.ts b/scripts/checks/publishable-workflows.ts new file mode 100644 index 0000000000..3223142a73 --- /dev/null +++ b/scripts/checks/publishable-workflows.ts @@ -0,0 +1,132 @@ +// check:publishable-workflows — every workflows/* package and every +// packages/*-tools (or packages/tools-*) package must stay an +// individually publishable npm package: a standalone tarball with no +// dependency that only resolves inside this monorepo (CL-8157). +// +// A package opts out of this check entirely by staying `private: true` — +// that's the escape hatch for a package with a runtime dependency this +// repo cannot yet publish around (see the CL-8157 PR description for the +// current list). Once a package drops `private`, this check holds it to +// the full bar: it must declare `exports`, `files`, and `license`, and +// none of its runtime `dependencies` or `peerDependencies` may be a +// `workspace:*` range or point at a package that is itself still +// `private: true`. +import { readFileSync } from "node:fs"; +import path from "node:path"; +import { Glob } from "bun"; +import { type } from "arktype"; +import { + emptyReport, + reportAndExit, + rootFromArgs, + type CheckReport, +} from "./lib/repo"; + +const PackageJson = type({ + name: "string", + "private?": "boolean", + "license?": "string", + "exports?": "unknown", + "files?": "unknown", + "dependencies?": "Record", + "peerDependencies?": "Record", +}); +type PackageJson = typeof PackageJson.infer; + +const PUBLISHABLE_GLOBS = [ + "workflows/*/package.json", + "packages/*/package.json", +]; + +function isInScope(dir: string): boolean { + if (dir.startsWith("workflows/")) return true; + const base = path.basename(dir); + return base.endsWith("-tools") || base.startsWith("tools-"); +} + +interface Workspace { + readonly dir: string; + readonly packageJson: PackageJson; +} + +async function listWorkspaces(root: string): Promise { + const workspaces: Workspace[] = []; + for (const pattern of PUBLISHABLE_GLOBS) { + const glob = new Glob(pattern); + for await (const manifestPath of glob.scan(root)) { + const dir = path.dirname(manifestPath); + if (!isInScope(dir)) continue; + const raw = JSON.parse( + readFileSync(path.join(root, manifestPath), "utf8"), + ); + const parsed = PackageJson(raw); + if (parsed instanceof type.errors) { + throw new Error( + `${manifestPath}: invalid package.json — ${parsed.summary}`, + ); + } + workspaces.push({ dir, packageJson: parsed }); + } + } + return workspaces.sort((a, b) => a.dir.localeCompare(b.dir)); +} + +export function auditPublishableWorkflows( + workspaces: readonly Workspace[], +): CheckReport { + const report = emptyReport(); + const privateNames = new Set( + workspaces + .filter((w) => w.packageJson.private === true) + .map((w) => w.packageJson.name), + ); + + for (const { dir, packageJson } of workspaces) { + if (packageJson.private === true) continue; + + if (packageJson.license === undefined) { + report.violations.push(`${dir}/package.json: missing "license".`); + } + if (packageJson.exports === undefined) { + report.violations.push(`${dir}/package.json: missing "exports".`); + } + if (packageJson.files === undefined) { + report.violations.push(`${dir}/package.json: missing "files".`); + } + + for (const field of ["dependencies", "peerDependencies"] as const) { + const deps = packageJson[field]; + if (!deps) continue; + for (const [name, range] of Object.entries(deps)) { + if (range === "workspace:*" || range.startsWith("workspace:")) { + report.violations.push( + `${dir}/package.json: "${field}.${name}" is "${range}" — a ` + + `workspace: range never survives publish; pin a real version.`, + ); + continue; + } + if (privateNames.has(name)) { + report.violations.push( + `${dir}/package.json: "${field}.${name}" points at "${name}", ` + + `which is still "private: true" — a published tarball of ` + + `this package can never install it. Either publish "${name}" ` + + `too, or keep this package private until it can.`, + ); + } + } + } + } + return report; +} + +async function main(): Promise { + const root = rootFromArgs(Bun.argv.slice(2)); + const workspaces = await listWorkspaces(root); + const report = auditPublishableWorkflows(workspaces); + if (workspaces.length === 0) { + report.notes.push("no workflows/* or *-tools packages found."); + } + reportAndExit("check:publishable-workflows", report); +} + +if (import.meta.main) await main(); diff --git a/scripts/checks/test/run.test.ts b/scripts/checks/test/run.test.ts index e3c809d3f3..674159e775 100644 --- a/scripts/checks/test/run.test.ts +++ b/scripts/checks/test/run.test.ts @@ -22,6 +22,7 @@ const EXPECTED_CHECK_NAMES = [ "licenses", "no-product-tenancy", "packages", + "publishable-workflows", "react-ui-drift", "react-ui-pin", "report-error", From d4e77a9bc21935986f15b1bd79918997bd4d231d Mon Sep 17 00:00:00 2001 From: Sawyer Date: Thu, 17 Sep 2026 10:16:57 -0700 Subject: [PATCH 2/2] feat(workflows,tools): make every workflow and tools package publishable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every workflows/* package and every publishable packages/*-tools package drops private: true and gains a standalone-tarball shape: name/version already existed, exports/files/license/repository/publishConfig round it out, @intx/* moves from dependencies to peerDependencies pinned at the exact npm-published version (0.3.0, matching vendor/intx/*'s own manifests), and any @corbits/* runtime dependency is pinned to that package's own literal version instead of workspace:* (which never survives a publish). Workflows also gain interchange.workflow, the field the sidecar's registry-source loader reads to import the definition module. devDependencies keep workspace:*/catalog: — they're monorepo-only dev conveniences, never installed by a consumer of the published tarball. access-tools, connections-tools, and interaction-tools stay private: each has a runtime dependency (@corbits/error-sink or @corbits/connections) that is itself still private and out of this ticket's scope; publishing them would ship a tarball an installer can never satisfy. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG --- packages/agent-directory-tools/package.json | 20 +++++++++++--- packages/agent-directory-tools/tsconfig.json | 10 +------ .../agent-directory-tools/tsconfig.src.json | 10 +------ packages/capability-tools/package.json | 22 ++++++++++++--- packages/capability-tools/tsconfig.json | 10 +------ packages/capability-tools/tsconfig.src.json | 10 +------ packages/catalog-tools/package.json | 20 +++++++++++--- packages/catalog-tools/tsconfig.json | 10 +------ packages/catalog-tools/tsconfig.src.json | 10 +------ packages/github-tools/package.json | 26 +++++++++++++----- packages/github-tools/tsconfig.json | 10 +------ packages/github-tools/tsconfig.src.json | 10 +------ packages/granola-tools/package.json | 26 +++++++++++++----- packages/granola-tools/tsconfig.json | 10 +------ packages/granola-tools/tsconfig.src.json | 10 +------ packages/linear-tools/package.json | 26 +++++++++++++----- packages/linear-tools/tsconfig.json | 10 +------ packages/linear-tools/tsconfig.src.json | 10 +------ packages/manus-tools/package.json | 26 +++++++++++++----- packages/mcp-tools/package.json | 20 +++++++++++--- packages/mcp-tools/tsconfig.json | 10 +------ packages/mcp-tools/tsconfig.src.json | 10 +------ packages/memory-tools/package.json | 20 +++++++++++--- packages/memory-tools/tsconfig.json | 10 +------ packages/memory-tools/tsconfig.src.json | 10 +------ packages/reddit-tools/package.json | 26 +++++++++++++----- packages/reddit-tools/tsconfig.json | 10 +------ packages/reddit-tools/tsconfig.src.json | 10 +------ packages/skills-tools/package.json | 20 +++++++++++--- packages/skills-tools/tsconfig.json | 10 +------ packages/skills-tools/tsconfig.src.json | 10 +------ packages/tools-skills/package.json | 20 +++++++++++--- packages/tools-skills/tsconfig.json | 10 +------ packages/tools-skills/tsconfig.src.json | 10 +------ packages/web-search-tools/package.json | 26 +++++++++++++----- packages/web-search-tools/tsconfig.json | 10 +------ packages/web-search-tools/tsconfig.src.json | 10 +------ .../workflow-authoring-tools/package.json | 20 +++++++++++--- .../workflow-authoring-tools/tsconfig.json | 10 +------ .../tsconfig.src.json | 10 +------ workflows/assistant/README.md | 24 +++++++++++++++++ workflows/assistant/package.json | 27 +++++++++++++++---- workflows/assistant/tsconfig.json | 16 +---------- workflows/assistant/tsconfig.src.json | 16 +---------- workflows/attio-task-agent/README.md | 21 +++++++++++++++ workflows/attio-task-agent/package.json | 25 ++++++++++++++--- workflows/attio-task-agent/tsconfig.json | 13 +-------- workflows/attio-task-agent/tsconfig.src.json | 13 +-------- workflows/code-review/README.md | 21 +++++++++++++++ workflows/code-review/package.json | 27 +++++++++++++++---- workflows/code-review/tsconfig.json | 16 +---------- workflows/code-review/tsconfig.src.json | 16 +---------- workflows/collateral-generation/README.md | 21 +++++++++++++++ workflows/collateral-generation/package.json | 25 ++++++++++++++--- workflows/collateral-generation/tsconfig.json | 13 +-------- .../collateral-generation/tsconfig.src.json | 13 +-------- workflows/diligence-brief/README.md | 21 +++++++++++++++ workflows/diligence-brief/package.json | 25 ++++++++++++++--- workflows/diligence-brief/tsconfig.json | 13 +-------- workflows/diligence-brief/tsconfig.src.json | 13 +-------- workflows/echo/README.md | 24 +++++++++++++++++ workflows/echo/package.json | 23 +++++++++++++--- workflows/echo/tsconfig.json | 10 +------ workflows/echo/tsconfig.src.json | 10 +------ workflows/exa-topic-watch/README.md | 21 +++++++++++++++ workflows/exa-topic-watch/package.json | 25 ++++++++++++++--- workflows/exa-topic-watch/tsconfig.json | 13 +-------- workflows/exa-topic-watch/tsconfig.src.json | 13 +-------- workflows/granola-call/README.md | 21 +++++++++++++++ workflows/granola-call/package.json | 25 ++++++++++++++--- workflows/granola-call/tsconfig.json | 13 +-------- workflows/granola-call/tsconfig.src.json | 13 +-------- workflows/heartbeat/README.md | 21 +++++++++++++++ workflows/heartbeat/package.json | 23 +++++++++++++--- workflows/heartbeat/tsconfig.json | 10 +------ workflows/heartbeat/tsconfig.src.json | 10 +------ workflows/last-30-days-research/README.md | 21 +++++++++++++++ workflows/last-30-days-research/package.json | 23 +++++++++++++--- workflows/last-30-days-research/tsconfig.json | 10 +------ .../last-30-days-research/tsconfig.src.json | 10 +------ workflows/morning-brief/README.md | 21 +++++++++++++++ workflows/morning-brief/package.json | 25 ++++++++++++++--- workflows/morning-brief/tsconfig.json | 13 +-------- workflows/morning-brief/tsconfig.src.json | 13 +-------- workflows/pain-point-collateral/README.md | 21 +++++++++++++++ workflows/pain-point-collateral/package.json | 25 ++++++++++++++--- workflows/pain-point-collateral/tsconfig.json | 13 +-------- .../pain-point-collateral/tsconfig.src.json | 13 +-------- workflows/process-granola-call/README.md | 21 +++++++++++++++ workflows/process-granola-call/package.json | 25 ++++++++++++++--- workflows/process-granola-call/tsconfig.json | 13 +-------- .../process-granola-call/tsconfig.src.json | 13 +-------- .../reddit-opportunity-scanner/README.md | 21 +++++++++++++++ .../reddit-opportunity-scanner/package.json | 23 +++++++++++++--- .../reddit-opportunity-scanner/tsconfig.json | 10 +------ .../tsconfig.src.json | 10 +------ workflows/workbench-digest/README.md | 21 +++++++++++++++ workflows/workbench-digest/package.json | 23 +++++++++++++--- workflows/workbench-digest/tsconfig.json | 10 +------ workflows/workbench-digest/tsconfig.src.json | 10 +------ 100 files changed, 943 insertions(+), 697 deletions(-) create mode 100644 workflows/assistant/README.md create mode 100644 workflows/echo/README.md diff --git a/packages/agent-directory-tools/package.json b/packages/agent-directory-tools/package.json index a9ba5af2d5..2564368925 100644 --- a/packages/agent-directory-tools/package.json +++ b/packages/agent-directory-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/agent-directory-tools", - "private": true, "description": "Myra's manager tools: list_agents and create_agent as an @intx/agent tool bundle — creates a new specialist agent definition in the caller's own tenant and, by default, mints or reopens that specialist's own 1:1 chat. Creation is free; the reactor never parks the create/mint pair", "version": "0.0.6", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/agent-directory-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/agent-directory-tools/tsconfig.json b/packages/agent-directory-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/agent-directory-tools/tsconfig.json +++ b/packages/agent-directory-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/agent-directory-tools/tsconfig.src.json b/packages/agent-directory-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/agent-directory-tools/tsconfig.src.json +++ b/packages/agent-directory-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/capability-tools/package.json b/packages/capability-tools/package.json index 42bdeee057..89e5126b59 100644 --- a/packages/capability-tools/package.json +++ b/packages/capability-tools/package.json @@ -1,22 +1,36 @@ { "name": "@corbits/capability-tools", - "private": true, - "description": "The request_capability tool as an @intx/agent tool bundle (CL-6084): an agent asks in-chat for a tool package, skill, or model it doesn't have, gated behind Interchange's native per-invocation approval, and \u2014 once approved \u2014 calls the sanctioned workflow-run capabilities surface with the run's own bearer token, never a model-supplied identity", + "description": "The request_capability tool as an @intx/agent tool bundle (CL-6084): an agent asks in-chat for a tool package, skill, or model it doesn't have, gated behind Interchange's native per-invocation approval, and — once approved — calls the sanctioned workflow-run capabilities surface with the run's own bearer token, never a model-supplied identity", "version": "0.0.6", "license": "LGPL-2.1-or-later", "type": "module", "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/capability-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/capability-tools/tsconfig.json b/packages/capability-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/capability-tools/tsconfig.json +++ b/packages/capability-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/capability-tools/tsconfig.src.json b/packages/capability-tools/tsconfig.src.json index fcda83f444..d84257c8f8 100644 --- a/packages/capability-tools/tsconfig.src.json +++ b/packages/capability-tools/tsconfig.src.json @@ -9,13 +9,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/catalog-tools/package.json b/packages/catalog-tools/package.json index bc4c808558..2f99da5620 100644 --- a/packages/catalog-tools/package.json +++ b/packages/catalog-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/catalog-tools", - "private": true, "description": "The list_model_concepts, pick_models and estimate_run_cost tools as an @intx/agent bundle: an agent asks for a model by what the work needs and gets back an ordered, priced chain of what this bench can actually reach — never a model named by hand.", "version": "0.0.6", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/catalog-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/catalog-tools/tsconfig.json b/packages/catalog-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/catalog-tools/tsconfig.json +++ b/packages/catalog-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/catalog-tools/tsconfig.src.json b/packages/catalog-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/catalog-tools/tsconfig.src.json +++ b/packages/catalog-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/github-tools/package.json b/packages/github-tools/package.json index 5f5555761c..578e6dbd54 100644 --- a/packages/github-tools/package.json +++ b/packages/github-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/github-tools", - "private": true, "description": "GitHub search integration: a minimal REST client and an @intx/agent tool bundle exposing github_activity", "version": "0.0.10", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/github-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/github-tools/tsconfig.json b/packages/github-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/github-tools/tsconfig.json +++ b/packages/github-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/github-tools/tsconfig.src.json b/packages/github-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/github-tools/tsconfig.src.json +++ b/packages/github-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/granola-tools/package.json b/packages/granola-tools/package.json index d68c844bfd..d7f7d3f728 100644 --- a/packages/granola-tools/package.json +++ b/packages/granola-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/granola-tools", - "private": true, "description": "Granola integration: a minimal client and an @intx/agent tool bundle for listing a user's recent call notes", "version": "0.0.4", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/granola-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@corbits/credential-providers": "workspace:*", "@intx/authz": "0.3.0", diff --git a/packages/granola-tools/tsconfig.json b/packages/granola-tools/tsconfig.json index 47f02b5162..a8c2b9966d 100644 --- a/packages/granola-tools/tsconfig.json +++ b/packages/granola-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/granola-tools/tsconfig.src.json b/packages/granola-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/granola-tools/tsconfig.src.json +++ b/packages/granola-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/linear-tools/package.json b/packages/linear-tools/package.json index 001c1a65b5..1f2a2746a2 100644 --- a/packages/linear-tools/package.json +++ b/packages/linear-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/linear-tools", - "private": true, "description": "Linear integration: a minimal client and an @intx/agent tool bundle for listing a user's recently updated issues", "version": "0.0.4", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/linear-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@corbits/credential-providers": "workspace:*", "@intx/authz": "0.3.0", diff --git a/packages/linear-tools/tsconfig.json b/packages/linear-tools/tsconfig.json index 47f02b5162..a8c2b9966d 100644 --- a/packages/linear-tools/tsconfig.json +++ b/packages/linear-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/linear-tools/tsconfig.src.json b/packages/linear-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/linear-tools/tsconfig.src.json +++ b/packages/linear-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/manus-tools/package.json b/packages/manus-tools/package.json index 7da533d977..a91c721d8b 100644 --- a/packages/manus-tools/package.json +++ b/packages/manus-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/manus-tools", - "private": true, "description": "Manus integration: a v2 API client and an @intx/agent tool bundle for running tasks and retrieving files", "version": "0.0.11", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/manus-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "0.3.0", - "@intx/types": "0.3.0", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/mcp-tools/package.json b/packages/mcp-tools/package.json index 5168f64847..9fd066c7d3 100644 --- a/packages/mcp-tools/package.json +++ b/packages/mcp-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/mcp-tools", - "private": true, "description": "Generic MCP server integration: connect any Streamable HTTP MCP server through Plugins and its tools become reachable by any agent via mcp_list_servers/mcp_list_tools/mcp_call", "version": "0.0.11", "license": "LGPL-2.1-or-later", @@ -8,16 +7,31 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/mcp-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/mcp-tools/tsconfig.json b/packages/mcp-tools/tsconfig.json index 47f02b5162..a8c2b9966d 100644 --- a/packages/mcp-tools/tsconfig.json +++ b/packages/mcp-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/mcp-tools/tsconfig.src.json b/packages/mcp-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/mcp-tools/tsconfig.src.json +++ b/packages/mcp-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/memory-tools/package.json b/packages/memory-tools/package.json index 3336aab13d..066cc924dc 100644 --- a/packages/memory-tools/package.json +++ b/packages/memory-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/memory-tools", - "private": true, "description": "Firm-memory search/add/list as an @intx/agent tool bundle for workflow definitions: calls the sanctioned workflow-memory HTTP surface (@corbits/memory-hub) with the sidecar's own bearer token and the run's own address, never a database handle or model-supplied identity", "version": "0.0.4", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/memory-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/memory-tools/tsconfig.json b/packages/memory-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/memory-tools/tsconfig.json +++ b/packages/memory-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/memory-tools/tsconfig.src.json b/packages/memory-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/memory-tools/tsconfig.src.json +++ b/packages/memory-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/reddit-tools/package.json b/packages/reddit-tools/package.json index 430ab9b1c7..0bc7273ba2 100644 --- a/packages/reddit-tools/package.json +++ b/packages/reddit-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/reddit-tools", - "private": true, "description": "Reddit integration (via ScrapeCreators): a minimal client and an @intx/agent tool bundle for searching Reddit sitewide or within one subreddit", "version": "0.0.2", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/reddit-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/reddit-tools/tsconfig.json b/packages/reddit-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/reddit-tools/tsconfig.json +++ b/packages/reddit-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/reddit-tools/tsconfig.src.json b/packages/reddit-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/reddit-tools/tsconfig.src.json +++ b/packages/reddit-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/skills-tools/package.json b/packages/skills-tools/package.json index c4d70131d3..6d90eefbad 100644 --- a/packages/skills-tools/package.json +++ b/packages/skills-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/skills-tools", - "private": true, "description": "The list_skills/create_skill/update_skill/pin_skill @intx/agent tool bundle: Myra's in-chat way to capture repeatable know-how as a workbench skill and pin an existing one onto an agent definition, over @corbits/skills' asset store and @corbits/agent-directory's definition_skills store", "version": "0.0.7", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/skills-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/skills-tools/tsconfig.json b/packages/skills-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/skills-tools/tsconfig.json +++ b/packages/skills-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/skills-tools/tsconfig.src.json b/packages/skills-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/skills-tools/tsconfig.src.json +++ b/packages/skills-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/tools-skills/package.json b/packages/tools-skills/package.json index ef7a239dc2..b1c8384e5b 100644 --- a/packages/tools-skills/package.json +++ b/packages/tools-skills/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/tools-skills", - "private": true, "description": "skills_list / skills_search / skills_load as an @intx/agent tool bundle: calls the sanctioned workflow-skills HTTP surface (@corbits/skills) with the sidecar's own bearer token and the run's own address, and fails closed rather than returning an empty registry", "version": "0.0.3", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/tools-skills" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/tools-skills/tsconfig.json b/packages/tools-skills/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/tools-skills/tsconfig.json +++ b/packages/tools-skills/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/tools-skills/tsconfig.src.json b/packages/tools-skills/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/tools-skills/tsconfig.src.json +++ b/packages/tools-skills/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/web-search-tools/package.json b/packages/web-search-tools/package.json index 5815ce6778..bcaf0d4179 100644 --- a/packages/web-search-tools/package.json +++ b/packages/web-search-tools/package.json @@ -1,13 +1,9 @@ { "name": "@corbits/web-search-tools", - "private": true, "description": "Web search integration: a minimal Exa client and an @intx/agent tool bundle exposing web_search", "version": "0.0.3", "license": "LGPL-2.1-or-later", "type": "module", - "exports": { - ".": "./src/index.ts" - }, "interchange": { "credentials": [ { @@ -15,15 +11,33 @@ } ] }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/web-search-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/web-search-tools/tsconfig.json b/packages/web-search-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/web-search-tools/tsconfig.json +++ b/packages/web-search-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/web-search-tools/tsconfig.src.json b/packages/web-search-tools/tsconfig.src.json index 3959f6247b..fc8724305f 100644 --- a/packages/web-search-tools/tsconfig.src.json +++ b/packages/web-search-tools/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/packages/workflow-authoring-tools/package.json b/packages/workflow-authoring-tools/package.json index 66e5d66a0f..1f3c9de1c7 100644 --- a/packages/workflow-authoring-tools/package.json +++ b/packages/workflow-authoring-tools/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/workflow-authoring-tools", - "private": true, "description": "Myra's workflow-authoring tool bundle (workflow_author, workflow_republish, workflow_source_read, workflow_deploy_preview, workflow_deploy): an @intx/agent tool bundle calling @corbits/workflows's `./authoring`'s workflow-run-authenticated routes so an agent can write a workflow code package into a kind:\"workflow\" hub asset, read it back, preview a deploy's grant surface, and deploy it through Interchange's native source pipeline behind a human approval", "version": "0.0.6", "license": "LGPL-2.1-or-later", @@ -8,15 +7,30 @@ "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "packages/workflow-authoring-tools" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/packages/workflow-authoring-tools/tsconfig.json b/packages/workflow-authoring-tools/tsconfig.json index 0815303630..e125e90614 100644 --- a/packages/workflow-authoring-tools/tsconfig.json +++ b/packages/workflow-authoring-tools/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/packages/workflow-authoring-tools/tsconfig.src.json b/packages/workflow-authoring-tools/tsconfig.src.json index fcda83f444..d84257c8f8 100644 --- a/packages/workflow-authoring-tools/tsconfig.src.json +++ b/packages/workflow-authoring-tools/tsconfig.src.json @@ -9,13 +9,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - } - ] + } } diff --git a/workflows/assistant/README.md b/workflows/assistant/README.md new file mode 100644 index 0000000000..b57a92e6ad --- /dev/null +++ b/workflows/assistant/README.md @@ -0,0 +1,24 @@ +# @corbits/assistant-workflow + +Mail-triggered conversational workflow with a general-purpose assistant agent + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/assistant-workflow@0.0.2", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/assistant-workflow@0.0.2"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/assistant/package.json b/workflows/assistant/package.json index d0f0c23809..0394902d56 100644 --- a/workflows/assistant/package.json +++ b/workflows/assistant/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/assistant-workflow", - "private": true, "description": "Mail-triggered conversational workflow with a general-purpose assistant agent", "version": "0.0.2", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts", "./prompt": "./src/prompt.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/assistant" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@corbits/catalog-tools": "workspace:*", - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*" + "@corbits/catalog-tools": "0.0.6" + }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" }, "devDependencies": { "@corbits/agent-directory-tools": "workspace:*", diff --git a/workflows/assistant/tsconfig.json b/workflows/assistant/tsconfig.json index 68cf10d1a9..a8c2b9966d 100644 --- a/workflows/assistant/tsconfig.json +++ b/workflows/assistant/tsconfig.json @@ -11,19 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../packages/catalog-tools/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/assistant/tsconfig.src.json b/workflows/assistant/tsconfig.src.json index 954c998d0e..fc8724305f 100644 --- a/workflows/assistant/tsconfig.src.json +++ b/workflows/assistant/tsconfig.src.json @@ -8,19 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../packages/catalog-tools/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/attio-task-agent/README.md b/workflows/attio-task-agent/README.md index 98a0d5ff03..8974950b04 100644 --- a/workflows/attio-task-agent/README.md +++ b/workflows/attio-task-agent/README.md @@ -67,3 +67,24 @@ registration/automatable/seeded mean — this one is `automatable: false` (it starts from a specific task a person points at, and its write-back approval is a poor fit for unattended scheduling) and not seeded by default: it needs an Attio connection not every tenant has. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/attio-task-agent-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/attio-task-agent-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/attio-task-agent/package.json b/workflows/attio-task-agent/package.json index e9163be090..2400f88286 100644 --- a/workflows/attio-task-agent/package.json +++ b/workflows/attio-task-agent/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/attio-task-agent-workflow", - "private": true, "description": "Works one Attio task end to end: grounds itself in the CRM and past calls read-only, drafts what the task needs, and writes back to Attio only once a human approves", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/attio-task-agent" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/attio-task-agent/tsconfig.json b/workflows/attio-task-agent/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/attio-task-agent/tsconfig.json +++ b/workflows/attio-task-agent/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/attio-task-agent/tsconfig.src.json b/workflows/attio-task-agent/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/attio-task-agent/tsconfig.src.json +++ b/workflows/attio-task-agent/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/code-review/README.md b/workflows/code-review/README.md index bceac6096a..382a441c75 100644 --- a/workflows/code-review/README.md +++ b/workflows/code-review/README.md @@ -60,3 +60,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: false` (it runs on a pull-request event, not a schedule) and not seeded, since it needs a GitHub connection to be useful. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/code-review-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/code-review-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/code-review/package.json b/workflows/code-review/package.json index f5141b06c4..6f93a8e917 100644 --- a/workflows/code-review/package.json +++ b/workflows/code-review/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/code-review-workflow", - "private": true, "description": "Pull-request review workflow: three reviewer lenses over one diff, one review posted back", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,18 +11,36 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/code-review" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@corbits/code-review": "workspace:*", - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*" + "@corbits/code-review": "0.0.1" + }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" }, "devDependencies": { "@types/bun": "catalog:", diff --git a/workflows/code-review/tsconfig.json b/workflows/code-review/tsconfig.json index f80a56d3fa..a8c2b9966d 100644 --- a/workflows/code-review/tsconfig.json +++ b/workflows/code-review/tsconfig.json @@ -11,19 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../packages/code-review/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/code-review/tsconfig.src.json b/workflows/code-review/tsconfig.src.json index 5adf309e7b..fc8724305f 100644 --- a/workflows/code-review/tsconfig.src.json +++ b/workflows/code-review/tsconfig.src.json @@ -8,19 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../packages/code-review/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/collateral-generation/README.md b/workflows/collateral-generation/README.md index b648e07106..9c38ec19df 100644 --- a/workflows/collateral-generation/README.md +++ b/workflows/collateral-generation/README.md @@ -122,3 +122,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: false`, on-demand only, since its approval gate is a poor fit for unattended scheduling. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/collateral-generation-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/collateral-generation-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/collateral-generation/package.json b/workflows/collateral-generation/package.json index 6d4afa8122..408fd57b27 100644 --- a/workflows/collateral-generation/package.json +++ b/workflows/collateral-generation/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/collateral-generation-workflow", - "private": true, "description": "Drafts marketing collateral from one or more picked sources and content types, with a per-piece swipe review and one human approval on the final assembled set", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/collateral-generation" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/collateral-generation/tsconfig.json b/workflows/collateral-generation/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/collateral-generation/tsconfig.json +++ b/workflows/collateral-generation/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/collateral-generation/tsconfig.src.json b/workflows/collateral-generation/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/collateral-generation/tsconfig.src.json +++ b/workflows/collateral-generation/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/diligence-brief/README.md b/workflows/diligence-brief/README.md index 41b1fea048..67473bda8f 100644 --- a/workflows/diligence-brief/README.md +++ b/workflows/diligence-brief/README.md @@ -126,3 +126,24 @@ the trigger payload: - `company` (required) — the company the brief is about. - `focus` (optional) — narrows which angle to dig into (e.g. "go-to-market" or "founder track record"). + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/diligence-brief-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/diligence-brief-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/diligence-brief/package.json b/workflows/diligence-brief/package.json index c905dd636e..b915406e74 100644 --- a/workflows/diligence-brief/package.json +++ b/workflows/diligence-brief/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/diligence-brief-workflow", - "private": true, "description": "Single-step, mail-triggered workflow that researches a company and writes a cited diligence brief, held for approval", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/diligence-brief" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/diligence-brief/tsconfig.json b/workflows/diligence-brief/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/diligence-brief/tsconfig.json +++ b/workflows/diligence-brief/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/diligence-brief/tsconfig.src.json b/workflows/diligence-brief/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/diligence-brief/tsconfig.src.json +++ b/workflows/diligence-brief/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/echo/README.md b/workflows/echo/README.md new file mode 100644 index 0000000000..511756d846 --- /dev/null +++ b/workflows/echo/README.md @@ -0,0 +1,24 @@ +# @corbits/echo-workflow + +Minimal mail-triggered conversational workflow that echoes each inbound message back verbatim + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/echo-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/echo-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/echo/package.json b/workflows/echo/package.json index a65ddb6bc3..a699d74c9f 100644 --- a/workflows/echo/package.json +++ b/workflows/echo/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/echo-workflow", - "private": true, "description": "Minimal mail-triggered conversational workflow that echoes each inbound message back verbatim", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,16 +11,32 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/echo" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*" + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0" }, "devDependencies": { "@types/bun": "catalog:", diff --git a/workflows/echo/tsconfig.json b/workflows/echo/tsconfig.json index 14ae661c4a..a8c2b9966d 100644 --- a/workflows/echo/tsconfig.json +++ b/workflows/echo/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/echo/tsconfig.src.json b/workflows/echo/tsconfig.src.json index 86d18d8ae1..fc8724305f 100644 --- a/workflows/echo/tsconfig.src.json +++ b/workflows/echo/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/exa-topic-watch/README.md b/workflows/exa-topic-watch/README.md index ae0fd6d52f..209c7aaa21 100644 --- a/workflows/exa-topic-watch/README.md +++ b/workflows/exa-topic-watch/README.md @@ -55,3 +55,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: true` (it is built to run on a schedule) and not seeded by default: it needs an Exa connection not every tenant has. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/exa-topic-watch-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/exa-topic-watch-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/exa-topic-watch/package.json b/workflows/exa-topic-watch/package.json index a5a898d54a..59cc2373e6 100644 --- a/workflows/exa-topic-watch/package.json +++ b/workflows/exa-topic-watch/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/exa-topic-watch-workflow", - "private": true, "description": "Scheduled web topic watch: searches the live web for one topic each run and publishes a short digest, held for approval", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": true } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/exa-topic-watch" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/exa-topic-watch/tsconfig.json b/workflows/exa-topic-watch/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/exa-topic-watch/tsconfig.json +++ b/workflows/exa-topic-watch/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/exa-topic-watch/tsconfig.src.json b/workflows/exa-topic-watch/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/exa-topic-watch/tsconfig.src.json +++ b/workflows/exa-topic-watch/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/granola-call/README.md b/workflows/granola-call/README.md index 2912c34f03..57f0ef338c 100644 --- a/workflows/granola-call/README.md +++ b/workflows/granola-call/README.md @@ -101,3 +101,24 @@ const json = serializeGranolaCallWorkflow(definition); See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: true` but not seeded, since Granola isn't connected for every tenant. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/granola-call-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/granola-call-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/granola-call/package.json b/workflows/granola-call/package.json index 0ab269c6f7..20104c5a8d 100644 --- a/workflows/granola-call/package.json +++ b/workflows/granola-call/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/granola-call-workflow", - "private": true, "description": "Polls Granola for new calls and starts one call-notes run per call without a published call-notes artifact yet", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": true } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/granola-call" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/granola-call/tsconfig.json b/workflows/granola-call/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/granola-call/tsconfig.json +++ b/workflows/granola-call/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/granola-call/tsconfig.src.json b/workflows/granola-call/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/granola-call/tsconfig.src.json +++ b/workflows/granola-call/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/heartbeat/README.md b/workflows/heartbeat/README.md index 1befea1d7b..0870c97fe8 100644 --- a/workflows/heartbeat/README.md +++ b/workflows/heartbeat/README.md @@ -52,3 +52,24 @@ registration/automatable/seeded mean — this one is a `CATALOG_TEST_WORKFLOWS` entry, kept for tests only, never seeded and never deployed onto a real bench. `workbench-digest` is not seeded either; it is deployable through the catalog instantiate route (CL-7073). + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/heartbeat-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/heartbeat-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/heartbeat/package.json b/workflows/heartbeat/package.json index da330562a5..89de70d00d 100644 --- a/workflows/heartbeat/package.json +++ b/workflows/heartbeat/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/heartbeat-workflow", - "private": true, "description": "Minimal mail-triggered workflow that completes immediately, exercising Interchange's scheduling path at zero inference cost", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,16 +11,32 @@ "automatable": true } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/heartbeat" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*" + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0" }, "devDependencies": { "@types/bun": "catalog:", diff --git a/workflows/heartbeat/tsconfig.json b/workflows/heartbeat/tsconfig.json index 14ae661c4a..a8c2b9966d 100644 --- a/workflows/heartbeat/tsconfig.json +++ b/workflows/heartbeat/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/heartbeat/tsconfig.src.json b/workflows/heartbeat/tsconfig.src.json index 86d18d8ae1..fc8724305f 100644 --- a/workflows/heartbeat/tsconfig.src.json +++ b/workflows/heartbeat/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/last-30-days-research/README.md b/workflows/last-30-days-research/README.md index 239bb26222..838917a831 100644 --- a/workflows/last-30-days-research/README.md +++ b/workflows/last-30-days-research/README.md @@ -186,3 +186,24 @@ the intake signal payload, matching `@corbits/workflows`'s See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: false`, gated behind a human-supplied topic per run, and not seeded by default. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/last-30-days-research-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/last-30-days-research-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/last-30-days-research/package.json b/workflows/last-30-days-research/package.json index 3c594681b5..4169bb9010 100644 --- a/workflows/last-30-days-research/package.json +++ b/workflows/last-30-days-research/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/last-30-days-research-workflow", - "private": true, "description": "Single-step, mail-triggered workflow that researches a topic across a handful of source platforms and writes a long-form, cited report", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,18 +11,36 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/last-30-days-research" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/last-30-days-research/tsconfig.json b/workflows/last-30-days-research/tsconfig.json index 14ae661c4a..a8c2b9966d 100644 --- a/workflows/last-30-days-research/tsconfig.json +++ b/workflows/last-30-days-research/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/last-30-days-research/tsconfig.src.json b/workflows/last-30-days-research/tsconfig.src.json index 86d18d8ae1..fc8724305f 100644 --- a/workflows/last-30-days-research/tsconfig.src.json +++ b/workflows/last-30-days-research/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/morning-brief/README.md b/workflows/morning-brief/README.md index 07a7cb5788..7d6b61281b 100644 --- a/workflows/morning-brief/README.md +++ b/workflows/morning-brief/README.md @@ -145,3 +145,24 @@ registration/automatable/seeded mean — this one is `automatable: true` but not seeded, since it needs real Granola/Linear credentials to be useful. `workbench-digest` is not seeded either; both are deployable through the catalog instantiate route (CL-7073). + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/morning-brief-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/morning-brief-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/morning-brief/package.json b/workflows/morning-brief/package.json index d6d9c44e73..8b5ea22311 100644 --- a/workflows/morning-brief/package.json +++ b/workflows/morning-brief/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/morning-brief-workflow", - "private": true, "description": "Single-step, mail-triggered workflow that writes a daily brief from the sender's recent activity across connected sources", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": true } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/morning-brief" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/morning-brief/tsconfig.json b/workflows/morning-brief/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/morning-brief/tsconfig.json +++ b/workflows/morning-brief/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/morning-brief/tsconfig.src.json b/workflows/morning-brief/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/morning-brief/tsconfig.src.json +++ b/workflows/morning-brief/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/pain-point-collateral/README.md b/workflows/pain-point-collateral/README.md index 1c9f83f870..b15de9f90d 100644 --- a/workflows/pain-point-collateral/README.md +++ b/workflows/pain-point-collateral/README.md @@ -147,3 +147,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: false` for the same reason as `collateral-generation`: its approval gate is a poor fit for unattended scheduling. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/pain-point-collateral-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/pain-point-collateral-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/pain-point-collateral/package.json b/workflows/pain-point-collateral/package.json index b10b588140..9902e7239d 100644 --- a/workflows/pain-point-collateral/package.json +++ b/workflows/pain-point-collateral/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/pain-point-collateral-workflow", - "private": true, "description": "Turns one sales call transcript into one piece of targeted collateral, gated behind a single human approval before anything is finalized", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/pain-point-collateral" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/pain-point-collateral/tsconfig.json b/workflows/pain-point-collateral/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/pain-point-collateral/tsconfig.json +++ b/workflows/pain-point-collateral/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/pain-point-collateral/tsconfig.src.json b/workflows/pain-point-collateral/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/pain-point-collateral/tsconfig.src.json +++ b/workflows/pain-point-collateral/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/process-granola-call/README.md b/workflows/process-granola-call/README.md index b71daed731..76ba0754f5 100644 --- a/workflows/process-granola-call/README.md +++ b/workflows/process-granola-call/README.md @@ -85,3 +85,24 @@ needs more headroom than the catalog's shortest steps — size See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is spawned only by `granola-call`, so it's `automatable: false` and never seeded on its own. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/process-granola-call-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/process-granola-call-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/process-granola-call/package.json b/workflows/process-granola-call/package.json index 9647be16ea..c0318d7f02 100644 --- a/workflows/process-granola-call/package.json +++ b/workflows/process-granola-call/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/process-granola-call-workflow", - "private": true, "description": "Processes one Granola call end to end: raw transcript artifact, extracted working notes, then a verified, published call-notes artifact", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,19 +11,37 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/process-granola-call" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/types": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/types": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/process-granola-call/tsconfig.json b/workflows/process-granola-call/tsconfig.json index 1531608f77..a8c2b9966d 100644 --- a/workflows/process-granola-call/tsconfig.json +++ b/workflows/process-granola-call/tsconfig.json @@ -11,16 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/process-granola-call/tsconfig.src.json b/workflows/process-granola-call/tsconfig.src.json index 40c0f72680..fc8724305f 100644 --- a/workflows/process-granola-call/tsconfig.src.json +++ b/workflows/process-granola-call/tsconfig.src.json @@ -8,16 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/types/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/reddit-opportunity-scanner/README.md b/workflows/reddit-opportunity-scanner/README.md index f077df34d1..0872d99098 100644 --- a/workflows/reddit-opportunity-scanner/README.md +++ b/workflows/reddit-opportunity-scanner/README.md @@ -156,3 +156,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable: false` because its mid-run approval gate is a poor fit for unattended scheduling, per its original outcome checklist. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/reddit-opportunity-scanner-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/reddit-opportunity-scanner-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/reddit-opportunity-scanner/package.json b/workflows/reddit-opportunity-scanner/package.json index 01a0bee8d3..430c89326f 100644 --- a/workflows/reddit-opportunity-scanner/package.json +++ b/workflows/reddit-opportunity-scanner/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/reddit-opportunity-scanner-workflow", - "private": true, "description": "Turns one target website into a short list of scored Reddit opportunities, with a search-plan review and one human approval before anything is finalized", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,18 +11,36 @@ "automatable": false } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/reddit-opportunity-scanner" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*", "arktype": "catalog:" }, + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0" + }, "devDependencies": { "@types/bun": "catalog:", "typescript": "catalog:" diff --git a/workflows/reddit-opportunity-scanner/tsconfig.json b/workflows/reddit-opportunity-scanner/tsconfig.json index 14ae661c4a..a8c2b9966d 100644 --- a/workflows/reddit-opportunity-scanner/tsconfig.json +++ b/workflows/reddit-opportunity-scanner/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/reddit-opportunity-scanner/tsconfig.src.json b/workflows/reddit-opportunity-scanner/tsconfig.src.json index 86d18d8ae1..fc8724305f 100644 --- a/workflows/reddit-opportunity-scanner/tsconfig.src.json +++ b/workflows/reddit-opportunity-scanner/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } } diff --git a/workflows/workbench-digest/README.md b/workflows/workbench-digest/README.md index 66210b734a..5238f27f73 100644 --- a/workflows/workbench-digest/README.md +++ b/workflows/workbench-digest/README.md @@ -53,3 +53,24 @@ See [`workflows/README.md`](../README.md#status-note) for what registration/automatable/seeded mean — this one is `automatable`, and deployable through the catalog instantiate route (CL-7073) from `CATALOG_WORKFLOWS` (CL-7074), not seeded by default onto every tenant. + +## Deploy from the npm registry + +Once published, deploy this workflow definition to a tenant by name and +version pin: + +``` +POST /api/tenants/:id/workflows/deployments +{ + "source": { "kind": "registry", "registry": "npm" }, + "entry": "./src/index.ts", + "pin": "@corbits/workbench-digest-workflow@0.0.1", + "sourceOfferingIds": ["", ...], + "defaultSourceOfferingId": "" +} +``` + +`entry` is the package's `interchange.workflow` module path; `pin` is +`"@corbits/workbench-digest-workflow@0.0.1"` or a semver range on the same name. The hub +installs, probes, gates, and freezes the definition from the registry +tarball before creating the deployment. diff --git a/workflows/workbench-digest/package.json b/workflows/workbench-digest/package.json index 2138703156..af91f0feec 100644 --- a/workflows/workbench-digest/package.json +++ b/workflows/workbench-digest/package.json @@ -1,6 +1,5 @@ { "name": "@corbits/workbench-digest-workflow", - "private": true, "description": "Minimal schedule-triggered workflow that posts a deterministic summary line, exercising the workbench-mail path at zero inference cost", "version": "0.0.1", "license": "LGPL-2.1-or-later", @@ -12,16 +11,32 @@ "automatable": true } }, + "interchange": { + "workflow": "./src/index.ts" + }, "exports": { ".": "./src/index.ts" }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/corbitsdev/workbench.git", + "directory": "workflows/workbench-digest" + }, + "publishConfig": { + "access": "public" + }, "scripts": { "typecheck": "tsc --noEmit", "test": "bun test" }, - "dependencies": { - "@intx/agent": "workspace:*", - "@intx/workflow": "workspace:*" + "peerDependencies": { + "@intx/agent": "0.3.0", + "@intx/workflow": "0.3.0" }, "devDependencies": { "@types/bun": "catalog:", diff --git a/workflows/workbench-digest/tsconfig.json b/workflows/workbench-digest/tsconfig.json index 14ae661c4a..a8c2b9966d 100644 --- a/workflows/workbench-digest/tsconfig.json +++ b/workflows/workbench-digest/tsconfig.json @@ -11,13 +11,5 @@ "rootDir": "../.." }, "include": ["src", "test"], - "exclude": [], - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + "exclude": [] } diff --git a/workflows/workbench-digest/tsconfig.src.json b/workflows/workbench-digest/tsconfig.src.json index 86d18d8ae1..fc8724305f 100644 --- a/workflows/workbench-digest/tsconfig.src.json +++ b/workflows/workbench-digest/tsconfig.src.json @@ -8,13 +8,5 @@ "emitDeclarationOnly": true, "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" - }, - "references": [ - { - "path": "../../vendor/intx/agent/tsconfig.src.json" - }, - { - "path": "../../vendor/intx/workflow/tsconfig.src.json" - } - ] + } }