@miniidealab/openlogos 0.7.3 → 0.8.1
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.
- package/codex-plugin-template/plugin.json +10 -0
- package/codex-plugin-template/session-start.sh +125 -0
- package/dist/commands/change.d.ts +1 -1
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +75 -6
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +15 -1
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/init.d.ts +13 -4
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +181 -44
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/launch.d.ts +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +71 -16
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/module.d.ts +5 -0
- package/dist/commands/module.d.ts.map +1 -0
- package/dist/commands/module.js +231 -0
- package/dist/commands/module.js.map +1 -0
- package/dist/commands/next.d.ts +22 -0
- package/dist/commands/next.d.ts.map +1 -0
- package/dist/commands/next.js +195 -0
- package/dist/commands/next.js.map +1 -0
- package/dist/commands/status.d.ts +43 -2
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +351 -62
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +38 -5
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verify.js +2 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +95 -15
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/migrate-lifecycle.d.ts +13 -0
- package/dist/lib/migrate-lifecycle.d.ts.map +1 -0
- package/dist/lib/migrate-lifecycle.js +55 -0
- package/dist/lib/migrate-lifecycle.js.map +1 -0
- package/dist/lib/sync-resource-index.js +5 -5
- package/dist/lib/sync-resource-index.js.map +1 -1
- package/opencode-plugin-template/commands/openlogos-launch.md +8 -3
- package/opencode-plugin-template/openlogos.js +10 -1
- package/package.json +8 -4
- package/skills/architecture-designer/SKILL.en.md +1 -1
- package/skills/architecture-designer/SKILL.md +1 -1
- package/skills/prd-writer/SKILL.en.md +1 -1
- package/skills/prd-writer/SKILL.md +1 -1
- package/skills/product-designer/SKILL.en.md +1 -1
- package/skills/product-designer/SKILL.md +1 -1
- package/skills/scenario-architect/SKILL.en.md +2 -2
- package/skills/scenario-architect/SKILL.md +5 -5
- package/skills/test-writer/SKILL.en.md +1 -1
- package/skills/test-writer/SKILL.md +2 -2
- package/spec/change-management.md +5 -0
- package/spec/cli-json-output.md +63 -6
- package/spec/codex-plugin.md +138 -0
- package/spec/directory-convention.md +4 -2
- package/spec/logos-project.md +38 -5
- package/spec/module-naming-convention.md +72 -0
- package/spec/opencode-plugin.md +3 -3
- package/spec/workflow.md +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "openlogos",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "OpenLogos methodology — Why→What→How structured AI-driven development",
|
|
5
|
+
"interface": {
|
|
6
|
+
"display_name": "OpenLogos",
|
|
7
|
+
"short_description": "Structured development: PRD → Design → Scenarios → API → Code",
|
|
8
|
+
"default_prompt": ["What should I do next in the OpenLogos workflow?"]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# OpenLogos Codex Plugin — SessionStart hook
|
|
3
|
+
# Injects current phase and next-step context into the Codex session.
|
|
4
|
+
# Falls back silently (returns {}) if the CLI is unavailable or project is not initialized.
|
|
5
|
+
#
|
|
6
|
+
# Output format: {"systemMessage": "...", "hookSpecificOutput": {"hookEventName": "SessionStart", "additionalContext": "..."}}
|
|
7
|
+
# Codex uses systemMessage; additionalContext is included for forward compatibility.
|
|
8
|
+
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
if ! command -v openlogos &>/dev/null; then
|
|
12
|
+
echo "{}"
|
|
13
|
+
exit 0
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
if [ ! -f "logos/logos.config.json" ]; then
|
|
17
|
+
echo "{}"
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
STATUS=$(openlogos status --format json 2>/dev/null) || { echo "{}"; exit 0; }
|
|
22
|
+
|
|
23
|
+
# Parse JSON using python3 (preferred) or node
|
|
24
|
+
_py_parse() {
|
|
25
|
+
python3 -c "import sys,json; d=json.load(sys.stdin); $1" 2>/dev/null || echo "$2"
|
|
26
|
+
}
|
|
27
|
+
_node_parse() {
|
|
28
|
+
node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const r=JSON.parse(d);$1}catch(e){process.stdout.write('$2')}})" 2>/dev/null || echo "$2"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if command -v python3 &>/dev/null; then
|
|
32
|
+
LOCALE=$(python3 -c "import json; d=json.load(open('logos/logos.config.json')); print(d.get('locale','en'))" 2>/dev/null || echo "en")
|
|
33
|
+
LIFECYCLE=$(python3 -c "import json; d=json.load(open('logos/logos.config.json')); print(d.get('lifecycle','initial'))" 2>/dev/null || echo "initial")
|
|
34
|
+
PROJECT_NAME=$(python3 -c "import json; d=json.load(open('logos/logos.config.json')); print(d.get('name',''))" 2>/dev/null || echo "")
|
|
35
|
+
CURRENT_PHASE=$(echo "$STATUS" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('current_phase') or 'all-done')" 2>/dev/null || echo "unknown")
|
|
36
|
+
SUGGESTION=$(echo "$STATUS" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('suggestion','Run openlogos status for next steps'))" 2>/dev/null || echo "")
|
|
37
|
+
ALL_DONE=$(echo "$STATUS" | python3 -c "import sys,json; d=json.load(sys.stdin); print('true' if d.get('data',{}).get('all_done') else 'false')" 2>/dev/null || echo "false")
|
|
38
|
+
elif command -v node &>/dev/null; then
|
|
39
|
+
LOCALE=$(node -e "const d=JSON.parse(require('fs').readFileSync('logos/logos.config.json','utf-8')); console.log(d.locale||'en')" 2>/dev/null || echo "en")
|
|
40
|
+
LIFECYCLE=$(node -e "const d=JSON.parse(require('fs').readFileSync('logos/logos.config.json','utf-8')); console.log(d.lifecycle||'initial')" 2>/dev/null || echo "initial")
|
|
41
|
+
PROJECT_NAME=$(node -e "const d=JSON.parse(require('fs').readFileSync('logos/logos.config.json','utf-8')); console.log(d.name||'')" 2>/dev/null || echo "")
|
|
42
|
+
CURRENT_PHASE=$(echo "$STATUS" | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const r=JSON.parse(d);console.log((r.data||{}).current_phase||'all-done')}catch(e){console.log('unknown')}})" 2>/dev/null || echo "unknown")
|
|
43
|
+
SUGGESTION=$(echo "$STATUS" | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const r=JSON.parse(d);console.log((r.data||{}).suggestion||'')}catch(e){console.log('')}})" 2>/dev/null || echo "")
|
|
44
|
+
ALL_DONE=$(echo "$STATUS" | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const r=JSON.parse(d);console.log((r.data||{}).all_done?'true':'false')}catch(e){console.log('false')}})" 2>/dev/null || echo "false")
|
|
45
|
+
else
|
|
46
|
+
echo "{}"
|
|
47
|
+
exit 0
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# Language policy
|
|
51
|
+
if [ "$LOCALE" = "zh" ]; then
|
|
52
|
+
LANG_POLICY="Language Policy: ALL output MUST be in Chinese (中文)."
|
|
53
|
+
else
|
|
54
|
+
LANG_POLICY="Language Policy: ALL output MUST be in English."
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Change management status
|
|
58
|
+
GUARD_FILE="logos/.openlogos-guard"
|
|
59
|
+
CHANGE_MGMT=""
|
|
60
|
+
GUARD_STATUS=""
|
|
61
|
+
|
|
62
|
+
if [ "$LIFECYCLE" = "active" ] && [ -f "$GUARD_FILE" ]; then
|
|
63
|
+
if command -v python3 &>/dev/null; then
|
|
64
|
+
ACTIVE_CHANGE=$(python3 -c "import json; d=json.load(open('$GUARD_FILE')); print(d.get('activeChange',''))" 2>/dev/null || echo "")
|
|
65
|
+
elif command -v node &>/dev/null; then
|
|
66
|
+
ACTIVE_CHANGE=$(node -e "const d=JSON.parse(require('fs').readFileSync('$GUARD_FILE','utf-8')); console.log(d.activeChange||'')" 2>/dev/null || echo "")
|
|
67
|
+
else
|
|
68
|
+
ACTIVE_CHANGE=""
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
if [ -n "$ACTIVE_CHANGE" ]; then
|
|
72
|
+
GUARD_STATUS="🔓 Active change: $ACTIVE_CHANGE"
|
|
73
|
+
CHANGE_MGMT="Change Management: ACTIVE — guard file detected. Active change proposal: '$ACTIVE_CHANGE'. Only modify files within the scope of logos/changes/$ACTIVE_CHANGE/proposal.md. When done, run openlogos merge $ACTIVE_CHANGE then openlogos archive $ACTIVE_CHANGE."
|
|
74
|
+
else
|
|
75
|
+
GUARD_STATUS="⛔ NO active change proposal"
|
|
76
|
+
CHANGE_MGMT="Change Management: ACTIVE — ⛔ NO guard file found. Before modifying ANY source code, you MUST first run openlogos change <slug> to create a change proposal."
|
|
77
|
+
fi
|
|
78
|
+
elif [ "$LIFECYCLE" = "active" ]; then
|
|
79
|
+
GUARD_STATUS="⛔ NO active change proposal"
|
|
80
|
+
CHANGE_MGMT="Change Management: ACTIVE — ⛔ NO guard file found. Before modifying ANY source code, you MUST first run openlogos change <slug> to create a change proposal."
|
|
81
|
+
else
|
|
82
|
+
CHANGE_MGMT="Change Management: Initial development — follow Phase progression, no change proposals needed."
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# Build system message
|
|
86
|
+
if [ "$ALL_DONE" = "true" ]; then
|
|
87
|
+
STATUS_LINE="📊 OpenLogos: All phases complete"
|
|
88
|
+
elif [ -n "$GUARD_STATUS" ]; then
|
|
89
|
+
STATUS_LINE="📊 OpenLogos: $CURRENT_PHASE | $GUARD_STATUS"
|
|
90
|
+
else
|
|
91
|
+
STATUS_LINE="📊 OpenLogos: $CURRENT_PHASE"
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
# Build additional context
|
|
95
|
+
CONTEXT="=== OpenLogos Project Context ===
|
|
96
|
+
Project: $PROJECT_NAME
|
|
97
|
+
Locale: $LOCALE
|
|
98
|
+
Lifecycle: $LIFECYCLE
|
|
99
|
+
Current Phase: $CURRENT_PHASE
|
|
100
|
+
Suggested Next: $SUGGESTION
|
|
101
|
+
$LANG_POLICY
|
|
102
|
+
$CHANGE_MGMT
|
|
103
|
+
=== End OpenLogos Context ==="
|
|
104
|
+
|
|
105
|
+
# JSON-escape context and status line
|
|
106
|
+
if command -v python3 &>/dev/null; then
|
|
107
|
+
CONTEXT_ESCAPED=$(printf '%s' "$CONTEXT" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))" 2>/dev/null || echo '""')
|
|
108
|
+
SYS_MSG_ESCAPED=$(printf '%s' "$STATUS_LINE" | python3 -c "import sys,json; s=sys.stdin.read(); print(json.dumps(s)[1:-1])" 2>/dev/null || echo "$STATUS_LINE")
|
|
109
|
+
elif command -v node &>/dev/null; then
|
|
110
|
+
CONTEXT_ESCAPED=$(printf '%s' "$CONTEXT" | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>console.log(JSON.stringify(d)))" 2>/dev/null || echo '""')
|
|
111
|
+
SYS_MSG_ESCAPED=$(printf '%s' "$STATUS_LINE" | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const s=JSON.stringify(d);process.stdout.write(s.slice(1,-1))})" 2>/dev/null || echo "$STATUS_LINE")
|
|
112
|
+
else
|
|
113
|
+
CONTEXT_ESCAPED='""'
|
|
114
|
+
SYS_MSG_ESCAPED="$STATUS_LINE"
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
cat <<ENDJSON
|
|
118
|
+
{
|
|
119
|
+
"systemMessage": "$SYS_MSG_ESCAPED",
|
|
120
|
+
"hookSpecificOutput": {
|
|
121
|
+
"hookEventName": "SessionStart",
|
|
122
|
+
"additionalContext": $CONTEXT_ESCAPED
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
ENDJSON
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function change(slug?: string): void;
|
|
1
|
+
export declare function change(slug?: string, moduleArg?: string): void;
|
|
2
2
|
//# sourceMappingURL=change.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../src/commands/change.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../src/commands/change.ts"],"names":[],"mappings":"AAkCA,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,QAiGvD"}
|
package/dist/commands/change.js
CHANGED
|
@@ -1,7 +1,32 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync, existsSync } from 'node:fs';
|
|
1
|
+
import { mkdirSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { parse as parseYaml } from 'yaml';
|
|
3
4
|
import { readLocale, t, proposalTemplate, tasksTemplate } from '../i18n.js';
|
|
4
|
-
|
|
5
|
+
function resolveModule(root, moduleArg, locale) {
|
|
6
|
+
const yamlPath = join(root, 'logos', 'logos-project.yaml');
|
|
7
|
+
let modules = [];
|
|
8
|
+
if (existsSync(yamlPath)) {
|
|
9
|
+
try {
|
|
10
|
+
const yaml = parseYaml(readFileSync(yamlPath, 'utf-8'));
|
|
11
|
+
if (Array.isArray(yaml?.modules))
|
|
12
|
+
modules = yaml.modules;
|
|
13
|
+
}
|
|
14
|
+
catch { /* ignore */ }
|
|
15
|
+
}
|
|
16
|
+
if (moduleArg) {
|
|
17
|
+
if (!modules.find(m => m.id === moduleArg)) {
|
|
18
|
+
console.error(t(locale, 'change.moduleNotFound', { module: moduleArg }));
|
|
19
|
+
console.error(t(locale, 'change.moduleNotFoundHint'));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
return moduleArg;
|
|
23
|
+
}
|
|
24
|
+
if (modules.length === 1)
|
|
25
|
+
return modules[0].id;
|
|
26
|
+
const core = modules.find(m => m.id === 'core');
|
|
27
|
+
return core ? 'core' : (modules[0]?.id ?? 'core');
|
|
28
|
+
}
|
|
29
|
+
export function change(slug, moduleArg) {
|
|
5
30
|
const root = process.cwd();
|
|
6
31
|
const configPath = join(root, 'logos', 'logos.config.json');
|
|
7
32
|
if (!existsSync(configPath)) {
|
|
@@ -16,25 +41,69 @@ export function change(slug) {
|
|
|
16
41
|
process.exit(1);
|
|
17
42
|
}
|
|
18
43
|
const changePath = join(root, 'logos', 'changes', slug);
|
|
44
|
+
const locale = readLocale(root);
|
|
19
45
|
if (existsSync(changePath)) {
|
|
20
46
|
console.error(`Error: Change proposal '${slug}' already exists.`);
|
|
21
47
|
process.exit(1);
|
|
22
48
|
}
|
|
23
|
-
const
|
|
24
|
-
|
|
49
|
+
const guardPath = join(root, 'logos', '.openlogos-guard');
|
|
50
|
+
if (existsSync(guardPath)) {
|
|
51
|
+
try {
|
|
52
|
+
const guard = JSON.parse(readFileSync(guardPath, 'utf-8'));
|
|
53
|
+
const activeChange = typeof guard.activeChange === 'string' ? guard.activeChange : null;
|
|
54
|
+
const activeChangePath = activeChange ? join(root, 'logos', 'changes', activeChange) : null;
|
|
55
|
+
const archivedChangePath = activeChange ? join(root, 'logos', 'changes', 'archive', activeChange) : null;
|
|
56
|
+
if (activeChange && activeChangePath && archivedChangePath && existsSync(activeChangePath) && !existsSync(archivedChangePath)) {
|
|
57
|
+
console.error(t(locale, 'change.guardConflict', { activeChange }));
|
|
58
|
+
console.error(t(locale, 'change.guardConflictHint', { activeChange }));
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
console.error(t(locale, 'change.guardInvalid'));
|
|
64
|
+
console.error(t(locale, 'change.guardInvalidHint'));
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Resolve module
|
|
69
|
+
const yamlPath = join(root, 'logos', 'logos-project.yaml');
|
|
70
|
+
let allModules = [];
|
|
71
|
+
if (existsSync(yamlPath)) {
|
|
72
|
+
try {
|
|
73
|
+
const yaml = parseYaml(readFileSync(yamlPath, 'utf-8'));
|
|
74
|
+
if (Array.isArray(yaml?.modules))
|
|
75
|
+
allModules = yaml.modules;
|
|
76
|
+
}
|
|
77
|
+
catch { /* ignore */ }
|
|
78
|
+
}
|
|
79
|
+
const moduleId = resolveModule(root, moduleArg, locale);
|
|
80
|
+
// Print module assignment message
|
|
81
|
+
if (moduleArg) {
|
|
82
|
+
console.log(`\n${t(locale, 'change.creating', { slug })}`);
|
|
83
|
+
console.log(t(locale, 'change.moduleAssigned', { module: moduleId }));
|
|
84
|
+
}
|
|
85
|
+
else if (allModules.length === 1) {
|
|
86
|
+
console.log(`\n${t(locale, 'change.creating', { slug })}`);
|
|
87
|
+
console.log(t(locale, 'change.moduleAuto', { module: moduleId }));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(`\n${t(locale, 'change.creating', { slug })}`);
|
|
91
|
+
console.log(t(locale, 'change.moduleDefault', { module: moduleId }));
|
|
92
|
+
}
|
|
93
|
+
console.log('');
|
|
25
94
|
const deltaDirs = ['deltas/prd', 'deltas/api', 'deltas/database', 'deltas/scenario'];
|
|
26
95
|
mkdirSync(changePath, { recursive: true });
|
|
27
96
|
for (const dir of deltaDirs) {
|
|
28
97
|
mkdirSync(join(changePath, dir), { recursive: true });
|
|
29
98
|
}
|
|
30
|
-
writeFileSync(join(changePath, 'proposal.md'), proposalTemplate(locale, slug));
|
|
99
|
+
writeFileSync(join(changePath, 'proposal.md'), proposalTemplate(locale, slug, moduleId));
|
|
31
100
|
console.log(` ✓ logos/changes/${slug}/proposal.md`);
|
|
32
101
|
writeFileSync(join(changePath, 'tasks.md'), tasksTemplate(locale));
|
|
33
102
|
console.log(` ✓ logos/changes/${slug}/tasks.md`);
|
|
34
103
|
console.log(` ✓ logos/changes/${slug}/deltas/`);
|
|
35
|
-
const guardPath = join(root, 'logos', '.openlogos-guard');
|
|
36
104
|
const guard = JSON.stringify({
|
|
37
105
|
activeChange: slug,
|
|
106
|
+
module: moduleId,
|
|
38
107
|
createdAt: new Date().toISOString(),
|
|
39
108
|
}, null, 2);
|
|
40
109
|
writeFileSync(guardPath, guard);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change.js","sourceRoot":"","sources":["../../src/commands/change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"change.js","sourceRoot":"","sources":["../../src/commands/change.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,IAAI,CAAC;KACxD,GAAG,IAAI,CAAC;CACV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAsC1D;AAED,wBAAgB,MAAM,CAAC,MAAM,GAAE,YAAqB,QA4BnD"}
|
package/dist/commands/detect.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { parse as parseYaml } from 'yaml';
|
|
3
4
|
import { VERSION, makeEnvelope } from '../lib/json-output.js';
|
|
4
5
|
export function collectDetectData(root) {
|
|
5
6
|
const configPath = join(root, 'logos', 'logos.config.json');
|
|
@@ -7,10 +8,23 @@ export function collectDetectData(root) {
|
|
|
7
8
|
if (existsSync(configPath)) {
|
|
8
9
|
try {
|
|
9
10
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
11
|
+
// Derive lifecycle from modules
|
|
12
|
+
let lifecycle = 'initial';
|
|
13
|
+
const yamlPath = join(root, 'logos', 'logos-project.yaml');
|
|
14
|
+
if (existsSync(yamlPath)) {
|
|
15
|
+
try {
|
|
16
|
+
const yaml = parseYaml(readFileSync(yamlPath, 'utf-8'));
|
|
17
|
+
if (Array.isArray(yaml?.modules) &&
|
|
18
|
+
yaml.modules.some(m => m.lifecycle === 'launched')) {
|
|
19
|
+
lifecycle = 'launched';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch { /* ignore */ }
|
|
23
|
+
}
|
|
10
24
|
project = {
|
|
11
25
|
name: config.name ?? '',
|
|
12
26
|
locale: config.locale ?? 'en',
|
|
13
|
-
lifecycle
|
|
27
|
+
lifecycle,
|
|
14
28
|
description: config.description ?? '',
|
|
15
29
|
source_roots: config.sourceRoots ?? null,
|
|
16
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAiB9D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAE5D,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Locale } from '../i18n.js';
|
|
2
|
-
export type AiTool = 'claude-code' | 'opencode' | 'cursor' | 'other' | 'all';
|
|
2
|
+
export type AiTool = 'claude-code' | 'opencode' | 'codex' | 'cursor' | 'other' | 'all';
|
|
3
3
|
type NameSource = 'argument' | 'package.json' | 'Cargo.toml' | 'pyproject.toml' | 'directory';
|
|
4
4
|
interface NameResult {
|
|
5
5
|
name: string;
|
|
@@ -11,6 +11,14 @@ export declare const SKILL_NAMES: readonly ["project-init", "prd-writer", "produ
|
|
|
11
11
|
export declare function findSkillsSource(): string | null;
|
|
12
12
|
export declare function findSpecSource(): string | null;
|
|
13
13
|
export declare function findOpenCodePluginTemplateSource(): string | null;
|
|
14
|
+
export declare function findCodexPluginTemplateSource(): string | null;
|
|
15
|
+
export declare function deployCodexPlugin(root: string, locale?: Locale): {
|
|
16
|
+
target: string;
|
|
17
|
+
config: {
|
|
18
|
+
created: boolean;
|
|
19
|
+
updated: boolean;
|
|
20
|
+
};
|
|
21
|
+
} | null;
|
|
14
22
|
export declare function deployOpenCodePlugin(root: string, locale?: Locale): {
|
|
15
23
|
target: string;
|
|
16
24
|
config: {
|
|
@@ -22,15 +30,16 @@ export declare function deployOpenCodePlugin(root: string, locale?: Locale): {
|
|
|
22
30
|
export declare function deploySpecs(root: string): {
|
|
23
31
|
count: number;
|
|
24
32
|
} | null;
|
|
25
|
-
export declare function generatePolicyMdc(locale: Locale,
|
|
26
|
-
export declare function deploySkills(root: string, aiTool: AiTool, locale?: Locale,
|
|
33
|
+
export declare function generatePolicyMdc(locale: Locale, isLaunched?: boolean): string;
|
|
34
|
+
export declare function deploySkills(root: string, aiTool: AiTool, locale?: Locale, isLaunched?: boolean, skillsSource?: string): {
|
|
27
35
|
target: string;
|
|
28
36
|
count: number;
|
|
29
37
|
} | null;
|
|
38
|
+
/** @deprecated use isLaunched: boolean instead */
|
|
30
39
|
export type Lifecycle = 'initial' | 'active';
|
|
31
40
|
export declare function createLogosConfig(name: string, locale: Locale, aiTool?: AiTool): string;
|
|
32
41
|
export declare function createLogosProject(name: string, locale: Locale): string;
|
|
33
|
-
export declare function createAgentsMd(locale: Locale, aiTool?: AiTool, target?: 'agents' | 'claude',
|
|
42
|
+
export declare function createAgentsMd(locale: Locale, aiTool?: AiTool, target?: 'agents' | 'claude', isLaunched?: boolean): string;
|
|
34
43
|
export declare function init(name?: string, options?: {
|
|
35
44
|
locale?: string;
|
|
36
45
|
aiTool?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAiD,MAAM,YAAY,CAAC;AAExF,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAiD,MAAM,YAAY,CAAC;AAExF,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvF,KAAK,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE9F,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA+B9D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAI1D;AAwFD,eAAO,MAAM,WAAW,uPAcd,CAAC;AAkBX,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAahD;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAW9C;AAED,wBAAgB,gCAAgC,IAAI,MAAM,GAAG,IAAI,CAahE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,GAAG,IAAI,CAa7D;AAqCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,CAyBhJ;AAuDD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BzK;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAalE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM,CAkErF;AAYD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAa,EACrB,UAAU,GAAE,OAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgD1C;AA+KD,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAiB,GAAG,MAAM,CA2DjG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBvE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM,CAoJjI;AAED,wBAAsB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,iBAwGvF"}
|