@chenmk/superflow 0.5.6 → 0.5.8

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 (56) hide show
  1. package/README.md +12 -0
  2. package/README.zh-CN.md +10 -0
  3. package/assets/scripts/superflow-managed-command-guard.py +52 -17
  4. package/assets/scripts/superflow-managed-work-check.mjs +286 -126
  5. package/assets/skills/superflow-pipeline/references/managed-work.md +5 -0
  6. package/assets/skills-en/superflow-pipeline/references/managed-work.md +7 -0
  7. package/dist/app/cli.js +12 -0
  8. package/dist/app/cli.js.map +1 -1
  9. package/dist/app/commands/cleanup.js +17 -0
  10. package/dist/app/commands/cleanup.js.map +1 -0
  11. package/dist/app/commands/pipeline.js +16 -5
  12. package/dist/app/commands/pipeline.js.map +1 -1
  13. package/dist/app/commands/status.js +7 -1
  14. package/dist/app/commands/status.js.map +1 -1
  15. package/dist/domains/config/cli-help.js +8 -0
  16. package/dist/domains/config/cli-help.js.map +1 -1
  17. package/dist/domains/managed-work/acceptance-contract.js +139 -0
  18. package/dist/domains/managed-work/acceptance-contract.js.map +1 -0
  19. package/dist/domains/managed-work/cleanup.js +247 -0
  20. package/dist/domains/managed-work/cleanup.js.map +1 -0
  21. package/dist/domains/managed-work/context-manifest.js +26 -0
  22. package/dist/domains/managed-work/context-manifest.js.map +1 -1
  23. package/dist/domains/managed-work/contract.js +40 -4
  24. package/dist/domains/managed-work/contract.js.map +1 -1
  25. package/dist/domains/managed-work/control.js +82 -5
  26. package/dist/domains/managed-work/control.js.map +1 -1
  27. package/dist/domains/managed-work/execution-contract.js +33 -4
  28. package/dist/domains/managed-work/execution-contract.js.map +1 -1
  29. package/dist/domains/managed-work/executor-policy.js +1 -0
  30. package/dist/domains/managed-work/executor-policy.js.map +1 -1
  31. package/dist/domains/managed-work/host-review.js +4 -0
  32. package/dist/domains/managed-work/host-review.js.map +1 -1
  33. package/dist/domains/managed-work/journal.js +3 -2
  34. package/dist/domains/managed-work/journal.js.map +1 -1
  35. package/dist/domains/managed-work/prompts.js +52 -0
  36. package/dist/domains/managed-work/prompts.js.map +1 -1
  37. package/dist/domains/managed-work/review-facts.js +85 -1
  38. package/dist/domains/managed-work/review-facts.js.map +1 -1
  39. package/dist/domains/managed-work/runner.js +17 -7
  40. package/dist/domains/managed-work/runner.js.map +1 -1
  41. package/dist/domains/managed-work/schemas.js +26 -1
  42. package/dist/domains/managed-work/schemas.js.map +1 -1
  43. package/dist/domains/managed-work/state.js +1 -0
  44. package/dist/domains/managed-work/state.js.map +1 -1
  45. package/dist/domains/managed-work/storage.js +68 -0
  46. package/dist/domains/managed-work/storage.js.map +1 -1
  47. package/dist/domains/managed-work/time-format.js +69 -0
  48. package/dist/domains/managed-work/time-format.js.map +1 -0
  49. package/dist/domains/managed-work/types.js.map +1 -1
  50. package/dist/mcp/server.js +42 -1
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/platform/agent-process.js +21 -0
  53. package/dist/platform/agent-process.js.map +1 -1
  54. package/dist/platform/codex-config.js +91 -0
  55. package/dist/platform/codex-config.js.map +1 -0
  56. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ import { existsSync, readFileSync } from "fs";
2
+ import os from "os";
3
+ import path from "path";
4
+ const REASONING_EFFORTS = new Set([
5
+ "minimal",
6
+ "low",
7
+ "medium",
8
+ "high",
9
+ "xhigh",
10
+ "max",
11
+ "ultra",
12
+ ]);
13
+ export function resolveCodexExecutorConfig(env = process.env) {
14
+ const home = env.CODEX_HOME?.trim() || path.join(os.homedir(), ".codex");
15
+ const file = path.join(home, "config.toml");
16
+ if (!existsSync(file)) {
17
+ return {
18
+ model: null,
19
+ reasoningEffort: null,
20
+ provider: null,
21
+ source: "unknown",
22
+ confirmed: false,
23
+ };
24
+ }
25
+ let content;
26
+ try {
27
+ content = readFileSync(file, "utf8");
28
+ }
29
+ catch {
30
+ return {
31
+ model: null,
32
+ reasoningEffort: null,
33
+ provider: null,
34
+ source: "unknown",
35
+ confirmed: false,
36
+ };
37
+ }
38
+ const model = tomlString(content, "model");
39
+ const reasoning = tomlString(content, "model_reasoning_effort");
40
+ const provider = tomlString(content, "model_provider");
41
+ return {
42
+ model,
43
+ reasoningEffort: reasoning && REASONING_EFFORTS.has(reasoning)
44
+ ? reasoning
45
+ : null,
46
+ provider,
47
+ source: "codex_config",
48
+ confirmed: false,
49
+ };
50
+ }
51
+ export function resolveClaudeExecutorConfig(env = process.env) {
52
+ const claudeHome = env.CLAUDE_CONFIG_DIR?.trim() || path.join(os.homedir(), ".claude");
53
+ const file = path.join(claudeHome, "settings.json");
54
+ let settings = {};
55
+ try {
56
+ settings = JSON.parse(readFileSync(file, "utf8"));
57
+ }
58
+ catch {
59
+ // Claude supports environment-only configuration; absent or invalid local
60
+ // settings must remain visible as unknown instead of being guessed.
61
+ }
62
+ const settingsEnv = objectValue(settings.env);
63
+ const model = stringValue(env.ANTHROPIC_MODEL) ??
64
+ stringValue(settingsEnv.ANTHROPIC_MODEL) ??
65
+ stringValue(settings.model);
66
+ const effort = stringValue(env.CLAUDE_CODE_EFFORT_LEVEL) ??
67
+ stringValue(settingsEnv.CLAUDE_CODE_EFFORT_LEVEL);
68
+ return {
69
+ model,
70
+ reasoningEffort: effort && REASONING_EFFORTS.has(effort)
71
+ ? effort
72
+ : null,
73
+ provider: stringValue(env.ANTHROPIC_BASE_URL) ??
74
+ stringValue(settingsEnv.ANTHROPIC_BASE_URL),
75
+ source: model || effort ? "claude_config" : "unknown",
76
+ confirmed: false,
77
+ };
78
+ }
79
+ function tomlString(content, key) {
80
+ const match = content.match(new RegExp(`^\\s*${key}\\s*=\\s*["']([^"']+)["']`, "m"));
81
+ return match?.[1]?.trim() || null;
82
+ }
83
+ function objectValue(value) {
84
+ return value && typeof value === "object" && !Array.isArray(value)
85
+ ? value
86
+ : {};
87
+ }
88
+ function stringValue(value) {
89
+ return typeof value === "string" && value.trim() ? value.trim() : null;
90
+ }
91
+ //# sourceMappingURL=codex-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-config.js","sourceRoot":"","sources":["../../src/platform/codex-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chenmk/superflow",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "SuperBridge Flow workflow CLI for Claude Code and Codex",
5
5
  "license": "MIT",
6
6
  "type": "module",