unfazed 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +323 -1
  2. package/dist/client.d.ts +1 -1
  3. package/dist/client.js +1 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/errors.d.ts +25 -0
  6. package/dist/errors.js +25 -0
  7. package/dist/errors.js.map +1 -1
  8. package/dist/generated/gql.d.ts +5 -1
  9. package/dist/generated/gql.js +2 -1
  10. package/dist/generated/gql.js.map +1 -1
  11. package/dist/generated/graphql.d.ts +107 -0
  12. package/dist/generated/graphql.js +101 -0
  13. package/dist/generated/graphql.js.map +1 -1
  14. package/dist/index.d.ts +21 -0
  15. package/dist/index.js +22 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/operations.d.ts +3 -0
  18. package/dist/operations.js +23 -0
  19. package/dist/operations.js.map +1 -1
  20. package/dist/remote/app.d.ts +18 -0
  21. package/dist/remote/app.js +76 -0
  22. package/dist/remote/app.js.map +1 -0
  23. package/dist/remote/documents.d.ts +175 -0
  24. package/dist/remote/documents.js +122 -0
  25. package/dist/remote/documents.js.map +1 -0
  26. package/dist/remote/values.d.ts +67 -0
  27. package/dist/remote/values.js +156 -0
  28. package/dist/remote/values.js.map +1 -0
  29. package/dist/remote/world.d.ts +50 -0
  30. package/dist/remote/world.js +612 -0
  31. package/dist/remote/world.js.map +1 -0
  32. package/dist/unfazed.d.ts +37 -1
  33. package/dist/unfazed.js +13 -1
  34. package/dist/unfazed.js.map +1 -1
  35. package/dist/workflow/config.d.ts +23 -0
  36. package/dist/workflow/config.js +48 -0
  37. package/dist/workflow/config.js.map +1 -0
  38. package/dist/workflow/errors.d.ts +33 -0
  39. package/dist/workflow/errors.js +16 -0
  40. package/dist/workflow/errors.js.map +1 -0
  41. package/dist/workflow/index.d.ts +30 -0
  42. package/dist/workflow/index.js +23 -0
  43. package/dist/workflow/index.js.map +1 -0
  44. package/dist/workflow/inspect-render.d.ts +93 -0
  45. package/dist/workflow/inspect-render.js +302 -0
  46. package/dist/workflow/inspect-render.js.map +1 -0
  47. package/dist/workflow/inspect.d.ts +52 -0
  48. package/dist/workflow/inspect.js +879 -0
  49. package/dist/workflow/inspect.js.map +1 -0
  50. package/dist/workflow/migration-files.d.ts +13 -0
  51. package/dist/workflow/migration-files.js +52 -0
  52. package/dist/workflow/migration-files.js.map +1 -0
  53. package/dist/workflow/migration-types.d.ts +19 -0
  54. package/dist/workflow/migration-types.js +8 -0
  55. package/dist/workflow/migration-types.js.map +1 -0
  56. package/dist/workflow/migrations.d.ts +12 -0
  57. package/dist/workflow/migrations.generated.d.ts +2 -0
  58. package/dist/workflow/migrations.generated.js +34 -0
  59. package/dist/workflow/migrations.generated.js.map +1 -0
  60. package/dist/workflow/migrations.js +94 -0
  61. package/dist/workflow/migrations.js.map +1 -0
  62. package/dist/workflow/nitro-flow-guard.d.ts +4 -0
  63. package/dist/workflow/nitro-flow-guard.js +19 -0
  64. package/dist/workflow/nitro-flow-guard.js.map +1 -0
  65. package/dist/workflow/nitro-inspect.d.ts +3 -0
  66. package/dist/workflow/nitro-inspect.js +19 -0
  67. package/dist/workflow/nitro-inspect.js.map +1 -0
  68. package/dist/workflow/nitro-plugin.d.ts +1 -0
  69. package/dist/workflow/nitro-plugin.js +13 -0
  70. package/dist/workflow/nitro-plugin.js.map +1 -0
  71. package/dist/workflow/nitro.d.ts +70 -0
  72. package/dist/workflow/nitro.js +213 -0
  73. package/dist/workflow/nitro.js.map +1 -0
  74. package/dist/workflow/public-url.d.ts +27 -0
  75. package/dist/workflow/public-url.js +45 -0
  76. package/dist/workflow/public-url.js.map +1 -0
  77. package/dist/workflow/queue.d.ts +128 -0
  78. package/dist/workflow/queue.js +375 -0
  79. package/dist/workflow/queue.js.map +1 -0
  80. package/dist/workflow/state.d.ts +25 -0
  81. package/dist/workflow/state.js +15 -0
  82. package/dist/workflow/state.js.map +1 -0
  83. package/dist/workflow/transport.d.ts +12 -0
  84. package/dist/workflow/transport.js +29 -0
  85. package/dist/workflow/transport.js.map +1 -0
  86. package/dist/workflow/world.d.ts +123 -0
  87. package/dist/workflow/world.js +375 -0
  88. package/dist/workflow/world.js.map +1 -0
  89. package/package.json +66 -5
  90. package/schema/SOURCE.json +4 -4
  91. package/schema/schema.graphqls +36 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unfazed",
3
- "version": "0.4.0",
4
- "description": "Official TypeScript SDK for unfazed. The code-mode companion to the unfazed MCP server: deploy, wait, tail logs and roll back from one script.",
3
+ "version": "0.6.0",
4
+ "description": "Official TypeScript SDK for unfazed. The code-mode companion to the unfazed MCP server: deploy, wait, tail logs and roll back from one script. Also ships the unfazed World for Workflow SDK (unfazed/workflow).",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -13,6 +13,16 @@
13
13
  "import": "./dist/index.js",
14
14
  "default": "./dist/index.js"
15
15
  },
16
+ "./workflow": {
17
+ "types": "./dist/workflow/index.d.ts",
18
+ "import": "./dist/workflow/index.js",
19
+ "default": "./dist/workflow/index.js"
20
+ },
21
+ "./workflow/nitro": {
22
+ "types": "./dist/workflow/nitro.d.ts",
23
+ "import": "./dist/workflow/nitro.js",
24
+ "default": "./dist/workflow/nitro.js"
25
+ },
16
26
  "./package.json": "./package.json"
17
27
  },
18
28
  "files": [
@@ -36,7 +46,10 @@
36
46
  "agents",
37
47
  "code-mode",
38
48
  "mcp",
39
- "bun"
49
+ "bun",
50
+ "workflow",
51
+ "workflow-sdk",
52
+ "durable"
40
53
  ],
41
54
  "repository": {
42
55
  "type": "git",
@@ -53,17 +66,65 @@
53
66
  "scripts": {
54
67
  "sync-schema": "bun run scripts/sync-schema.ts",
55
68
  "codegen": "graphql-codegen --config codegen.ts && bun run scripts/postcodegen.ts",
69
+ "embed-migrations": "bun run scripts/embed-migrations.ts",
56
70
  "typecheck": "tsc --noEmit",
57
71
  "build": "rm -rf dist && tsc -p tsconfig.build.json",
58
72
  "test": "bun test",
59
73
  "smoke": "bun test/smoke-dist.mjs && node test/smoke-dist.mjs",
60
- "check": "bun run typecheck && bun test && bun run build && bun run smoke"
74
+ "check": "bun run typecheck && bun run embed-migrations -- --check && bun test && bun run build && bun run smoke",
75
+ "test:conformance": "bun run build && vitest run --config vitest.config.ts",
76
+ "test:example": "bun run test/workflow/example-e2e.ts",
77
+ "test:cli": "bun --no-install test/remote/cli-e2e.ts"
78
+ },
79
+ "peerDependencies": {
80
+ "@workflow/core": "^5.2.0",
81
+ "@workflow/world": "^5.0.4",
82
+ "@workflow/world-postgres": "^5.0.4",
83
+ "drizzle-orm": ">=0.45.2",
84
+ "nitro": ">=3.0.260610-beta",
85
+ "pg": "^8.20.0",
86
+ "workflow": "^5.2.0"
87
+ },
88
+ "peerDependenciesMeta": {
89
+ "@workflow/core": {
90
+ "optional": true
91
+ },
92
+ "@workflow/world": {
93
+ "optional": true
94
+ },
95
+ "@workflow/world-postgres": {
96
+ "optional": true
97
+ },
98
+ "drizzle-orm": {
99
+ "optional": true
100
+ },
101
+ "nitro": {
102
+ "optional": true
103
+ },
104
+ "pg": {
105
+ "optional": true
106
+ },
107
+ "workflow": {
108
+ "optional": true
109
+ }
61
110
  },
62
111
  "devDependencies": {
63
112
  "@graphql-codegen/cli": "^7.1.2",
64
113
  "@graphql-codegen/client-preset": "^6.0.1",
65
114
  "@types/bun": "^1.3.9",
115
+ "@types/node": "^22.20.5",
116
+ "@types/pg": "8.20.0",
117
+ "@workflow/core": "5.2.2",
118
+ "@workflow/utils": "5.0.2",
119
+ "@workflow/world": "5.0.4",
120
+ "@workflow/world-postgres": "5.0.4",
121
+ "@workflow/world-testing": "5.0.5",
122
+ "drizzle-orm": "0.45.2",
66
123
  "graphql": "^16.14.2",
67
- "typescript": "^6.0.3"
124
+ "nitro": "3.0.260903-beta",
125
+ "pg": "8.20.0",
126
+ "typescript": "^6.0.3",
127
+ "vitest": "4.1.10",
128
+ "workflow": "5.2.2"
68
129
  }
69
130
  }
@@ -2,8 +2,8 @@
2
2
  "$comment": "Provenance for the vendored copy of graph/schema.graphqls. Written by scripts/sync-schema.ts — do not edit by hand.",
3
3
  "repo": "unfazed",
4
4
  "path": "graph/schema.graphqls",
5
- "unfazedCommit": "f2a8063f7c8a7a27b7210e9e348ed8ab0ad1226e",
6
- "schemaLastChangedCommit": "f2a8063f7c8a7a27b7210e9e348ed8ab0ad1226e",
7
- "sha256": "44dfe7da060d38a9b7d770a3d0f6972727499fb482a0981b04e7ac7e1c2ad9a5",
8
- "syncedAt": "2026-08-29"
5
+ "unfazedCommit": "7d2bcdf73a31f4942290199182c61a345d56cdcd",
6
+ "schemaLastChangedCommit": "08893f008624e157d60492ca102875b30923d873",
7
+ "sha256": "859b52125e1a0743cf82dabb97d886a41f33fcacabbd999fdbf496d2326e15f1",
8
+ "syncedAt": "2026-08-30"
9
9
  }
@@ -769,6 +769,12 @@ type Run {
769
769
  approval: String!
770
770
  "How the harness is asked to work: empty (do the task) or plan (write a plan only)."
771
771
  mode: String!
772
+ "read-only (the default: read-only integration credentials, read tools only, no deploy) or read-write."
773
+ access: String!
774
+ "The app whose integrations the run received (empty when the workspace has no app)."
775
+ alias: String
776
+ "What each bound integration contributed: its credentials (env), MCP servers and skills."
777
+ integrations: [RunIntegration!]!
772
778
  "The run this one continues (a follow-up), if any."
773
779
  parentRunID: ID
774
780
  "Length of the follow-up chain; 0 for a root run."
@@ -794,6 +800,30 @@ type Run {
794
800
  settledAt: String
795
801
  }
796
802
 
803
+ "One bound integration's contribution to a run. env is the credential set injected: empty (none), read-only or read-write."
804
+ type RunIntegration {
805
+ kind: String!
806
+ bindingID: ID!
807
+ env: String!
808
+ mcpServers: [RunMCPServer!]!
809
+ skills: [String!]!
810
+ }
811
+
812
+ "An MCP server a run received: proxied http (the platform filters its tools) or stdio launched in the VM; readOnly says only read tools are callable."
813
+ type RunMCPServer {
814
+ name: String!
815
+ transport: String!
816
+ readOnly: Boolean!
817
+ }
818
+
819
+ "One harness preset of the box image: name (what createRun takes), a title and summary for people, and the env names (workspace secrets) it requires."
820
+ type RunHarness {
821
+ name: String!
822
+ title: String!
823
+ summary: String
824
+ requires: [String!]!
825
+ }
826
+
797
827
  "How the harness said it finished: status success|error, detail in the harness's words, text its final message (bounded)."
798
828
  type RunResult {
799
829
  status: String!
@@ -942,6 +972,8 @@ type Query {
942
972
  deploymentReleases(alias: String!): [Deployment!]!
943
973
  deploymentEvents(deploymentID: ID!, limit: Int): [DeploymentEvent!]!
944
974
  deploymentEventsPage(input: ListDeploymentEventsInput!): DeploymentEventPage!
975
+ "The harness presets a run may name: what each is and which workspace secrets it needs. Empty when this node's box image carries no catalogue."
976
+ runHarnesses: [RunHarness!]!
945
977
  "One agent run visible to the caller; not-found otherwise."
946
978
  run(id: ID!): Run!
947
979
  "The caller's agent runs, newest first."
@@ -1428,6 +1460,10 @@ input CreateRunInput {
1428
1460
  approval: String
1429
1461
  "\"plan\" asks the harness to write a plan without acting; empty does the task."
1430
1462
  mode: String
1463
+ "read-only (default) or read-write: which integration credentials and tools the run gets and whether its platform token may deploy."
1464
+ access: String
1465
+ "The app whose integrations the run gets; required when the workspace has several apps."
1466
+ alias: String
1431
1467
  "The run this one continues; usually set through followUpRun."
1432
1468
  parentRunID: ID
1433
1469
  memoryMiB: Int