create-windy 0.2.16 → 0.2.18

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 (69) hide show
  1. package/README.md +4 -3
  2. package/dist/cli.js +71 -22
  3. package/package.json +1 -1
  4. package/template/.dockerignore +5 -0
  5. package/template/.windy-template.json +2 -2
  6. package/template/AGENTS.md +11 -1
  7. package/template/README.md +8 -5
  8. package/template/_gitignore +5 -0
  9. package/template/apps/server/Dockerfile +4 -5
  10. package/template/apps/server/src/index.ts +8 -14
  11. package/template/apps/server/src/settings/drizzle-watermark-repository.integration.test.ts +57 -0
  12. package/template/apps/server/src/settings/drizzle-watermark-repository.ts +62 -0
  13. package/template/apps/server/src/settings/runtime.ts +30 -3
  14. package/template/apps/server/src/settings/watermark-repository.ts +32 -0
  15. package/template/apps/server/src/settings/watermark-routes.test.ts +203 -0
  16. package/template/apps/server/src/settings/watermark-routes.ts +134 -0
  17. package/template/apps/web/Dockerfile +1 -2
  18. package/template/apps/web/runtime-server.test.ts +4 -4
  19. package/template/apps/web/src/composables/useWatermarkSettings.ts +75 -33
  20. package/template/apps/web/src/composables/useWatermarkSettings.webtest.ts +86 -0
  21. package/template/apps/web/src/composables/watermark-settings.ts +9 -35
  22. package/template/apps/web/src/composables/watermark-settings.webtest.ts +8 -32
  23. package/template/apps/web/src/layout/GlobalWatermark.layering.webtest.ts +81 -0
  24. package/template/apps/web/src/layout/GlobalWatermark.vue +34 -31
  25. package/template/apps/web/src/layout/GlobalWatermark.webtest.ts +58 -7
  26. package/template/apps/web/src/pages/settings/GlobalSettingsPage.vue +1 -1
  27. package/template/apps/web/src/pages/settings/WatermarkSettingsSection.vue +40 -18
  28. package/template/apps/web/src/services/platform-settings-api.ts +25 -2
  29. package/template/apps/web/vite.config.ts +3 -1
  30. package/template/docker-compose.yml +19 -6
  31. package/template/docs/platform/platform-shell-settings.md +24 -3
  32. package/template/docs/platform/web-system-crud.md +2 -2
  33. package/template/drizzle.config.ts +1 -1
  34. package/template/package.json +6 -2
  35. package/template/packages/ai-client/index.ts +1 -0
  36. package/template/packages/{agent-client → ai-client}/package.json +4 -5
  37. package/template/packages/{agent-client/src → ai-client/src/agent/client}/client.test.ts +3 -3
  38. package/template/packages/{agent-client/src → ai-client/src/agent/client}/client.ts +2 -2
  39. package/template/packages/{agent-client/src → ai-client/src/agent/client}/error.ts +1 -4
  40. package/template/packages/ai-client/src/agent/client/index.ts +3 -0
  41. package/template/packages/{agent-client/src → ai-client/src/agent/client}/run-protocol.test.ts +2 -2
  42. package/template/packages/{agent-client/src → ai-client/src/agent/client}/run.ts +1 -1
  43. package/template/packages/{agent-client/src → ai-client/src/agent/client}/types.ts +1 -1
  44. package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/contracts.test.ts +1 -1
  45. package/template/packages/ai-client/src/agent/contracts/index.ts +7 -0
  46. package/template/packages/ai-client/src/agent/index.ts +14 -0
  47. package/template/packages/{agent-client → ai-client}/tsconfig.json +3 -2
  48. package/template/packages/database/drizzle/0031_panoramic_typhoid_mary.sql +12 -0
  49. package/template/packages/database/drizzle/meta/0031_snapshot.json +7387 -0
  50. package/template/packages/database/drizzle/meta/_journal.json +8 -1
  51. package/template/packages/database/src/schema/platform-settings.ts +16 -1
  52. package/template/packages/modules/src/system-api-permissions.ts +4 -0
  53. package/template/packages/modules/src/system-api-watermark.ts +26 -0
  54. package/template/packages/modules/src/system-features.ts +1 -1
  55. package/template/packages/modules/src/system-watermark-policy.test.ts +31 -0
  56. package/template/packages/shared/src/platform-settings.ts +13 -0
  57. package/template/packages/agent-client/index.ts +0 -3
  58. package/template/packages/agent-contracts/index.ts +0 -7
  59. package/template/packages/agent-contracts/package.json +0 -24
  60. package/template/packages/agent-contracts/tsconfig.json +0 -16
  61. /package/template/packages/{agent-client/src → ai-client/src/agent/client}/event-queue.ts +0 -0
  62. /package/template/packages/{agent-client/src → ai-client/src/agent/client}/http.ts +0 -0
  63. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/errors.ts +0 -0
  64. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/events.ts +0 -0
  65. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/operation.ts +0 -0
  66. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/runs.ts +0 -0
  67. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/sse.ts +0 -0
  68. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/usage.ts +0 -0
  69. /package/template/packages/{agent-contracts/src → ai-client/src/agent/contracts}/validation.ts +0 -0
@@ -10,10 +10,13 @@
10
10
  ],
11
11
  "scripts": {
12
12
  "prepare": "husky",
13
- "dev": "bun run scripts/dev.ts",
13
+ "dev": "docker compose up",
14
+ "dev:build": "docker compose up --build",
15
+ "dev:host": "bun run scripts/dev.ts",
14
16
  "dev:web": "bun run --cwd apps/web dev",
15
17
  "dev:server": "bun run --cwd apps/server dev",
16
18
  "dev:license": "bun run --cwd apps/license dev",
19
+ "dev:license:docker": "docker compose --profile license up license",
17
20
  "dev:signing": "bun run --cwd apps/signing-service dev",
18
21
  "generate:crud": "bun run packages/crud-generator/src/cli.ts",
19
22
  "create:windy": "bun run packages/create-windy/src/cli.ts",
@@ -38,7 +41,8 @@
38
41
  "ops:release": "bun run scripts/production-release.ts",
39
42
  "test:release:evidence": "bun run scripts/release-evidence.ts",
40
43
  "test:packages:pack": "bun run scripts/platform-package-release.ts",
41
- "typecheck": "bun run --cwd apps/web typecheck && bun run --cwd apps/server typecheck && bun run --cwd apps/license typecheck && bun run --cwd apps/signing-service typecheck && bun run --cwd packages/agent-contracts typecheck && bun run --cwd packages/agent-client typecheck && bun run --cwd packages/license-sdk typecheck && bun run --cwd packages/jobs typecheck && bun run --cwd packages/server-sdk typecheck && bun run --cwd packages/storage typecheck && bun run --cwd packages/database typecheck && bun run --cwd packages/crud-generator typecheck && bun run --cwd packages/create-windy typecheck",
44
+ "test:agent": "uv run --directory apps/agent-server pytest && uv run --directory apps/agent-server ruff check . && uv run --directory apps/agent-server ruff format --check . && uv run --directory apps/agent-server mypy",
45
+ "typecheck": "bun run --cwd apps/web typecheck && bun run --cwd apps/server typecheck && bun run --cwd apps/license typecheck && bun run --cwd apps/signing-service typecheck && bun run --cwd packages/ai-client typecheck && bun run --cwd packages/license-sdk typecheck && bun run --cwd packages/jobs typecheck && bun run --cwd packages/server-sdk typecheck && bun run --cwd packages/storage typecheck && bun run --cwd packages/database typecheck && bun run --cwd packages/crud-generator typecheck && bun run --cwd packages/create-windy typecheck",
42
46
  "lint": "oxlint .",
43
47
  "format": "oxfmt",
44
48
  "format:staged": "lint-staged",
@@ -0,0 +1 @@
1
+ export * from "./src/agent/index.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "@southwind-ai/agent-client",
2
+ "name": "@southwind-ai/ai-client",
3
3
  "version": "0.1.0",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
@@ -15,11 +15,10 @@
15
15
  "test": "bun test",
16
16
  "typecheck": "tsc --noEmit --project tsconfig.json"
17
17
  },
18
- "dependencies": {
19
- "@southwind-ai/agent-contracts": "workspace:*"
20
- },
21
18
  "exports": {
22
- ".": "./index.ts"
19
+ ".": "./index.ts",
20
+ "./agent": "./src/agent/index.ts",
21
+ "./contracts": "./src/agent/contracts/index.ts"
23
22
  },
24
23
  "publishConfig": {
25
24
  "access": "public"
@@ -2,8 +2,8 @@ import { describe, expect, test } from "bun:test";
2
2
  import {
3
3
  defineAgentOperation,
4
4
  type AgentEvent,
5
- } from "@southwind-ai/agent-contracts";
6
- import { createAgentCaller } from "../index.js";
5
+ } from "@southwind-ai/ai-client/contracts";
6
+ import { createAgentCaller } from "@southwind-ai/ai-client";
7
7
  import { AgentClientError } from "./error.js";
8
8
  import type { AgentFetch } from "./types.js";
9
9
 
@@ -29,7 +29,7 @@ const operation = defineAgentOperation<{ text: string }, { answer: string }>(
29
29
  },
30
30
  );
31
31
 
32
- describe("@southwind-ai/agent-client", () => {
32
+ describe("@southwind-ai/ai-client", () => {
33
33
  test("创建 Run、消费可恢复 SSE,并在 completed 后读取类型化结果", async () => {
34
34
  const fake = plannedFetch([
35
35
  () =>
@@ -1,8 +1,8 @@
1
1
  import type {
2
2
  AgentOperation,
3
3
  StartAgentRunRequest,
4
- } from "@southwind-ai/agent-contracts";
5
- import { parseStartAgentRunResponse } from "@southwind-ai/agent-contracts";
4
+ } from "../contracts/index.js";
5
+ import { parseStartAgentRunResponse } from "../contracts/index.js";
6
6
  import { AgentClientError, requestError, safeHttpError } from "./error.js";
7
7
  import { safeJson } from "./http.js";
8
8
  import { HttpAgentRun } from "./run.js";
@@ -1,7 +1,4 @@
1
- import {
2
- parseAgentError,
3
- type AgentError,
4
- } from "@southwind-ai/agent-contracts";
1
+ import { parseAgentError, type AgentError } from "../contracts/index.js";
5
2
 
6
3
  export type AgentClientErrorCode =
7
4
  | "INVALID_CONFIGURATION"
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./error.js";
3
+ export type * from "./types.js";
@@ -2,8 +2,8 @@ import { describe, expect, test } from "bun:test";
2
2
  import {
3
3
  defineAgentOperation,
4
4
  type AgentEvent,
5
- } from "@southwind-ai/agent-contracts";
6
- import { createAgentCaller } from "../index.js";
5
+ } from "@southwind-ai/ai-client/contracts";
6
+ import { createAgentCaller } from "@southwind-ai/ai-client/agent";
7
7
  import type { AgentFetch } from "./types.js";
8
8
 
9
9
  const operation = defineAgentOperation<null, string>("agent.test", (value) => {
@@ -4,7 +4,7 @@ import {
4
4
  splitAgentSseFrames,
5
5
  type AgentEvent,
6
6
  type TerminalAgentEvent,
7
- } from "@southwind-ai/agent-contracts";
7
+ } from "../contracts/index.js";
8
8
  import { AgentClientError, requestError, safeHttpError } from "./error.js";
9
9
  import { EventQueue } from "./event-queue.js";
10
10
  import { safeJson } from "./http.js";
@@ -1,4 +1,4 @@
1
- import type { AgentEvent, AgentOperation } from "@southwind-ai/agent-contracts";
1
+ import type { AgentEvent, AgentOperation } from "../contracts/index.js";
2
2
 
3
3
  export interface StartAgentRunOptions {
4
4
  idempotencyKey: string;
@@ -13,7 +13,7 @@ import {
13
13
  parseAgentUsage,
14
14
  splitAgentSseFrames,
15
15
  type AgentEvent,
16
- } from "../index.js";
16
+ } from "@southwind-ai/ai-client/contracts";
17
17
 
18
18
  const error = {
19
19
  code: "RUNTIME_UNAVAILABLE",
@@ -0,0 +1,7 @@
1
+ export * from "./errors.js";
2
+ export * from "./events.js";
3
+ export * from "./operation.js";
4
+ export * from "./runs.js";
5
+ export * from "./sse.js";
6
+ export * from "./usage.js";
7
+ export { AgentContractParseError } from "./validation.js";
@@ -0,0 +1,14 @@
1
+ export * from "./client/index.js";
2
+ export {
3
+ defineAgentOperation,
4
+ isTerminalAgentEvent,
5
+ type AgentError,
6
+ type AgentErrorCode,
7
+ type AgentEvent,
8
+ type AgentOperation,
9
+ type AgentOperationInput,
10
+ type AgentOperationOutput,
11
+ type AgentRunStatus,
12
+ type AgentUsage,
13
+ type TerminalAgentEvent,
14
+ } from "./contracts/index.js";
@@ -6,8 +6,9 @@
6
6
  "moduleResolution": "bundler",
7
7
  "baseUrl": ".",
8
8
  "paths": {
9
- "@southwind-ai/agent-contracts": ["../agent-contracts/index.ts"],
10
- "@southwind-ai/storage": ["../storage/index.ts"]
9
+ "@southwind-ai/ai-client": ["./index.ts"],
10
+ "@southwind-ai/ai-client/agent": ["./src/agent/index.ts"],
11
+ "@southwind-ai/ai-client/contracts": ["./src/agent/contracts/index.ts"]
11
12
  },
12
13
  "strict": true,
13
14
  "noImplicitAny": true,
@@ -0,0 +1,12 @@
1
+ CREATE TABLE "platform_watermark_policies" (
2
+ "id" varchar(64) PRIMARY KEY NOT NULL,
3
+ "enabled" boolean NOT NULL,
4
+ "business_pages_enabled" boolean NOT NULL,
5
+ "custom_content" varchar(80) NOT NULL,
6
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
7
+ "created_by" varchar(64) NOT NULL,
8
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
9
+ "updated_by" varchar(64) NOT NULL,
10
+ "deleted_at" timestamp with time zone,
11
+ "deleted_by" varchar(64)
12
+ );