create-relkit 0.0.4 → 0.1.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 (52) hide show
  1. package/dist/generate-files.d.ts.map +1 -1
  2. package/dist/generate-files.js +8 -1
  3. package/dist/generate-files.js.map +1 -1
  4. package/dist/generate.js +1 -1
  5. package/dist/generate.js.map +1 -1
  6. package/dist/templates/default/README.md +1 -1
  7. package/dist/templates/default/v1/agent/package.json +4 -4
  8. package/dist/templates/default/v1/agent/relkit.config.ts +1 -1
  9. package/dist/templates/default/v1/agent/src/{agents → hello/agents}/assistant.agent.ts +10 -3
  10. package/dist/templates/default/v1/agent/src/hello/functions/ask-assistant.function.ts +16 -0
  11. package/dist/templates/default/v1/agent/src/{functions → hello/functions}/hello.function.ts +4 -8
  12. package/dist/templates/default/v1/agent/src/hello/service.ts +4 -0
  13. package/dist/templates/default/v1/agent/src/hello/tools/lookup.tool.ts +10 -0
  14. package/dist/templates/default/v1/agent/src/routes/hello/route.ts +2 -3
  15. package/dist/templates/default/v1/agent/tests/fixtures/lookup.tool.ts +12 -0
  16. package/dist/templates/default/v1/agent/tests/fixtures/mcp-options.ts +26 -0
  17. package/dist/templates/default/v1/agent/tests/unit/assistant.agent.test.ts +20 -6
  18. package/dist/templates/default/v1/agent/tests/unit/hello.function.test.ts +1 -1
  19. package/dist/templates/default/v1/agent/tests/unit/lookup.tool.test.ts +20 -0
  20. package/dist/templates/default/v1/api/package.json +5 -5
  21. package/dist/templates/default/v1/api/relkit.config.ts +1 -1
  22. package/dist/templates/default/v1/api/src/echo/service.ts +4 -0
  23. package/dist/templates/default/v1/api/src/hello/service.ts +4 -0
  24. package/dist/templates/default/v1/api/src/{events → orders/events}/order-created.event.ts +4 -1
  25. package/dist/templates/default/v1/api/src/{functions/orders → orders/functions}/create-order.function.ts +15 -5
  26. package/dist/templates/default/v1/api/src/orders/functions/order-audit.function.ts +15 -0
  27. package/dist/templates/default/v1/api/src/orders/functions/order-confirmation.function.ts +15 -0
  28. package/dist/templates/default/v1/api/src/orders/service.ts +9 -0
  29. package/dist/templates/default/v1/api/src/routes/echo/route.ts +2 -2
  30. package/dist/templates/default/v1/api/src/routes/hello/route.ts +2 -2
  31. package/dist/templates/default/v1/api/src/routes/orders/route.ts +4 -7
  32. package/dist/templates/default/v1/api/tests/integration/order-events.test.ts +9 -17
  33. package/dist/templates/default/v1/api/tests/integration/orders.route.test.ts +1 -1
  34. package/dist/templates/default/v1/api/tests/unit/echo.function.test.ts +1 -1
  35. package/dist/templates/default/v1/api/tests/unit/hello.function.test.ts +1 -1
  36. package/dist/templates/default/v1/api/tests/unit/orders.function.test.ts +5 -3
  37. package/dist/templates/default/v1/minimal/package.json +4 -4
  38. package/dist/templates/default/v1/minimal/relkit.config.ts +1 -1
  39. package/dist/templates/default/v1/minimal/src/{functions → hello/functions}/hello.function.ts +1 -1
  40. package/dist/templates/default/v1/minimal/src/hello/service.ts +4 -0
  41. package/dist/templates/default/v1/minimal/src/routes/hello/route.ts +2 -3
  42. package/dist/templates/default/v1/minimal/tests/unit/hello.function.test.ts +1 -1
  43. package/package.json +2 -2
  44. package/dist/templates/default/v1/api/src/events/order-audit.event.ts +0 -15
  45. package/dist/templates/default/v1/api/src/events/order-confirmation.event.ts +0 -11
  46. package/dist/templates/default/v1/api/src/services/orders.service.ts +0 -7
  47. /package/dist/templates/default/v1/agent/src/{env.ts → platform/env.ts} +0 -0
  48. /package/dist/templates/default/v1/api/src/{functions → echo/functions}/echo.function.ts +0 -0
  49. /package/dist/templates/default/v1/api/src/{functions → hello/functions}/hello.function.ts +0 -0
  50. /package/dist/templates/default/v1/api/src/{functions/orders → orders/functions}/price-order.function.ts +0 -0
  51. /package/dist/templates/default/v1/api/src/{env.ts → platform/env.ts} +0 -0
  52. /package/dist/templates/default/v1/minimal/src/{env.ts → platform/env.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"generate-files.d.ts","sourceRoot":"","sources":["../src/generate-files.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F;AAED,6FAA6F;AAC7F,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9C"}
1
+ {"version":3,"file":"generate-files.d.ts","sourceRoot":"","sources":["../src/generate-files.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F;AAED,6FAA6F;AAC7F,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9C"}
@@ -79,7 +79,14 @@ export async function replaceOnce(path, before, after) {
79
79
  await chmod(path, FILE_MODE);
80
80
  }
81
81
  export async function removeExamples(root) {
82
- for (const directory of ["src/functions", "src/routes", "src/tools", "src/agents", "tests"])
82
+ for (const directory of [
83
+ "src/routes",
84
+ "src/orders",
85
+ "src/echo",
86
+ "src/hello/tools",
87
+ "src/hello/agents",
88
+ "tests",
89
+ ])
83
90
  await rm(join(root, directory), { recursive: true, force: true });
84
91
  }
85
92
  export async function listProjectFiles(root, current = root) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-files.js","sourceRoot":"","sources":["../src/generate-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-files.js","sourceRoot":"","sources":["../src/generate-files.ts"],"names":[],"mappings":"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"}
package/dist/generate.js CHANGED
@@ -45,7 +45,7 @@ export async function generateProject(options, context = {}) {
45
45
  await requireFiles(staged, [
46
46
  "package.json",
47
47
  "relkit.config.ts",
48
- "src/env.ts",
48
+ "src/platform/env.ts",
49
49
  ".env.example",
50
50
  ".gitignore",
51
51
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,6 @@ scaffolder:
8
8
  - `agent` — the minimal example plus a read-only tool and agent descriptor.
9
9
 
10
10
  Each variant is self-contained and can be copied as a project root. It uses
11
- the current checked-in RelKit package version (`0.0.4`), Bun `1.3.10`, and
11
+ the current checked-in RelKit package version (`0.1.0`), Bun `1.3.10`, and
12
12
  TypeScript `5.9.3`. The generator owns project-name substitution and later
13
13
  installation/Git behavior.
@@ -17,13 +17,13 @@
17
17
  "deploy": "relkit deploy up"
18
18
  },
19
19
  "dependencies": {
20
- "@relkit/app": "0.0.4",
21
- "@relkit/providers-standard": "0.0.4"
20
+ "@relkit/app": "0.1.0",
21
+ "@relkit/providers-standard": "0.1.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/bun": "1.3.10",
25
- "@relkit/cli": "0.0.4",
26
- "@relkit/testing": "0.0.4",
25
+ "@relkit/cli": "0.1.0",
26
+ "@relkit/testing": "0.1.0",
27
27
  "typescript": "5.9.3"
28
28
  }
29
29
  }
@@ -1,5 +1,5 @@
1
1
  import { aiSdk, defineConfig, external } from "@relkit/app/config";
2
- import env from "@app/env.js";
2
+ import env from "@app/platform/env.js";
3
3
 
4
4
  export default defineConfig({
5
5
  env,
@@ -1,13 +1,20 @@
1
1
  import { defineAgent } from "@relkit/app/agents";
2
2
  import { z } from "@relkit/app/schema";
3
- import { lookup } from "@app/functions/hello.function.js";
3
+ import lookup from "@app/hello/tools/lookup.tool.js";
4
4
 
5
5
  export default defineAgent({
6
- id: "assistant",
6
+ id: "hello.assistant",
7
+
7
8
  input: z.object({ question: z.string().min(1) }),
8
9
  output: z.object({ answer: z.string() }),
10
+
9
11
  model: "openai:gpt-5-mini",
10
12
  instructions: "Answer greeting questions with the read-only lookup tool.",
11
13
  tools: [lookup],
12
- limits: { maxSteps: 4, maxToolCalls: 4, timeoutMs: 10_000 },
14
+
15
+ limits: {
16
+ maxSteps: 4,
17
+ maxToolCalls: 4,
18
+ timeoutMs: 10_000,
19
+ },
13
20
  });
@@ -0,0 +1,16 @@
1
+ import { defineFunction } from "@relkit/app/functions";
2
+ import { z } from "@relkit/app/schema";
3
+ import assistant from "@app/hello/agents/assistant.agent.js";
4
+
5
+ export default defineFunction({
6
+ id: "hello.ask-assistant",
7
+
8
+ input: z.object({ question: z.string().min(1) }),
9
+ output: z.object({ answer: z.string() }),
10
+
11
+ dependencies: { agents: { assistant } },
12
+
13
+ handler: async (input, context) => {
14
+ return context.agents.assistant(input);
15
+ },
16
+ });
@@ -2,20 +2,16 @@ import { defineFunction } from "@relkit/app/functions";
2
2
  import { z } from "@relkit/app/schema";
3
3
 
4
4
  const hello = defineFunction({
5
- id: "hello",
5
+ id: "hello.greet",
6
+
6
7
  input: z.object({ name: z.string().min(1).default("world") }),
7
8
  output: z.object({ message: z.string() }),
9
+
8
10
  handler: async ({ name }, context) => {
9
11
  context.log.info("hello invoked", { name });
12
+
10
13
  return { message: `Hello, ${name}!` };
11
14
  },
12
15
  });
13
16
 
14
- export const lookup = hello.asTool({
15
- id: "hello.lookup",
16
- description: "Read a greeting for a supplied name",
17
- sideEffect: "read",
18
- approval: "never",
19
- });
20
-
21
17
  export default hello;
@@ -0,0 +1,4 @@
1
+ import { defineService } from "@relkit/app/services";
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+
4
+ export default defineService({ functions: { hello } });
@@ -0,0 +1,10 @@
1
+ import hello from "@app/hello/functions/hello.function.js";
2
+
3
+ export default hello.asTool({
4
+ id: "hello.lookup",
5
+ description: "Read a greeting for a supplied name",
6
+
7
+ sideEffect: "read",
8
+ approval: "never",
9
+ timeoutMs: 2_000,
10
+ });
@@ -1,7 +1,6 @@
1
1
  import { defineRoute } from "@relkit/app/routes";
2
- import hello from "@app/functions/hello.function.js";
2
+ import hello from "@app/hello/service.js";
3
3
 
4
4
  export const GET = defineRoute({
5
- id: "hello.http",
6
- target: hello,
5
+ target: hello.hello,
7
6
  });
@@ -0,0 +1,12 @@
1
+ import { defineTool } from "@relkit/app/tools";
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+
4
+ export default defineTool({
5
+ id: "hello.lookup",
6
+ target: hello,
7
+ description: "Read a greeting for a supplied name",
8
+
9
+ sideEffect: "read",
10
+ approval: "never",
11
+ timeoutMs: 2_000,
12
+ });
@@ -0,0 +1,26 @@
1
+ // #region private-tool
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+
4
+ export const privateLookup = hello.asTool({
5
+ id: "hello.private-lookup",
6
+ description: "Read a greeting inside this app only",
7
+
8
+ sideEffect: "read",
9
+ approval: "never",
10
+ timeoutMs: 2_000,
11
+ mcp: false,
12
+ });
13
+ // #endregion private-tool
14
+
15
+ import { defineConfig } from "@relkit/app/config";
16
+ import env from "@app/platform/env.js";
17
+
18
+ export const mcpDisabled = defineConfig({
19
+ env,
20
+ // #region disable-mcp
21
+ server: {
22
+ port: 3000,
23
+ mcp: false,
24
+ },
25
+ // #endregion disable-mcp
26
+ });
@@ -1,7 +1,9 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { createTestAgent, invokeFunction } from "@relkit/testing";
3
- import assistant from "@app/agents/assistant.agent.js";
4
- import hello, { lookup } from "@app/functions/hello.function.js";
3
+ import assistant from "@app/hello/agents/assistant.agent.js";
4
+ import askAssistant from "@app/hello/functions/ask-assistant.function.js";
5
+ import hello from "@app/hello/functions/hello.function.js";
6
+ import lookup from "@app/hello/tools/lookup.tool.js";
5
7
 
6
8
  test("assistant uses a function-derived tool with an offline AI SDK model", async () => {
7
9
  expect(assistant.model).toBe("openai:gpt-5-mini");
@@ -16,14 +18,26 @@ test("assistant uses a function-derived tool with an offline AI SDK model", asyn
16
18
  invokeFunction(hello, request.input as Parameters<typeof hello.invoke>[0]),
17
19
  },
18
20
  model: { provider: "openai", modelId: "gpt-5-mini" },
21
+ // Script the model's choices while running the real greeting function.
19
22
  script: [
20
- { type: "tool-call", callId: "call-1", toolId: "hello.lookup", input: { name: "Ada" } },
23
+ {
24
+ type: "tool-call",
25
+ callId: "call-1",
26
+ toolId: "hello.lookup",
27
+ input: { name: "Ada" },
28
+ },
21
29
  { type: "final", output: { answer: "Hello, Ada!" } },
22
30
  ],
23
31
  });
24
32
 
25
- await expect(agent.invoke({ question: "greet Ada" })).resolves.toEqual({
26
- answer: "Hello, Ada!",
27
- });
33
+ await expect(
34
+ invokeFunction(
35
+ askAssistant,
36
+ { question: "greet Ada" },
37
+ {
38
+ clients: { agents: { "hello.assistant": agent.invoke } },
39
+ },
40
+ ),
41
+ ).resolves.toEqual({ answer: "Hello, Ada!" });
28
42
  expect(agent.model.calls).toHaveLength(2);
29
43
  });
@@ -1,6 +1,6 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { invokeFunction } from "@relkit/testing";
3
- import hello from "@app/functions/hello.function.js";
3
+ import hello from "@app/hello/functions/hello.function.js";
4
4
 
5
5
  test("hello returns a greeting", async () => {
6
6
  await expect(invokeFunction(hello, { name: "Mustafa" })).resolves.toEqual({
@@ -0,0 +1,20 @@
1
+ import { expect, test } from "bun:test";
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+ import lookup from "../fixtures/lookup.tool.js";
4
+ import { mcpDisabled, privateLookup } from "../fixtures/mcp-options.js";
5
+
6
+ test("defineTool reuses the greeting function", async () => {
7
+ expect(lookup.target.ref).toEqual(hello.ref);
8
+ expect(lookup.mcp).toBe(true);
9
+ await expect(lookup.invoke({ name: "Ada" })).resolves.toEqual({
10
+ message: "Hello, Ada!",
11
+ });
12
+ });
13
+
14
+ test("MCP visibility can be disabled without disabling ordinary tool invocation", async () => {
15
+ expect(privateLookup.mcp).toBe(false);
16
+ expect(mcpDisabled.server?.mcp).toBe(false);
17
+ await expect(privateLookup.invoke({ name: "Ada" })).resolves.toEqual({
18
+ message: "Hello, Ada!",
19
+ });
20
+ });
@@ -17,14 +17,14 @@
17
17
  "deploy": "relkit deploy up"
18
18
  },
19
19
  "dependencies": {
20
- "@relkit/app": "0.0.4",
21
- "@relkit/providers-standard": "0.0.4"
20
+ "@relkit/app": "0.1.0",
21
+ "@relkit/providers-standard": "0.1.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/bun": "1.3.10",
25
- "@relkit/cli": "0.0.4",
26
- "@relkit/events": "0.0.4",
27
- "@relkit/testing": "0.0.4",
25
+ "@relkit/cli": "0.1.0",
26
+ "@relkit/events": "0.1.0",
27
+ "@relkit/testing": "0.1.0",
28
28
  "typescript": "5.9.3"
29
29
  }
30
30
  }
@@ -1,5 +1,5 @@
1
1
  import { defineConfig, eventBridge, managed } from "@relkit/app/config";
2
- import env from "@app/env.js";
2
+ import env from "@app/platform/env.js";
3
3
 
4
4
  export default defineConfig({
5
5
  env,
@@ -0,0 +1,4 @@
1
+ import { defineService } from "@relkit/app/services";
2
+ import echo from "@app/echo/functions/echo.function.js";
3
+
4
+ export default defineService({ functions: { echo } });
@@ -0,0 +1,4 @@
1
+ import { defineService } from "@relkit/app/services";
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+
4
+ export default defineService({ functions: { hello } });
@@ -4,11 +4,14 @@ import { z } from "@relkit/app/schema";
4
4
  const orderCreated = defineEvent({
5
5
  id: "orders.created",
6
6
  version: 1,
7
- payload: z.object({
7
+
8
+ // Data every subscriber receives when an order is created.
9
+ input: z.object({
8
10
  orderId: z.string().min(1),
9
11
  sku: z.string().min(1),
10
12
  totalCents: z.number().int().nonnegative(),
11
13
  }),
14
+
12
15
  title: "Order created",
13
16
  });
14
17
 
@@ -1,13 +1,13 @@
1
1
  import { defineFunction } from "@relkit/app/functions";
2
2
  import { z } from "@relkit/app/schema";
3
- import orderCreated from "@app/events/order-created.event.js";
4
- import priceOrder from "@app/functions/orders/price-order.function.js";
3
+ import priceOrder from "@app/orders/functions/price-order.function.js";
5
4
 
6
5
  const orderInput = z.object({
7
6
  orderId: z.string().min(1),
8
7
  sku: z.string().min(1),
9
8
  quantity: z.number().int().positive(),
10
9
  });
10
+
11
11
  const orderOutput = z.object({
12
12
  orderId: z.string(),
13
13
  sku: z.string(),
@@ -17,11 +17,21 @@ const orderOutput = z.object({
17
17
  const createOrder = defineFunction({
18
18
  input: orderInput,
19
19
  output: orderOutput,
20
- dependencies: { events: { orderCreated } },
20
+
21
+ // Events this function is allowed to publish.
22
+ publishes: ["orders.created"],
23
+
21
24
  handler: async (input, context) => {
22
25
  const { totalCents } = await priceOrder.invoke({ quantity: input.quantity });
23
- const order = { orderId: input.orderId, sku: input.sku, totalCents };
24
- await context.events.orderCreated.publish(order);
26
+ const order = {
27
+ orderId: input.orderId,
28
+ sku: input.sku,
29
+ totalCents,
30
+ };
31
+
32
+ // Let subscribers react to the new order.
33
+ await context.events["orders.created"].publish(order);
34
+
25
35
  return order;
26
36
  },
27
37
  });
@@ -0,0 +1,15 @@
1
+ import { defineEventFunction } from "@relkit/app/events";
2
+
3
+ const orderAudit = defineEventFunction({
4
+ id: "orders.audit",
5
+ event: "orders.created",
6
+ handler: async (payload, context) => {
7
+ context.log.info("order.audit.recorded", {
8
+ orderId: payload.orderId,
9
+ sku: payload.sku,
10
+ totalCents: payload.totalCents,
11
+ });
12
+ },
13
+ });
14
+
15
+ export default orderAudit;
@@ -0,0 +1,15 @@
1
+ import { defineEventFunction } from "@relkit/app/events";
2
+
3
+ const orderConfirmation = defineEventFunction({
4
+ id: "orders.confirmation",
5
+ event: "orders.created",
6
+
7
+ handler: async (payload, context) => {
8
+ // Replace this log with your email-sending code.
9
+ context.log.info("order.confirmation.requested", {
10
+ orderId: payload.orderId,
11
+ });
12
+ },
13
+ });
14
+
15
+ export default orderConfirmation;
@@ -0,0 +1,9 @@
1
+ import { defineService } from "@relkit/app/services";
2
+ import createOrder from "@app/orders/functions/create-order.function.js";
3
+ import priceOrder from "@app/orders/functions/price-order.function.js";
4
+ import orderCreated from "@app/orders/events/order-created.event.js";
5
+
6
+ export default defineService({
7
+ functions: { createOrder, priceOrder },
8
+ events: { orderCreated },
9
+ });
@@ -1,6 +1,6 @@
1
1
  import { defineRoute } from "@relkit/app/routes";
2
- import echo from "@app/functions/echo.function.js";
2
+ import echo from "@app/echo/service.js";
3
3
 
4
4
  export const POST = defineRoute({
5
- target: echo,
5
+ target: echo.echo,
6
6
  });
@@ -1,6 +1,6 @@
1
1
  import { defineRoute } from "@relkit/app/routes";
2
- import hello from "@app/functions/hello.function.js";
2
+ import hello from "@app/hello/service.js";
3
3
 
4
4
  export const GET = defineRoute({
5
- target: hello,
5
+ target: hello.hello,
6
6
  });
@@ -1,9 +1,6 @@
1
- import { defineRoute } from "@relkit/app/routes";
2
- import orders from "@app/services/orders.service.js";
1
+ import { defineServiceRoutes } from "@relkit/app/routes";
2
+ import orders from "@app/orders/service.js";
3
3
 
4
- export const POST = defineRoute({
5
- // Reuse the checked application function instead of duplicating HTTP logic.
6
- target: orders.createOrder,
7
- // Successful creates return the conventional HTTP 201 status.
8
- successStatus: 201,
4
+ export const { POST } = defineServiceRoutes(orders, {
5
+ POST: { member: "createOrder", successStatus: 201 },
9
6
  });
@@ -1,10 +1,10 @@
1
1
  import { expect, test } from "bun:test";
2
- import { createEventListenerTarget, eventListenerFunctionId } from "@relkit/app/events";
2
+ import { bindFunctionEvents } from "@relkit/app/events";
3
3
  import { createTestEvent, invokeFunction } from "@relkit/testing";
4
- import orderCreated from "@app/events/order-created.event.js";
5
- import orderAudit from "@app/events/order-audit.event.js";
6
- import orderConfirmation from "@app/events/order-confirmation.event.js";
7
- import orders from "@app/services/orders.service.js";
4
+ import orderCreated from "@app/orders/events/order-created.event.js";
5
+ import orderAudit from "@app/orders/functions/order-audit.function.js";
6
+ import orderConfirmation from "@app/orders/functions/order-confirmation.function.js";
7
+ import orders from "@app/orders/service.js";
8
8
 
9
9
  const retry = {
10
10
  maxAttempts: 1,
@@ -15,16 +15,8 @@ const retry = {
15
15
  };
16
16
 
17
17
  test("order.created fans out deterministic independent deliveries", async () => {
18
- const confirmationTarget = createEventListenerTarget(
19
- orderConfirmation,
20
- [orderCreated],
21
- eventListenerFunctionId(orderConfirmation.id),
22
- );
23
- const auditTarget = createEventListenerTarget(
24
- orderAudit,
25
- [orderCreated],
26
- eventListenerFunctionId(orderAudit.id),
27
- );
18
+ const confirmationTarget = orderConfirmation;
19
+ const auditTarget = orderAudit;
28
20
  const failingAuditTarget = {
29
21
  ...auditTarget,
30
22
  handler: async (...args: Parameters<typeof auditTarget.handler>) => {
@@ -43,9 +35,9 @@ test("order.created fans out deterministic independent deliveries", async () =>
43
35
  try {
44
36
  await expect(
45
37
  invokeFunction(
46
- orders.createOrder,
38
+ bindFunctionEvents(orders.createOrder, undefined, [orderCreated]),
47
39
  { orderId: "order-1", sku: "book", quantity: 3 },
48
- { clients: { events: { orderCreated: event.provider } } },
40
+ { clients: { events: { "orders.created": event.provider } } },
49
41
  ),
50
42
  ).resolves.toEqual({ orderId: "order-1", sku: "book", totalCents: 300 });
51
43
 
@@ -3,7 +3,7 @@ import { createTestApplication } from "@relkit/testing";
3
3
  import config from "../../relkit.config.js";
4
4
 
5
5
  const testApp = await createTestApplication(config);
6
- testApp.fakes.setClient("events", "orderCreated", {
6
+ testApp.fakes.setClient("events", "orders.created", {
7
7
  publish: async () => ({ accepted: true, instanceId: "event-1" }),
8
8
  });
9
9
 
@@ -1,6 +1,6 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { invokeFunction } from "@relkit/testing";
3
- import echo from "@app/functions/echo.function.js";
3
+ import echo from "@app/echo/functions/echo.function.js";
4
4
 
5
5
  test("echo returns its input", async () => {
6
6
  await expect(invokeFunction(echo, { message: "hello" })).resolves.toEqual({
@@ -1,6 +1,6 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { invokeFunction } from "@relkit/testing";
3
- import hello from "@app/functions/hello.function.js";
3
+ import hello from "@app/hello/functions/hello.function.js";
4
4
 
5
5
  test("hello returns a greeting", async () => {
6
6
  await expect(invokeFunction(hello, { name: "Mustafa" })).resolves.toEqual({
@@ -1,16 +1,18 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { invokeFunction } from "@relkit/testing";
3
- import orders from "@app/services/orders.service.js";
3
+ import orders from "@app/orders/service.js";
4
+ import { bindFunctionEvents } from "@relkit/app/events";
5
+ import orderCreated from "@app/orders/events/order-created.event.js";
4
6
 
5
7
  test("createOrder invokes pricing and publishes the order event", async () => {
6
8
  const published: unknown[] = [];
7
9
  const result = await invokeFunction(
8
- orders.createOrder,
10
+ bindFunctionEvents(orders.createOrder, undefined, [orderCreated]),
9
11
  { orderId: "order-1", sku: "book", quantity: 3 },
10
12
  {
11
13
  clients: {
12
14
  events: {
13
- orderCreated: {
15
+ "orders.created": {
14
16
  publish: async (payload: unknown) => {
15
17
  published.push(payload);
16
18
  return { accepted: true, instanceId: "event-1" };
@@ -17,13 +17,13 @@
17
17
  "deploy": "relkit deploy up"
18
18
  },
19
19
  "dependencies": {
20
- "@relkit/app": "0.0.4",
21
- "@relkit/providers-standard": "0.0.4"
20
+ "@relkit/app": "0.1.0",
21
+ "@relkit/providers-standard": "0.1.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/bun": "1.3.10",
25
- "@relkit/cli": "0.0.4",
26
- "@relkit/testing": "0.0.4",
25
+ "@relkit/cli": "0.1.0",
26
+ "@relkit/testing": "0.1.0",
27
27
  "typescript": "5.9.3"
28
28
  }
29
29
  }
@@ -1,5 +1,5 @@
1
1
  import { defineConfig } from "@relkit/app/config";
2
- import env from "@app/env.js";
2
+ import env from "@app/platform/env.js";
3
3
 
4
4
  export default defineConfig({
5
5
  env,
@@ -2,7 +2,7 @@ import { defineFunction } from "@relkit/app/functions";
2
2
  import { z } from "@relkit/app/schema";
3
3
 
4
4
  const hello = defineFunction({
5
- id: "hello",
5
+ id: "hello.greet",
6
6
  input: z.object({ name: z.string().min(1).default("world") }),
7
7
  output: z.object({ message: z.string() }),
8
8
  handler: async ({ name }, context) => {
@@ -0,0 +1,4 @@
1
+ import { defineService } from "@relkit/app/services";
2
+ import hello from "@app/hello/functions/hello.function.js";
3
+
4
+ export default defineService({ functions: { hello } });
@@ -1,7 +1,6 @@
1
1
  import { defineRoute } from "@relkit/app/routes";
2
- import hello from "@app/functions/hello.function.js";
2
+ import hello from "@app/hello/service.js";
3
3
 
4
4
  export const GET = defineRoute({
5
- id: "hello.http",
6
- target: hello,
5
+ target: hello.hello,
7
6
  });
@@ -1,6 +1,6 @@
1
1
  import { expect, test } from "bun:test";
2
2
  import { invokeFunction } from "@relkit/testing";
3
- import hello from "@app/functions/hello.function.js";
3
+ import hello from "@app/hello/functions/hello.function.js";
4
4
 
5
5
  test("hello returns a greeting", async () => {
6
6
  await expect(invokeFunction(hello, { name: "Mustafa" })).resolves.toEqual({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-relkit",
3
- "version": "0.0.4",
3
+ "version": "0.1.0",
4
4
  "description": "Create a RELKIT application from a supported project template.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,6 +34,6 @@
34
34
  "scripts": {
35
35
  "build": "tsc -b && bun ../../scripts/package-create-relkit-templates.ts",
36
36
  "check": "tsc -b --pretty false",
37
- "typecheck": "tsc -b --pretty false"
37
+ "typecheck": "tsc -b --pretty false && bun ../../scripts/package-create-relkit-templates.ts"
38
38
  }
39
39
  }
@@ -1,15 +0,0 @@
1
- import { onEvent } from "@relkit/app/events";
2
-
3
- const orderAudit = onEvent(
4
- "orders.created",
5
- async (payload, context) => {
6
- context.log.info("order.audit.recorded", {
7
- orderId: payload.orderId,
8
- sku: payload.sku,
9
- totalCents: payload.totalCents,
10
- });
11
- },
12
- { id: "orders.audit" },
13
- );
14
-
15
- export default orderAudit;
@@ -1,11 +0,0 @@
1
- import { onEvent } from "@relkit/app/events";
2
-
3
- const orderConfirmation = onEvent(
4
- "orders.created",
5
- async (payload, context) => {
6
- context.log.info("order.confirmation.requested", { orderId: payload.orderId });
7
- },
8
- { id: "orders.confirmation" },
9
- );
10
-
11
- export default orderConfirmation;
@@ -1,7 +0,0 @@
1
- import { defineService } from "@relkit/app/services";
2
- import createOrder from "@app/functions/orders/create-order.function.js";
3
- import priceOrder from "@app/functions/orders/price-order.function.js";
4
-
5
- const orders = defineService({ functions: { createOrder, priceOrder } });
6
-
7
- export default orders;