openpond-sdk 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +54 -0
  2. package/dist/actions-local.js +15184 -0
  3. package/dist/actions-local.js.map +7 -0
  4. package/dist/actions.js +14615 -0
  5. package/dist/actions.js.map +7 -0
  6. package/dist/index.js +682 -965
  7. package/dist/index.js.map +3 -3
  8. package/dist/project-actions.js +247 -0
  9. package/dist/project-actions.js.map +7 -0
  10. package/dist/types/packages/actions/src/build.d.ts +9 -0
  11. package/dist/types/packages/actions/src/build.d.ts.map +1 -0
  12. package/dist/types/packages/actions/src/catalog.d.ts +4 -0
  13. package/dist/types/packages/actions/src/catalog.d.ts.map +1 -0
  14. package/dist/types/packages/actions/src/configuration.d.ts +20 -0
  15. package/dist/types/packages/actions/src/configuration.d.ts.map +1 -0
  16. package/dist/types/packages/actions/src/define-action.d.ts +4 -0
  17. package/dist/types/packages/actions/src/define-action.d.ts.map +1 -0
  18. package/dist/types/packages/actions/src/discovery.d.ts +9 -0
  19. package/dist/types/packages/actions/src/discovery.d.ts.map +1 -0
  20. package/dist/types/packages/actions/src/hash.d.ts +3 -0
  21. package/dist/types/packages/actions/src/hash.d.ts.map +1 -0
  22. package/dist/types/packages/actions/src/index.d.ts +4 -0
  23. package/dist/types/packages/actions/src/index.d.ts.map +1 -0
  24. package/dist/types/packages/actions/src/local.d.ts +6 -0
  25. package/dist/types/packages/actions/src/local.d.ts.map +1 -0
  26. package/dist/types/packages/actions/src/schema.d.ts +4 -0
  27. package/dist/types/packages/actions/src/schema.d.ts.map +1 -0
  28. package/dist/types/packages/actions/src/setup.d.ts +4 -0
  29. package/dist/types/packages/actions/src/setup.d.ts.map +1 -0
  30. package/dist/types/packages/actions/src/types.d.ts +161 -0
  31. package/dist/types/packages/actions/src/types.d.ts.map +1 -0
  32. package/dist/types/packages/sdk/src/actions-local.d.ts +3 -0
  33. package/dist/types/packages/sdk/src/actions-local.d.ts.map +1 -0
  34. package/dist/types/packages/sdk/src/actions.d.ts +3 -0
  35. package/dist/types/packages/sdk/src/actions.d.ts.map +1 -0
  36. package/dist/types/packages/sdk/src/index.d.ts +10 -6
  37. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  38. package/dist/types/packages/sdk/src/project-actions.d.ts +66 -0
  39. package/dist/types/packages/sdk/src/project-actions.d.ts.map +1 -0
  40. package/dist/types/packages/sdk/src/work.d.ts +2 -2
  41. package/dist/types/packages/sdk/src/work.d.ts.map +1 -1
  42. package/package.json +24 -1
package/README.md CHANGED
@@ -96,6 +96,60 @@ console.log(result.command.output);
96
96
 
97
97
  The package also exports `createOpenPondSandboxClient`, all public sandbox input and response types, and the OpChat helpers used by the Work loop.
98
98
 
99
+ ## Project Actions
100
+
101
+ Project Actions expose typed business functions from a normal Git Project to local OpenPond Work. The website and action wrapper can import the same neutral domain module, so the harness does not duplicate application logic.
102
+
103
+ ```ts
104
+ // openpond/actions/analytics.ts
105
+ import { defineAction } from "openpond-sdk/actions";
106
+ import { z } from "zod";
107
+
108
+ import { getAnalyticsSummary } from "../../packages/domain/analytics.js";
109
+
110
+ export const getAnalytics = defineAction("analytics.get_summary", {
111
+ description: "Get the current operating summary.",
112
+ input: z.object({ businessId: z.string() }),
113
+ output: z.object({ activeMoves: z.number(), bookedRevenueUsd: z.number() }),
114
+ run(context, input) {
115
+ context.trace("analytics.loaded", { businessId: input.businessId });
116
+ return getAnalyticsSummary(input.businessId);
117
+ },
118
+ });
119
+ ```
120
+
121
+ The local-only runner does not require an OpenPond API key:
122
+
123
+ ```ts
124
+ import { createLocalActionRunner } from "openpond-sdk/actions/local";
125
+
126
+ const runner = createLocalActionRunner({ projectRoot: process.cwd() });
127
+ const result = await runner.run({
128
+ actionId: "analytics.get_summary",
129
+ input: { businessId: "relocation" },
130
+ });
131
+ ```
132
+
133
+ The default source directory is `openpond/actions`; generated files live in `.openpond/actions`. Override either path and map explicit runtime setup with `openpond/project-actions.json`:
134
+
135
+ ```json
136
+ {
137
+ "sourceDirectory": "src/actions",
138
+ "outputDirectory": ".openpond/project-actions",
139
+ "environment": {
140
+ "apiToken": "CUSTOMER_API_TOKEN"
141
+ },
142
+ "connections": {
143
+ "analytics-db": {
144
+ "values": { "provider": "postgres" },
145
+ "environment": { "url": "CUSTOMER_DATABASE_URL" }
146
+ }
147
+ }
148
+ }
149
+ ```
150
+
151
+ Only declared values are forwarded into the child process. Use `context.env(name)` and `context.connection(name)` inside an action. Output files must be written inside `context.outputDirectory` and registered with `context.output(...)`.
152
+
99
153
  ## Lifecycle, persistence, and cleanup
100
154
 
101
155
  The generic SDK defaults to `cleanup: "keep"` for backwards compatibility. Applications can choose one of three explicit terminal policies: