pi-harness-runtime 1.1.442 → 1.1.443

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 (120) hide show
  1. package/package.json +1 -1
  2. package/packages/a2a-adapter/package.json +1 -1
  3. package/packages/agent-policy/package.json +1 -1
  4. package/packages/architecture-generator/package.json +1 -1
  5. package/packages/auth/package.json +1 -1
  6. package/packages/autonomous-refactor/package.json +1 -1
  7. package/packages/autonomous-runtime/package.json +1 -1
  8. package/packages/cache-strategy/package.json +1 -1
  9. package/packages/capability-registry/package.json +1 -1
  10. package/packages/checkpoint/package.json +1 -1
  11. package/packages/cli-plugin-sdk/package.json +1 -1
  12. package/packages/clipboard/package.json +1 -1
  13. package/packages/clipboard-plugin/package.json +1 -1
  14. package/packages/code-generation/package.json +1 -1
  15. package/packages/code-review/package.json +1 -1
  16. package/packages/codex-adapter/package.json +1 -1
  17. package/packages/codex-watcher/package.json +1 -1
  18. package/packages/config-capture/package.json +1 -1
  19. package/packages/connection-runtime/package.json +1 -1
  20. package/packages/context-compiler/package.json +1 -1
  21. package/packages/context-discovery/package.json +1 -1
  22. package/packages/context-manager/package.json +1 -1
  23. package/packages/contracts/package.json +1 -1
  24. package/packages/cookie-sanitizer/package.json +1 -1
  25. package/packages/cost-optimizer/package.json +1 -1
  26. package/packages/dependency-analyzer/package.json +1 -1
  27. package/packages/django-plugin/package.json +1 -1
  28. package/packages/doc-generator/package.json +1 -1
  29. package/packages/durable-review/package.json +1 -1
  30. package/packages/e2e-tester/package.json +1 -1
  31. package/packages/evaluation-engine/package.json +1 -1
  32. package/packages/evaluation-runner/package.json +1 -1
  33. package/packages/event-bus/package.json +1 -1
  34. package/packages/event-sink/package.json +1 -1
  35. package/packages/event-store/package.json +1 -1
  36. package/packages/experience-replay/package.json +1 -1
  37. package/packages/feedback-collector/package.json +1 -1
  38. package/packages/file-copy-helper/package.json +1 -1
  39. package/packages/framework-detector/package.json +1 -1
  40. package/packages/framework-plugin-sdk/package.json +1 -1
  41. package/packages/frappe-plugin/package.json +1 -1
  42. package/packages/generic-web-plugin/package.json +1 -1
  43. package/packages/health-monitor/package.json +1 -1
  44. package/packages/intent-analyzer/package.json +1 -1
  45. package/packages/jev-judge/package.json +1 -1
  46. package/packages/knowledge-graph/package.json +1 -1
  47. package/packages/knowledge-retrieval/package.json +1 -1
  48. package/packages/laravel-plugin/package.json +1 -1
  49. package/packages/learning-engine/package.json +1 -1
  50. package/packages/logging/package.json +1 -1
  51. package/packages/mcp-adapter/package.json +1 -1
  52. package/packages/memory-engine/package.json +1 -1
  53. package/packages/milestone-manager/package.json +1 -1
  54. package/packages/model-registry/package.json +1 -1
  55. package/packages/nextjs-plugin/package.json +1 -1
  56. package/packages/notification/package.json +1 -1
  57. package/packages/observability/package.json +1 -1
  58. package/packages/okf-indexer/dist/cli.d.ts +9 -1
  59. package/packages/okf-indexer/dist/cli.d.ts.map +1 -1
  60. package/packages/okf-indexer/dist/cli.js +31 -13
  61. package/packages/okf-indexer/dist/cli.js.map +1 -1
  62. package/packages/okf-indexer/package.json +1 -1
  63. package/packages/okf-indexer/src/cli.ts +36 -13
  64. package/packages/paperclip-integration/package.json +1 -1
  65. package/packages/performance-optimizer/package.json +1 -1
  66. package/packages/permission-mode/package.json +1 -1
  67. package/packages/privilege-broker/package.json +1 -1
  68. package/packages/project-analyzer/package.json +1 -1
  69. package/packages/project-bootstrap/package.json +1 -1
  70. package/packages/projection-engine/package.json +1 -1
  71. package/packages/prompt-compiler/package.json +1 -1
  72. package/packages/prompt-versioning/package.json +1 -1
  73. package/packages/provider-adapter-sdk/package.json +1 -1
  74. package/packages/provider-router/package.json +1 -1
  75. package/packages/provider-selector/package.json +1 -1
  76. package/packages/providers/package.json +1 -1
  77. package/packages/qdrant-skills/package.json +1 -1
  78. package/packages/quota-manager/package.json +1 -1
  79. package/packages/rate-limiter/package.json +1 -1
  80. package/packages/react-vite-plugin/package.json +1 -1
  81. package/packages/relay/package.json +1 -1
  82. package/packages/release-manager/package.json +1 -1
  83. package/packages/requirement-compiler/package.json +1 -1
  84. package/packages/runtime/package.json +1 -1
  85. package/packages/scheduler/package.json +1 -1
  86. package/packages/scheduler-adapter/package.json +1 -1
  87. package/packages/session/package.json +1 -1
  88. package/packages/session-api/package.json +1 -1
  89. package/packages/session-export/package.json +1 -1
  90. package/packages/shared-context/package.json +1 -1
  91. package/packages/skill-mcp-client/package.json +1 -1
  92. package/packages/skill-registry/package.json +1 -1
  93. package/packages/skills/package.json +1 -1
  94. package/packages/sprint-planner/package.json +1 -1
  95. package/packages/subscription-engine/package.json +1 -1
  96. package/packages/task-compiler/package.json +1 -1
  97. package/packages/tencentdb-memory/package.json +1 -1
  98. package/packages/tencentdb-sync/dist/cli.d.ts +29 -1
  99. package/packages/tencentdb-sync/dist/cli.d.ts.map +1 -1
  100. package/packages/tencentdb-sync/dist/cli.js +64 -40
  101. package/packages/tencentdb-sync/dist/cli.js.map +1 -1
  102. package/packages/tencentdb-sync/package.json +1 -1
  103. package/packages/tencentdb-sync/src/cli.ts +78 -42
  104. package/packages/test-data-generator/package.json +1 -1
  105. package/packages/test-generator/package.json +1 -1
  106. package/packages/todo-bd-sync/package.json +1 -1
  107. package/packages/token-estimation/package.json +1 -1
  108. package/packages/token-optimizer/package.json +1 -1
  109. package/packages/tooling-preference/package.json +1 -1
  110. package/packages/trajectory/package.json +1 -1
  111. package/packages/tui/package.json +1 -1
  112. package/packages/two-phase-review/package.json +1 -1
  113. package/packages/types/package.json +1 -1
  114. package/packages/voice-api/package.json +1 -1
  115. package/packages/webmcp-tester/package.json +1 -1
  116. package/packages/wiki/package.json +1 -1
  117. package/packages/workflow-events/package.json +1 -1
  118. package/packages/workspace-scanner/package.json +1 -1
  119. package/packages/worktree/package.json +1 -1
  120. package/packages/write-review/package.json +1 -1
@@ -7,9 +7,10 @@
7
7
  import { readdirSync, readFileSync, statSync, existsSync } from "node:fs";
8
8
  import { join, basename, extname } from "node:path";
9
9
  import { homedir } from "node:os";
10
+ import { pathToFileURL } from "node:url";
10
11
  import { createTencentDBClient } from "./client.js";
11
12
 
12
- interface CliOptions {
13
+ export interface CliOptions {
13
14
  source: string;
14
15
  serverUrl: string;
15
16
  userKey: string;
@@ -17,6 +18,7 @@ interface CliOptions {
17
18
  watch: boolean;
18
19
  dryRun: boolean;
19
20
  force: boolean;
21
+ help: boolean;
20
22
  }
21
23
 
22
24
  interface SkillInfo {
@@ -113,10 +115,39 @@ function loadSkills(sourcePath: string): SkillInfo[] {
113
115
  }
114
116
 
115
117
  /**
116
- * Parse CLI arguments
118
+ * The help text of the command.
117
119
  */
118
- function parseArgs(): CliOptions {
119
- const args = process.argv.slice(2);
120
+ export const HELP_TEXT = `
121
+ TencentDB Sync CLI
122
+
123
+ Usage:
124
+ tencentdb-sync [options]
125
+
126
+ Options:
127
+ --source, -s <path> Skills directory to sync (required)
128
+ --server, --url <url> TencentDB server URL (from TENANTDB_URL env)
129
+ --key, -k <key> User key (from TENANTDB_USER_KEY env)
130
+ --service-id <id> Service ID (default: "default")
131
+ --watch, -w Watch for file changes
132
+ --dry-run, -n Show what would be synced
133
+ --force, -f Force sync even if unchanged
134
+ --help, -h Show this help
135
+
136
+ Environment:
137
+ TENANTDB_URL Server URL (e.g., https://memory.example.com)
138
+ TENANTDB_USER_KEY User key (sk-mem-xxx)
139
+ TENANTDB_SERVICE_ID Service ID (default: default)
140
+ TENANTDB_SOURCE Default skills source path
141
+ `;
142
+
143
+ /**
144
+ * Parse CLI arguments.
145
+ *
146
+ * The parser does not print and does not exit: the command decides what
147
+ * to do with `--help`, and a caller that imports this module gets a
148
+ * description of the options instead of a terminated process.
149
+ */
150
+ export function parseArgs(args: string[] = process.argv.slice(2)): CliOptions {
120
151
  const options: CliOptions = {
121
152
  source: "",
122
153
  serverUrl: process.env.TENANTDB_URL || process.env.MEMORY_SERVER_URL || "",
@@ -128,6 +159,7 @@ function parseArgs(): CliOptions {
128
159
  watch: false,
129
160
  dryRun: false,
130
161
  force: false,
162
+ help: false,
131
163
  };
132
164
 
133
165
  for (let i = 0; i < args.length; i++) {
@@ -162,29 +194,8 @@ function parseArgs(): CliOptions {
162
194
  break;
163
195
  case "--help":
164
196
  case "-h":
165
- console.log(`
166
- TencentDB Sync CLI
167
-
168
- Usage:
169
- tencentdb-sync [options]
170
-
171
- Options:
172
- --source, -s <path> Skills directory to sync (required)
173
- --server, --url <url> TencentDB server URL (from TENANTDB_URL env)
174
- --key, -k <key> User key (from TENANTDB_USER_KEY env)
175
- --service-id <id> Service ID (default: "default")
176
- --watch, -w Watch for file changes
177
- --dry-run, -n Show what would be synced
178
- --force, -f Force sync even if unchanged
179
- --help, -h Show this help
180
-
181
- Environment:
182
- TENANTDB_URL Server URL (e.g., https://memory.example.com)
183
- TENANTDB_USER_KEY User key (sk-mem-xxx)
184
- TENANTDB_SERVICE_ID Service ID (default: default)
185
- TENANTDB_SOURCE Default skills source path
186
- `);
187
- process.exit(0);
197
+ options.help = true;
198
+ break;
188
199
  }
189
200
  }
190
201
 
@@ -285,11 +296,9 @@ async function sync(options: CliOptions): Promise<void> {
285
296
  console.log();
286
297
 
287
298
  if (!options.serverUrl || !options.userKey) {
288
- console.error("Error: Missing TENANTDB_URL or TENANTDB_USER_KEY");
289
- console.error(
290
- `\nSet environment variables or use --server and --key options`,
299
+ throw new Error(
300
+ "Missing TENANTDB_URL or TENENTDB_USER_KEY\n\nSet environment variables or use --server and --key options",
291
301
  );
292
- process.exit(1);
293
302
  }
294
303
 
295
304
  // Create client
@@ -305,8 +314,7 @@ async function sync(options: CliOptions): Promise<void> {
305
314
  console.log(`Server status: ${health.status}`);
306
315
  if (health.version) console.log(`Version: ${health.version}`);
307
316
  } catch (error) {
308
- console.error(`Error: Cannot connect to server: ${error}`);
309
- process.exit(1);
317
+ throw new Error(`Cannot connect to server: ${error}`);
310
318
  }
311
319
 
312
320
  // Load skills
@@ -348,16 +356,44 @@ async function sync(options: CliOptions): Promise<void> {
348
356
  * Watch mode
349
357
  */
350
358
  async function watch(_options: CliOptions): Promise<void> {
351
- console.log("Watch mode not implemented yet.");
352
- console.log("Use --dry-run to preview what would be synced.");
353
- process.exit(1);
359
+ throw new Error(
360
+ "Watch mode not implemented yet. Use --dry-run to preview what would be synced.",
361
+ );
354
362
  }
355
363
 
356
- // Main
357
- const options = parseArgs();
364
+ /**
365
+ * Run the command.
366
+ *
367
+ * The command reports a failure by throwing, not by terminating the
368
+ * process: the caller decides what a failure means.
369
+ */
370
+ export async function main(
371
+ args: string[] = process.argv.slice(2),
372
+ ): Promise<void> {
373
+ const options = parseArgs(args);
374
+
375
+ if (options.help) {
376
+ console.log(HELP_TEXT);
377
+ return;
378
+ }
358
379
 
359
- if (options.watch) {
360
- watch(options);
361
- } else {
362
- sync(options);
380
+ if (options.watch) {
381
+ await watch(options);
382
+ return;
383
+ }
384
+
385
+ await sync(options);
386
+ }
387
+
388
+ // The command runs only when this file is the entry point. A module that
389
+ // imports it must not start a sync, and must not terminate the process
390
+ // of the importer.
391
+ const entry = process.argv[1];
392
+ if (entry && pathToFileURL(entry).href === import.meta.url) {
393
+ main().catch((error: unknown) => {
394
+ console.error(
395
+ `Error: ${error instanceof Error ? error.message : String(error)}`,
396
+ );
397
+ process.exit(1);
398
+ });
363
399
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/test-data-generator",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Test data generation for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/test-generator",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Auto-Test Generator — generate unit and E2E tests from source code (RFC-0013)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/todo-bd-sync",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Two-way sync between rpiv-todo overlay and bd issue tracker",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-estimation",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "pi-harness-runtime — token-estimation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-optimizer",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Token Budget Optimizer — maximize prompt value within token limits (RFC-0011)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tooling-preference",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "pi-harness-runtime — JS/TS tooling preference (Biome vs ESLint/Prettier) proposal",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/trajectory",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Trajectory capture for the write-review loop — persists cycle records for learning",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tui",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "pi-harness-runtime — tui",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/two-phase-review",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "pi-harness-runtime — two-phase implementation and review workflow (queue review signals, gate the phase, scope the diff)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/types",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Shared TypeScript types for pi-harness-runtime packages",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/voice-api",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "type": "module",
5
5
  "description": "Voice-to-text API using Whisper for Telegram and LINE integration",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/webmcp-tester",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "WebMCP-powered E2E testing for pi-harness - natural language test scenarios",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/wiki",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "LLM Wiki integration for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workflow-events",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workspace-scanner",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/worktree",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "pi-harness-runtime — worktree",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/write-review",
3
- "version": "1.1.442",
3
+ "version": "1.1.443",
4
4
  "description": "Two-agent write-review loop with blackboard coordination",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",