@uns-kit/cli 2.0.70 → 2.0.71

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 (61) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/dist/index.js +75 -54
  4. package/package.json +6 -6
  5. package/templates/api/src/examples/api-example.ts +155 -155
  6. package/templates/azure-pipelines.yml +21 -21
  7. package/templates/codegen/codegen.ts +15 -15
  8. package/templates/codegen/src/uns/uns-tags.ts +1 -1
  9. package/templates/codegen/src/uns/uns-topics.ts +1 -1
  10. package/templates/config-files/config-docker.json +32 -32
  11. package/templates/config-files/config-localhost.json +32 -32
  12. package/templates/cron/AGENTS.md +20 -20
  13. package/templates/cron/src/examples/cron-example.ts +71 -71
  14. package/templates/default/.prettierignore +1 -1
  15. package/templates/default/.prettierrc +7 -7
  16. package/templates/default/AGENTS.md +20 -20
  17. package/templates/default/README.md +101 -99
  18. package/templates/default/config.json +35 -35
  19. package/templates/default/eslint.config.js +30 -30
  20. package/templates/default/gitignore +51 -51
  21. package/templates/default/package.json +46 -46
  22. package/templates/default/src/config/project.config.extension.example +23 -23
  23. package/templates/default/src/config/project.config.extension.ts +6 -6
  24. package/templates/default/src/examples/data-example.ts +78 -78
  25. package/templates/default/src/examples/load-test-data.ts +105 -105
  26. package/templates/default/src/examples/schema-system-metadata-example.ts +121 -123
  27. package/templates/default/src/examples/subasset-example.ts +72 -74
  28. package/templates/default/src/examples/table-example.ts +95 -95
  29. package/templates/default/src/examples/table-window-load-test.ts +440 -440
  30. package/templates/default/src/examples/uns-gateway-cli.ts +10 -10
  31. package/templates/default/src/index.ts +59 -38
  32. package/templates/default/src/uns/uns-assets.ts +12 -12
  33. package/templates/default/src/uns/uns-dictionary.generated.ts +758 -758
  34. package/templates/default/src/uns/uns-measurements.generated.ts +366 -366
  35. package/templates/default/src/uns/uns-tags.ts +2 -2
  36. package/templates/default/src/uns/uns-topics.ts +2 -2
  37. package/templates/default/tsconfig.json +29 -29
  38. package/templates/python/app/README.md +8 -8
  39. package/templates/python/examples/README.md +134 -134
  40. package/templates/python/examples/api_handler.py +28 -28
  41. package/templates/python/examples/data_publish.py +11 -11
  42. package/templates/python/examples/data_subscribe.py +8 -8
  43. package/templates/python/examples/data_transformer.py +17 -17
  44. package/templates/python/examples/table_transformer.py +15 -15
  45. package/templates/python/gateway/cli.py +75 -75
  46. package/templates/python/gateway/client.py +155 -155
  47. package/templates/python/gateway/manager.py +97 -97
  48. package/templates/python/gitignore +47 -47
  49. package/templates/python/proto/uns-gateway.proto +105 -105
  50. package/templates/python/pyproject.toml +4 -4
  51. package/templates/python/runtime.json +4 -4
  52. package/templates/python/scripts/setup.sh +87 -87
  53. package/templates/uns-dictionary/uns-dictionary.json +650 -650
  54. package/templates/uns-measurements/uns-measurements.json +360 -360
  55. package/templates/vscode/.vscode/launch.json +164 -164
  56. package/templates/vscode/.vscode/settings.json +9 -9
  57. package/templates/vscode/.vscode/tasks.json +27 -27
  58. package/templates/vscode/uns-kit.code-workspace +13 -13
  59. package/templates/python/gen/__init__.py +0 -1
  60. package/templates/python/gen/uns_gateway_pb2.py +0 -70
  61. package/templates/python/gen/uns_gateway_pb2_grpc.py +0 -312
@@ -1,71 +1,71 @@
1
- /**
2
- * Change this file according to your specifications and rename it to index.ts
3
- */
4
- import { UnsProxyProcess, ConfigFile, UnsEvents, getLogger } from "@uns-kit/core";
5
- import { registerAttributeDescriptions, registerObjectTypeDescriptions } from "@uns-kit/core/uns/uns-dictionary-registry.js";
6
- import "@uns-kit/cron";
7
- import { type UnsProxyProcessWithCron } from "@uns-kit/cron";
8
- import { UnsTopics } from "@uns-kit/core/uns/uns-topics.js";
9
- import { UnsPacket } from "@uns-kit/core/uns/uns-packet.js";
10
- import {
11
- GeneratedObjectTypes,
12
- GeneratedAttributes,
13
- GeneratedAttributesByType,
14
- GeneratedAttributeDescriptions,
15
- GeneratedObjectTypeDescriptions,
16
- } from "../uns/uns-dictionary.generated.js";
17
- import { GeneratedPhysicalMeasurements } from "../uns/uns-measurements.generated.js";
18
- import { GeneratedAssets, resolveGeneratedAsset } from "../uns/uns-assets.js";
19
-
20
- const logger = getLogger(import.meta.url);
21
-
22
-
23
- /**
24
- * Load the configuration from a file.
25
- * On the server, this file is provided by the `uns-datahub-controller`.
26
- * In the development environment, you are responsible for creating and maintaining this file and its contents.
27
- */
28
- const config = await ConfigFile.loadConfig();
29
- registerObjectTypeDescriptions(GeneratedObjectTypeDescriptions);
30
- registerAttributeDescriptions(GeneratedAttributeDescriptions);
31
-
32
- /**
33
- * Connect to the output broker and create a crontab proxy
34
- */
35
- const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName:config.uns.processName}) as UnsProxyProcessWithCron;;
36
- const mqttOutput = await unsProxyProcess.createUnsMqttProxy((config.output?.host)!, "templateUnsRttOutput", config.uns.instanceMode!, config.uns.handover!, { publishThrottlingDelay: 1000});
37
- const cronInput = await unsProxyProcess.createCrontabProxy("* * * * * *");
38
-
39
- /**
40
- * Event listener for cron events.
41
- * On each cron event, publish a message to the MQTT output broker.
42
- */
43
- cronInput.event.on("cronEvent", async (event: UnsEvents["cronEvent"]) => {
44
- try {
45
- const time = UnsPacket.formatToISO8601(new Date());
46
- const numberValue: number = 42;
47
- const topic: UnsTopics = "example/";
48
- const asset = resolveGeneratedAsset("asset");
49
- const assetDescription = "Sample asset";
50
-
51
- const dataGroup = "sensor";
52
-
53
- mqttOutput.publishMqttMessage({
54
- topic,
55
- asset,
56
- assetDescription,
57
- objectType: GeneratedObjectTypes.equipment,
58
- objectId: "main",
59
- attributes: [
60
- {
61
- attribute: GeneratedAttributesByType["energy-resource"]["current"],
62
- data: { dataGroup, time, value: numberValue, uom: GeneratedPhysicalMeasurements.Ampere }
63
- }
64
- ],
65
- });
66
- } catch (error) {
67
- const reason = error instanceof Error ? error : new Error(String(error));
68
- logger.error(`Error publishing message to MQTT: ${reason.message}`);
69
- throw error;
70
- }
71
- });
1
+ /**
2
+ * Change this file according to your specifications and rename it to index.ts
3
+ */
4
+ import { UnsProxyProcess, ConfigFile, UnsEvents, getLogger } from "@uns-kit/core";
5
+ import { registerAttributeDescriptions, registerObjectTypeDescriptions } from "@uns-kit/core/uns/uns-dictionary-registry.js";
6
+ import "@uns-kit/cron";
7
+ import { type UnsProxyProcessWithCron } from "@uns-kit/cron";
8
+ import { UnsTopics } from "@uns-kit/core/uns/uns-topics.js";
9
+ import { UnsPacket } from "@uns-kit/core/uns/uns-packet.js";
10
+ import {
11
+ GeneratedObjectTypes,
12
+ GeneratedAttributes,
13
+ GeneratedAttributesByType,
14
+ GeneratedAttributeDescriptions,
15
+ GeneratedObjectTypeDescriptions,
16
+ } from "../uns/uns-dictionary.generated.js";
17
+ import { GeneratedPhysicalMeasurements } from "../uns/uns-measurements.generated.js";
18
+ import { GeneratedAssets, resolveGeneratedAsset } from "../uns/uns-assets.js";
19
+
20
+ const logger = getLogger(import.meta.url);
21
+
22
+
23
+ /**
24
+ * Load the configuration from a file.
25
+ * On the server, this file is provided by the `uns-datahub-controller`.
26
+ * In the development environment, you are responsible for creating and maintaining this file and its contents.
27
+ */
28
+ const config = await ConfigFile.loadConfig();
29
+ registerObjectTypeDescriptions(GeneratedObjectTypeDescriptions);
30
+ registerAttributeDescriptions(GeneratedAttributeDescriptions);
31
+
32
+ /**
33
+ * Connect to the output broker and create a crontab proxy
34
+ */
35
+ const unsProxyProcess = new UnsProxyProcess(config.infra.host!, {processName:config.uns.processName}) as UnsProxyProcessWithCron;;
36
+ const mqttOutput = await unsProxyProcess.createUnsMqttProxy((config.output?.host)!, "templateUnsRttOutput", config.uns.instanceMode!, config.uns.handover!, { publishThrottlingDelay: 1000});
37
+ const cronInput = await unsProxyProcess.createCrontabProxy("* * * * * *");
38
+
39
+ /**
40
+ * Event listener for cron events.
41
+ * On each cron event, publish a message to the MQTT output broker.
42
+ */
43
+ cronInput.event.on("cronEvent", async (event: UnsEvents["cronEvent"]) => {
44
+ try {
45
+ const time = UnsPacket.formatToISO8601(new Date());
46
+ const numberValue: number = 42;
47
+ const topic: UnsTopics = "example/";
48
+ const asset = resolveGeneratedAsset("asset");
49
+ const assetDescription = "Sample asset";
50
+
51
+ const dataGroup = "sensor";
52
+
53
+ mqttOutput.publishMqttMessage({
54
+ topic,
55
+ asset,
56
+ assetDescription,
57
+ objectType: GeneratedObjectTypes.equipment,
58
+ objectId: "main",
59
+ attributes: [
60
+ {
61
+ attribute: GeneratedAttributesByType["energy-resource"]["current"],
62
+ data: { dataGroup, time, value: numberValue, uom: GeneratedPhysicalMeasurements.Ampere }
63
+ }
64
+ ],
65
+ });
66
+ } catch (error) {
67
+ const reason = error instanceof Error ? error : new Error(String(error));
68
+ logger.error(`Error publishing message to MQTT: ${reason.message}`);
69
+ throw error;
70
+ }
71
+ });
@@ -1,2 +1,2 @@
1
- dist
1
+ dist
2
2
  node_modules
@@ -1,7 +1,7 @@
1
- {
2
- "semi": true,
3
- "singleQuote": true,
4
- "tabWidth": 2,
5
- "trailingComma": "all",
6
- "printWidth": 140
7
- }
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "trailingComma": "all",
6
+ "printWidth": 140
7
+ }
@@ -1,20 +1,20 @@
1
- # Agent Onboarding (template)
2
-
3
- Pointers for AI/code-assist tools when working in this generated project.
4
-
5
- ## What to read locally
6
-
7
- - `package.json` for scripts (`sync-uns-*`, `generate-codegen`, etc.).
8
- - `config.schema.json` for the app config shape; `processName` is required.
9
- - `src/examples/*.ts` for idiomatic publishing (multi-attribute) and description registration.
10
- - Installed docs (under `node_modules`):
11
- - `@uns-kit/core/README.md`
12
- - `@uns-kit/api/README.md` (if installed)
13
- - `@uns-kit/cron/README.md` (if installed)
14
- - `@uns-kit/cli/README.md` (if installed)
15
-
16
- ## Generators in this project
17
-
18
- - `pnpm run generate-codegen` -> GraphQL codegen (after configure-codegen)
19
- - `pnpm run sync-uns-schema -- --controller-url ... --token ...` -> pulls `uns-dictionary.json` + `uns-measurements.json` from the controller and regenerates local TS helpers
20
- - `pnpm run sync-uns-metadata -- --controller-url ... --token ...` -> pulls topics/tags/assets from the controller and regenerates local TS helpers
1
+ # Agent Onboarding (template)
2
+
3
+ Pointers for AI/code-assist tools when working in this generated project.
4
+
5
+ ## What to read locally
6
+
7
+ - `package.json` for scripts (`sync-uns-*`, `generate-codegen`, etc.).
8
+ - `config.schema.json` for the app config shape; `processName` is required.
9
+ - `src/examples/*.ts` for idiomatic publishing (multi-attribute) and description registration.
10
+ - Installed docs (under `node_modules`):
11
+ - `@uns-kit/core/README.md`
12
+ - `@uns-kit/api/README.md` (if installed)
13
+ - `@uns-kit/cron/README.md` (if installed)
14
+ - `@uns-kit/cli/README.md` (if installed)
15
+
16
+ ## Generators in this project
17
+
18
+ - `pnpm run generate-codegen` -> GraphQL codegen (after configure-codegen)
19
+ - `pnpm run sync-uns-schema -- --controller-url ... --token ...` -> pulls `uns-dictionary.json` + `uns-measurements.json` from the controller and regenerates local TS helpers
20
+ - `pnpm run sync-uns-metadata -- --controller-url ... --token ...` -> pulls topics/tags/assets from the controller and regenerates local TS helpers
@@ -1,44 +1,44 @@
1
- # __APP_NAME__
2
-
3
- Generated with `@uns-kit/cli`.
4
-
5
- Requires Node.js 22+ and pnpm (see `packageManager` in package.json).
6
-
7
- ## Scripts
8
-
9
- ```bash
10
- pnpm run dev # start the local development loop
11
- pnpm run build # emit dist/ output
12
- pnpm run start # run the compiled entrypoint
13
- pnpm run generate-config-schema # regenerate config.schema.json and AppConfig augmentations
14
- pnpm run generate-codegen # regenerate typed GraphQL operations (after configure-codegen)
15
- pnpm run sync-uns-schema -- --controller-url http://localhost:3200 --token <admin-bearer-token> # pull dictionary + measurements from the controller
16
- pnpm run sync-uns-metadata -- --controller-url http://localhost:3200 --token <metadata-export-token> # refresh topics/tags/assets for IntelliSense
17
- ```
18
-
19
- ## Configuration
20
-
21
- Update `config.json` with your broker, UNS URLs, and credentials. The generated file contains sensible defaults for local development. If you use a service token, add `uns.token` and pass it to `UnsClient`.
22
-
23
- ## Validity / Liveliness
24
-
25
- UNS attributes can declare how the controller decides whether they are live or stale; in most apps this is primarily used to drive UI liveliness/activity indicators. In app-level modeling we use two modes only:
26
-
27
- - `interval`: continuously refreshed values (stale after ~2× `expectedIntervalMs`)
28
- - `lifecycle`: event-driven activity that stays active until a defined end value (`lifecycleEndValue`)
29
-
1
+ # __APP_NAME__
2
+
3
+ Generated with `@uns-kit/cli`.
4
+
5
+ Requires Node.js 22+ and pnpm (see `packageManager` in package.json).
6
+
7
+ ## Scripts
8
+
9
+ ```bash
10
+ pnpm run dev # start the local development loop
11
+ pnpm run build # emit dist/ output
12
+ pnpm run start # run the compiled entrypoint
13
+ pnpm run generate-config-schema # regenerate config.schema.json and AppConfig augmentations
14
+ pnpm run generate-codegen # regenerate typed GraphQL operations (after configure-codegen)
15
+ pnpm run sync-uns-schema -- --controller-url http://localhost:3200 --token <admin-bearer-token> # pull dictionary + measurements from the controller
16
+ pnpm run sync-uns-metadata -- --controller-url http://localhost:3200 --token <metadata-export-token> # refresh topics/tags/assets for IntelliSense
17
+ ```
18
+
19
+ ## Configuration
20
+
21
+ Update `config.json` with your broker, UNS URLs, and credentials. The generated file contains sensible defaults for local development. If you use a service token, add `uns.token` and pass it to `UnsClient`.
22
+
23
+ ## Validity / Liveliness
24
+
25
+ UNS attributes can declare how the controller decides whether they are live or stale; in most apps this is primarily used to drive UI liveliness/activity indicators. In app-level modeling we use two modes only:
26
+
27
+ - `interval`: continuously refreshed values (stale after ~2× `expectedIntervalMs`)
28
+ - `lifecycle`: event-driven activity that stays active until a defined end value (`lifecycleEndValue`)
29
+
30
30
  Example:
31
-
32
- ```ts
31
+
32
+ ```ts
33
33
  await proxy.publishMqttMessage({
34
34
  topic: "raw/data/",
35
35
  asset: "line-1",
36
- objectType: "motor",
37
- objectId: "main",
38
- attributes: {
39
- attribute: "status",
40
- data: { time: new Date().toISOString(), value: "RUNNING" },
41
- validityMode: "lifecycle",
36
+ objectType: "motor",
37
+ objectId: "main",
38
+ attributes: {
39
+ attribute: "status",
40
+ data: { time: new Date().toISOString(), value: "RUNNING" },
41
+ validityMode: "lifecycle",
42
42
  lifecycleEndValue: "STOPPED",
43
43
  },
44
44
  });
@@ -46,65 +46,67 @@ await proxy.flush();
46
46
  ```
47
47
 
48
48
  `publishMqttMessage()` resolves when the message is accepted into the local bounded publisher queue, not when the broker confirms it. Queue-full is reported immediately to the caller. Broker publish failures are emitted later on the proxy `error` event, so use `await proxy.flush()` before shutdown or before assuming all accepted messages were published.
49
-
50
- ## Schema System Metadata
51
-
52
- The template includes `src/examples/schema-system-metadata-example.ts`, which
53
- shows how a producer publishes:
54
-
55
- - `systemRole: "relationship-evidence"` with `relationshipEvidence`
56
- - `systemRole: "lifecycle-time-source"` with `lifecycle`
57
-
58
- These fields are retained in the produced-topics registry and stored by the
59
- UNS Datahub controller in `attribute_schema.schema_json`.
60
-
61
- ## Sub-Asset Publishing
62
-
63
- The template includes `src/examples/subasset-example.ts`, which shows the V1
64
- sub-asset convention:
65
-
66
- - put the full parent asset path in `topic`
67
- - put only the leaf sub-asset name in `asset`
68
-
69
- For example, `topic: "enterprise/site/area/line-1/"` and `asset: "pump-1"`
70
- publish `enterprise/site/area/line-1/pump-1/equipment/main/temperature`.
71
- Downstream QuestDB storage keeps the existing columns: `topic` is the parent
72
- asset path and `asset` is the leaf sub-asset.
73
-
74
- ## Datahub client (last value)
75
-
76
- `UnsClient` provides a minimal REST client for the UNS Datahub API, including the batch last-value endpoint. Prefer a long-lived service token if available; you can pass it directly and skip username/password auth.
77
-
78
- ```ts
79
- import { ConfigFile, UnsClient } from "@uns-kit/core";
80
-
81
- const config = await ConfigFile.loadConfig();
82
-
83
- const client = new UnsClient("https://datahub.example.com", {
84
- token: process.env.UNS_SERVICE_TOKEN ?? config.uns.token,
85
- });
86
-
87
- const values = await client.lastValue([
88
- "raw/data/line-1/motor/main/temperature",
89
- "raw/data/line-1/motor/main/status",
90
- ]);
91
- console.log(values);
92
- ```
93
-
94
- ## Next Steps
95
-
96
- - Install additional plugins: `pnpm add @uns-kit/api` etc.
97
- - Create MQTT proxies inside `src/index.ts`.
98
- - Extend `src/config/project.config.extension.ts` with project-specific sections and run `pnpm run generate-config-schema` (reload your editor's TS server afterward if completions lag).
99
- - Run `uns-kit configure-devops` to add the Azure DevOps pull-request tooling.
100
- - Run `uns-kit configure-vscode` to copy workspace/launch configuration for VS Code.
101
- - Run `uns-kit configure-codegen` to scaffold GraphQL code generation and UNS refresh scripts.
102
- - Run `pnpm run sync-uns-schema -- --controller-url ... --token ...` to pull `uns-dictionary.json` and `uns-measurements.json` from the controller export into this project, then regenerate the typed files automatically.
103
- - Run `pnpm run sync-uns-metadata -- --controller-url ... --token ...` to regenerate topic, tag, and asset IntelliSense from the controller metadata export. The token must be admin or include `export:uns-reference`.
104
- - Run `uns-kit configure-api` / `configure-cron` to pull in example stubs and install the matching UNS plugins (add `--overwrite` to refresh templates).
105
- - Run `uns-kit configure-python` to copy the Python gateway client template (examples, scripts, proto).
106
- - Commit your new project and start building!
107
-
108
- ## Agent Onboarding (for AI/code-assist tools)
109
-
110
- For agent guidance, see the local [`AGENTS.md`](./AGENTS.md).
49
+
50
+ The generated `src/index.ts` is a long-running service. It keeps the UNS process active after the startup publish and calls `UnsProxyProcess.shutdown()` from `SIGINT` and `SIGTERM` handlers. For process-owned MQTT proxies, use that process-level shutdown path instead of stopping the same proxy separately.
51
+
52
+ ## Schema System Metadata
53
+
54
+ The template includes `src/examples/schema-system-metadata-example.ts`, which
55
+ shows how a producer publishes:
56
+
57
+ - `systemRole: "relationship-evidence"` with `relationshipEvidence`
58
+ - `systemRole: "lifecycle-time-source"` with `lifecycle`
59
+
60
+ These fields are retained in the produced-topics registry and stored by the
61
+ UNS Datahub controller in `attribute_schema.schema_json`.
62
+
63
+ ## Sub-Asset Publishing
64
+
65
+ The template includes `src/examples/subasset-example.ts`, which shows the V1
66
+ sub-asset convention:
67
+
68
+ - put the full parent asset path in `topic`
69
+ - put only the leaf sub-asset name in `asset`
70
+
71
+ For example, `topic: "enterprise/site/area/line-1/"` and `asset: "pump-1"`
72
+ publish `enterprise/site/area/line-1/pump-1/equipment/main/temperature`.
73
+ Downstream QuestDB storage keeps the existing columns: `topic` is the parent
74
+ asset path and `asset` is the leaf sub-asset.
75
+
76
+ ## Datahub client (last value)
77
+
78
+ `UnsClient` provides a minimal REST client for the UNS Datahub API, including the batch last-value endpoint. Prefer a long-lived service token if available; you can pass it directly and skip username/password auth.
79
+
80
+ ```ts
81
+ import { ConfigFile, UnsClient } from "@uns-kit/core";
82
+
83
+ const config = await ConfigFile.loadConfig();
84
+
85
+ const client = new UnsClient("https://datahub.example.com", {
86
+ token: process.env.UNS_SERVICE_TOKEN ?? config.uns.token,
87
+ });
88
+
89
+ const values = await client.lastValue([
90
+ "raw/data/line-1/motor/main/temperature",
91
+ "raw/data/line-1/motor/main/status",
92
+ ]);
93
+ console.log(values);
94
+ ```
95
+
96
+ ## Next Steps
97
+
98
+ - Install additional plugins: `pnpm add @uns-kit/api` etc.
99
+ - Create MQTT proxies inside `src/index.ts`.
100
+ - Extend `src/config/project.config.extension.ts` with project-specific sections and run `pnpm run generate-config-schema` (reload your editor's TS server afterward if completions lag).
101
+ - Run `uns-kit configure-devops` to add the Azure DevOps pull-request tooling.
102
+ - Run `uns-kit configure-vscode` to copy workspace/launch configuration for VS Code.
103
+ - Run `uns-kit configure-codegen` to scaffold GraphQL code generation and UNS refresh scripts.
104
+ - Run `pnpm run sync-uns-schema -- --controller-url ... --token ...` to pull `uns-dictionary.json` and `uns-measurements.json` from the controller export into this project, then regenerate the typed files automatically.
105
+ - Run `pnpm run sync-uns-metadata -- --controller-url ... --token ...` to regenerate topic, tag, and asset IntelliSense from the controller metadata export. The token must be admin or include `export:uns-reference`.
106
+ - Run `uns-kit configure-api` / `configure-cron` to pull in example stubs and install the matching UNS plugins (add `--overwrite` to refresh templates).
107
+ - Run `uns-kit configure-python` to copy the Python gateway client template (examples, scripts, proto).
108
+ - Commit your new project and start building!
109
+
110
+ ## Agent Onboarding (for AI/code-assist tools)
111
+
112
+ For agent guidance, see the local [`AGENTS.md`](./AGENTS.md).
@@ -1,35 +1,35 @@
1
- {
2
- "uns": {
3
- "graphql": "http://localhost:3200/graphql",
4
- "rest": "http://localhost:3200/api",
5
- "processName": "__APP_NAME__",
6
- "supervisor": {
7
- "enabled": false,
8
- "restartOnExit": false,
9
- "maxMemoryMb": 512,
10
- "restartOnUnhealthy": false,
11
- "unhealthyAfterMs": 60000,
12
- "restartCooldownMs": 300000
13
- },
14
- "instanceMode": "wait",
15
- "handover": true,
16
- "jwksWellKnownUrl": "http://localhost:3200/api/.well-known/jwks.json",
17
- "kidWellKnownUrl": "http://localhost:3200/api/.well-known/kid",
18
- "email": "user@example.com",
19
- "password": "123"
20
- },
21
- "infra": {
22
- "host": "localhost"
23
- },
24
- "output": {
25
- "host": "localhost"
26
- },
27
- "input": {
28
- "host": "localhost"
29
- },
30
- "devops": {
31
- "provider": "azure-devops",
32
- "organization": "example-org",
33
- "project": "example-project"
34
- }
35
- }
1
+ {
2
+ "uns": {
3
+ "graphql": "http://localhost:3200/graphql",
4
+ "rest": "http://localhost:3200/api",
5
+ "processName": "__APP_NAME__",
6
+ "supervisor": {
7
+ "enabled": false,
8
+ "restartOnExit": false,
9
+ "maxMemoryMb": 512,
10
+ "restartOnUnhealthy": false,
11
+ "unhealthyAfterMs": 60000,
12
+ "restartCooldownMs": 300000
13
+ },
14
+ "instanceMode": "wait",
15
+ "handover": true,
16
+ "jwksWellKnownUrl": "http://localhost:3200/api/.well-known/jwks.json",
17
+ "kidWellKnownUrl": "http://localhost:3200/api/.well-known/kid",
18
+ "email": "user@example.com",
19
+ "password": "123"
20
+ },
21
+ "infra": {
22
+ "host": "localhost"
23
+ },
24
+ "output": {
25
+ "host": "localhost"
26
+ },
27
+ "input": {
28
+ "host": "localhost"
29
+ },
30
+ "devops": {
31
+ "provider": "azure-devops",
32
+ "organization": "example-org",
33
+ "project": "example-project"
34
+ }
35
+ }
@@ -1,30 +1,30 @@
1
- // eslint.config.js
2
-
3
- import { defineConfig } from 'eslint/config';
4
-
5
- export default defineConfig([
6
- // Apply to all source and test files
7
- {
8
- files: ['src/**/*', 'test/**/*'],
9
- ignores: ['dist/', 'node_modules/'], // Folders to ignore
10
- languageOptions: {
11
- parserOptions: {
12
- ecmaVersion: 'latest', // Use latest ECMAScript version
13
- sourceType: 'module', // Enable ES modules
14
- },
15
- },
16
- rules: {
17
- semi: ['warn', 'always'],
18
- },
19
- },
20
-
21
- // Override specifically for test files
22
- {
23
- files: ['test/**/*'],
24
- rules: {
25
- 'no-console': 'off',
26
- },
27
- },
28
-
29
- // Additional configurations can go here
30
- ]);
1
+ // eslint.config.js
2
+
3
+ import { defineConfig } from 'eslint/config';
4
+
5
+ export default defineConfig([
6
+ // Apply to all source and test files
7
+ {
8
+ files: ['src/**/*', 'test/**/*'],
9
+ ignores: ['dist/', 'node_modules/'], // Folders to ignore
10
+ languageOptions: {
11
+ parserOptions: {
12
+ ecmaVersion: 'latest', // Use latest ECMAScript version
13
+ sourceType: 'module', // Enable ES modules
14
+ },
15
+ },
16
+ rules: {
17
+ semi: ['warn', 'always'],
18
+ },
19
+ },
20
+
21
+ // Override specifically for test files
22
+ {
23
+ files: ['test/**/*'],
24
+ rules: {
25
+ 'no-console': 'off',
26
+ },
27
+ },
28
+
29
+ // Additional configurations can go here
30
+ ]);