@askexenow/exe-os 0.9.86 → 0.9.87
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/dist/bin/agentic-ontology-backfill.js +18 -0
- package/dist/bin/agentic-reflection-backfill.js +18 -0
- package/dist/bin/agentic-semantic-label.js +18 -0
- package/dist/bin/backfill-conversations.js +18 -0
- package/dist/bin/backfill-responses.js +18 -0
- package/dist/bin/backfill-vectors.js +18 -0
- package/dist/bin/bulk-sync-postgres.js +18 -0
- package/dist/bin/cleanup-stale-review-tasks.js +18 -0
- package/dist/bin/cli.js +187 -4
- package/dist/bin/exe-agent.js +18 -0
- package/dist/bin/exe-assign.js +18 -0
- package/dist/bin/exe-boot.js +18 -0
- package/dist/bin/exe-call.js +18 -0
- package/dist/bin/exe-cloud.js +18 -0
- package/dist/bin/exe-dispatch.js +18 -0
- package/dist/bin/exe-doctor.js +18 -0
- package/dist/bin/exe-export-behaviors.js +18 -0
- package/dist/bin/exe-forget.js +18 -0
- package/dist/bin/exe-gateway.js +18 -0
- package/dist/bin/exe-heartbeat.js +18 -0
- package/dist/bin/exe-kill.js +18 -0
- package/dist/bin/exe-launch-agent.js +18 -0
- package/dist/bin/exe-new-employee.js +33 -2
- package/dist/bin/exe-pending-messages.js +18 -0
- package/dist/bin/exe-pending-notifications.js +18 -0
- package/dist/bin/exe-pending-reviews.js +18 -0
- package/dist/bin/exe-rename.js +18 -0
- package/dist/bin/exe-review.js +18 -0
- package/dist/bin/exe-search.js +18 -0
- package/dist/bin/exe-session-cleanup.js +18 -0
- package/dist/bin/exe-start-codex.js +18 -0
- package/dist/bin/exe-start-opencode.js +18 -0
- package/dist/bin/exe-status.js +18 -0
- package/dist/bin/exe-team.js +18 -0
- package/dist/bin/git-sweep.js +18 -0
- package/dist/bin/graph-backfill.js +18 -0
- package/dist/bin/graph-export.js +18 -0
- package/dist/bin/install.js +9 -0
- package/dist/bin/intercom-check.js +18 -0
- package/dist/bin/scan-tasks.js +18 -0
- package/dist/bin/setup.js +24 -2
- package/dist/bin/shard-migrate.js +18 -0
- package/dist/gateway/index.js +18 -0
- package/dist/hooks/bug-report-worker.js +18 -0
- package/dist/hooks/codex-stop-task-finalizer.js +18 -0
- package/dist/hooks/commit-complete.js +18 -0
- package/dist/hooks/error-recall.js +18 -0
- package/dist/hooks/ingest.js +18 -0
- package/dist/hooks/instructions-loaded.js +18 -0
- package/dist/hooks/notification.js +18 -0
- package/dist/hooks/post-compact.js +18 -0
- package/dist/hooks/post-tool-combined.js +18 -0
- package/dist/hooks/pre-compact.js +18 -0
- package/dist/hooks/pre-tool-use.js +18 -0
- package/dist/hooks/prompt-submit.js +18 -0
- package/dist/hooks/session-end.js +18 -0
- package/dist/hooks/session-start.js +18 -0
- package/dist/hooks/stop.js +18 -0
- package/dist/hooks/subagent-stop.js +18 -0
- package/dist/hooks/summary-worker.js +18 -0
- package/dist/index.js +18 -0
- package/dist/lib/employee-templates.js +18 -0
- package/dist/lib/exe-daemon.js +712 -169
- package/dist/lib/hybrid-search.js +18 -0
- package/dist/lib/identity-templates.js +6 -2
- package/dist/lib/schedules.js +18 -0
- package/dist/lib/store.js +18 -0
- package/dist/mcp/server.js +670 -143
- package/dist/mcp/tools/create-task.js +6 -2
- package/dist/runtime/index.js +18 -0
- package/dist/tui/App.js +18 -0
- package/package.json +1 -1
|
@@ -3382,6 +3382,24 @@ var init_platform_procedures = __esm({
|
|
|
3382
3382
|
priority: "p0",
|
|
3383
3383
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3384
3384
|
},
|
|
3385
|
+
{
|
|
3386
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3387
|
+
domain: "support",
|
|
3388
|
+
priority: "p1",
|
|
3389
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3390
|
+
},
|
|
3391
|
+
{
|
|
3392
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3393
|
+
domain: "support",
|
|
3394
|
+
priority: "p0",
|
|
3395
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3396
|
+
},
|
|
3397
|
+
{
|
|
3398
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3399
|
+
domain: "support",
|
|
3400
|
+
priority: "p1",
|
|
3401
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3402
|
+
},
|
|
3385
3403
|
// --- Operations ---
|
|
3386
3404
|
{
|
|
3387
3405
|
title: "Managers must supervise deployed workers",
|
|
@@ -3382,6 +3382,24 @@ var init_platform_procedures = __esm({
|
|
|
3382
3382
|
priority: "p0",
|
|
3383
3383
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3384
3384
|
},
|
|
3385
|
+
{
|
|
3386
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3387
|
+
domain: "support",
|
|
3388
|
+
priority: "p1",
|
|
3389
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3390
|
+
},
|
|
3391
|
+
{
|
|
3392
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3393
|
+
domain: "support",
|
|
3394
|
+
priority: "p0",
|
|
3395
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3396
|
+
},
|
|
3397
|
+
{
|
|
3398
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3399
|
+
domain: "support",
|
|
3400
|
+
priority: "p1",
|
|
3401
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3402
|
+
},
|
|
3385
3403
|
// --- Operations ---
|
|
3386
3404
|
{
|
|
3387
3405
|
title: "Managers must supervise deployed workers",
|
|
@@ -3382,6 +3382,24 @@ var init_platform_procedures = __esm({
|
|
|
3382
3382
|
priority: "p0",
|
|
3383
3383
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3384
3384
|
},
|
|
3385
|
+
{
|
|
3386
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3387
|
+
domain: "support",
|
|
3388
|
+
priority: "p1",
|
|
3389
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3390
|
+
},
|
|
3391
|
+
{
|
|
3392
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3393
|
+
domain: "support",
|
|
3394
|
+
priority: "p0",
|
|
3395
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3396
|
+
},
|
|
3397
|
+
{
|
|
3398
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3399
|
+
domain: "support",
|
|
3400
|
+
priority: "p1",
|
|
3401
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3402
|
+
},
|
|
3385
3403
|
// --- Operations ---
|
|
3386
3404
|
{
|
|
3387
3405
|
title: "Managers must supervise deployed workers",
|
|
@@ -3522,6 +3522,24 @@ var init_platform_procedures = __esm({
|
|
|
3522
3522
|
priority: "p0",
|
|
3523
3523
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3524
3524
|
},
|
|
3525
|
+
{
|
|
3526
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3527
|
+
domain: "support",
|
|
3528
|
+
priority: "p1",
|
|
3529
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3530
|
+
},
|
|
3531
|
+
{
|
|
3532
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3533
|
+
domain: "support",
|
|
3534
|
+
priority: "p0",
|
|
3535
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3536
|
+
},
|
|
3537
|
+
{
|
|
3538
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3539
|
+
domain: "support",
|
|
3540
|
+
priority: "p1",
|
|
3541
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3542
|
+
},
|
|
3525
3543
|
// --- Operations ---
|
|
3526
3544
|
{
|
|
3527
3545
|
title: "Managers must supervise deployed workers",
|
|
@@ -3522,6 +3522,24 @@ var init_platform_procedures = __esm({
|
|
|
3522
3522
|
priority: "p0",
|
|
3523
3523
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3524
3524
|
},
|
|
3525
|
+
{
|
|
3526
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3527
|
+
domain: "support",
|
|
3528
|
+
priority: "p1",
|
|
3529
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3530
|
+
},
|
|
3531
|
+
{
|
|
3532
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3533
|
+
domain: "support",
|
|
3534
|
+
priority: "p0",
|
|
3535
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3536
|
+
},
|
|
3537
|
+
{
|
|
3538
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3539
|
+
domain: "support",
|
|
3540
|
+
priority: "p1",
|
|
3541
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3542
|
+
},
|
|
3525
3543
|
// --- Operations ---
|
|
3526
3544
|
{
|
|
3527
3545
|
title: "Managers must supervise deployed workers",
|
|
@@ -3518,6 +3518,24 @@ var init_platform_procedures = __esm({
|
|
|
3518
3518
|
priority: "p0",
|
|
3519
3519
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3520
3520
|
},
|
|
3521
|
+
{
|
|
3522
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3523
|
+
domain: "support",
|
|
3524
|
+
priority: "p1",
|
|
3525
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3526
|
+
},
|
|
3527
|
+
{
|
|
3528
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3529
|
+
domain: "support",
|
|
3530
|
+
priority: "p0",
|
|
3531
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3532
|
+
},
|
|
3533
|
+
{
|
|
3534
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3535
|
+
domain: "support",
|
|
3536
|
+
priority: "p1",
|
|
3537
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3538
|
+
},
|
|
3521
3539
|
// --- Operations ---
|
|
3522
3540
|
{
|
|
3523
3541
|
title: "Managers must supervise deployed workers",
|
|
@@ -3690,6 +3690,24 @@ var init_platform_procedures = __esm({
|
|
|
3690
3690
|
priority: "p0",
|
|
3691
3691
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3692
3692
|
},
|
|
3693
|
+
{
|
|
3694
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3695
|
+
domain: "support",
|
|
3696
|
+
priority: "p1",
|
|
3697
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3698
|
+
},
|
|
3699
|
+
{
|
|
3700
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3701
|
+
domain: "support",
|
|
3702
|
+
priority: "p0",
|
|
3703
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3704
|
+
},
|
|
3705
|
+
{
|
|
3706
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3707
|
+
domain: "support",
|
|
3708
|
+
priority: "p1",
|
|
3709
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3710
|
+
},
|
|
3693
3711
|
// --- Operations ---
|
|
3694
3712
|
{
|
|
3695
3713
|
title: "Managers must supervise deployed workers",
|
|
@@ -4165,6 +4165,24 @@ var init_platform_procedures = __esm({
|
|
|
4165
4165
|
priority: "p0",
|
|
4166
4166
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
4167
4167
|
},
|
|
4168
|
+
{
|
|
4169
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
4170
|
+
domain: "support",
|
|
4171
|
+
priority: "p1",
|
|
4172
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
4173
|
+
},
|
|
4174
|
+
{
|
|
4175
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
4176
|
+
domain: "support",
|
|
4177
|
+
priority: "p0",
|
|
4178
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
4179
|
+
},
|
|
4180
|
+
{
|
|
4181
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
4182
|
+
domain: "support",
|
|
4183
|
+
priority: "p1",
|
|
4184
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
4185
|
+
},
|
|
4168
4186
|
// --- Operations ---
|
|
4169
4187
|
{
|
|
4170
4188
|
title: "Managers must supervise deployed workers",
|
package/dist/bin/cli.js
CHANGED
|
@@ -1229,6 +1229,15 @@ async function registerMcpServer(packageRoot, homeDir = os6.homedir()) {
|
|
|
1229
1229
|
delete claudeJson.mcpServers[MCP_LEGACY_KEY];
|
|
1230
1230
|
process.stderr.write("exe-os: migrated MCP server key exe-mem \u2192 exe-os\n");
|
|
1231
1231
|
}
|
|
1232
|
+
if (claudeJson.projects) {
|
|
1233
|
+
for (const [projectPath, projectConfig] of Object.entries(claudeJson.projects)) {
|
|
1234
|
+
if (projectConfig.mcpServers?.[MCP_LEGACY_KEY]) {
|
|
1235
|
+
delete projectConfig.mcpServers[MCP_LEGACY_KEY];
|
|
1236
|
+
process.stderr.write(`exe-os: removed stale project-level exe-mem from ${projectPath}
|
|
1237
|
+
`);
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1232
1241
|
const currentOs = claudeJson.mcpServers[MCP_PRIMARY_KEY];
|
|
1233
1242
|
const osMatches = currentOs && JSON.stringify(currentOs) === JSON.stringify(newEntry);
|
|
1234
1243
|
if (osMatches) {
|
|
@@ -8719,6 +8728,24 @@ var init_platform_procedures = __esm({
|
|
|
8719
8728
|
priority: "p0",
|
|
8720
8729
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
8721
8730
|
},
|
|
8731
|
+
{
|
|
8732
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
8733
|
+
domain: "support",
|
|
8734
|
+
priority: "p1",
|
|
8735
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
8736
|
+
},
|
|
8737
|
+
{
|
|
8738
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
8739
|
+
domain: "support",
|
|
8740
|
+
priority: "p0",
|
|
8741
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
8742
|
+
},
|
|
8743
|
+
{
|
|
8744
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
8745
|
+
domain: "support",
|
|
8746
|
+
priority: "p1",
|
|
8747
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
8748
|
+
},
|
|
8722
8749
|
// --- Operations ---
|
|
8723
8750
|
{
|
|
8724
8751
|
title: "Managers must supervise deployed workers",
|
|
@@ -18017,12 +18044,14 @@ On EVERY new conversation, before doing anything else:
|
|
|
18017
18044
|
1. **Memory scan**: Run recall_my_memory with broad queries \u2014 "project", "client", "pipeline", "campaign", "deal", "decision", "blocker". Summarize what you find.
|
|
18018
18045
|
2. **Task scan**: Run list_tasks to see what's open, in progress, blocked, or needs review across all employees.
|
|
18019
18046
|
3. **Team check**: Run ask_team_memory for recent activity from CTO/CMO/engineers.
|
|
18020
|
-
4. **
|
|
18047
|
+
4. **Bug fix check** (one-time, never repeat): Call list_my_bug_reports to see if AskExe has fixed any previously filed bugs. If any have status "fixed" with a fixed_version, tell the founder: "\u{1F527} N bug fix(es) available \u2014 run \`exe-os update\` to get version X.Y.Z." Skip silently if none or if the call fails.
|
|
18048
|
+
5. **Present the brief**: Give the founder a concise status report:
|
|
18021
18049
|
- What's active and progressing
|
|
18022
18050
|
- What's blocked and needs attention
|
|
18023
18051
|
- What decisions are pending
|
|
18052
|
+
- Available bug fixes (from step 4, if any)
|
|
18024
18053
|
- What you recommend doing next
|
|
18025
|
-
|
|
18054
|
+
6. Then ask: "What's the priority?"
|
|
18026
18055
|
|
|
18027
18056
|
If this is your FIRST ever conversation (few or no prior memories):
|
|
18028
18057
|
- Search more broadly: "product", "SEO", "meeting", "strategy", "revenue"
|
|
@@ -18042,6 +18071,8 @@ Never say "I have no memories" without first searching broadly. Your memory may
|
|
|
18042
18071
|
- **get_identity** \u2014 read any agent's identity for coordination
|
|
18043
18072
|
- **set_agent_config** \u2014 view or change which tool (Claude Code, Codex, OpenCode) and model each agent uses. Call with no args to show all agents' current settings. Call with agent_id + runtime + model to change.
|
|
18044
18073
|
- **send_message** \u2014 direct intercom to employees
|
|
18074
|
+
- **create_bug_report** \u2014 file a bug when you encounter an Exe OS platform issue
|
|
18075
|
+
- **list_my_bug_reports** \u2014 check status of filed bugs (boot check: surface available fixes to founder)
|
|
18045
18076
|
${PLAN_MODE_COMPAT}
|
|
18046
18077
|
## Completion Workflow
|
|
18047
18078
|
|
|
@@ -35190,16 +35221,89 @@ var code_context_index_exports = {};
|
|
|
35190
35221
|
__export(code_context_index_exports, {
|
|
35191
35222
|
analyzeBlastRadius: () => analyzeBlastRadius,
|
|
35192
35223
|
buildCodeContextIndex: () => buildCodeContextIndex,
|
|
35224
|
+
buildCodeContextIndexWithEmbeddings: () => buildCodeContextIndexWithEmbeddings,
|
|
35193
35225
|
getCodeContextIndexPath: () => getCodeContextIndexPath,
|
|
35194
35226
|
getCodeContextStats: () => getCodeContextStats,
|
|
35195
35227
|
loadOrBuildCodeContextIndex: () => loadOrBuildCodeContextIndex,
|
|
35196
35228
|
searchCodeContext: () => searchCodeContext,
|
|
35229
|
+
searchCodeContextSemantic: () => searchCodeContextSemantic,
|
|
35197
35230
|
traceCodeSymbol: () => traceCodeSymbol
|
|
35198
35231
|
});
|
|
35199
35232
|
import crypto14 from "crypto";
|
|
35200
35233
|
import path51 from "path";
|
|
35201
35234
|
import { existsSync as existsSync36, mkdirSync as mkdirSync25, readFileSync as readFileSync32, readdirSync as readdirSync11, statSync as statSync7, writeFileSync as writeFileSync26 } from "fs";
|
|
35202
35235
|
import { spawnSync as spawnSync3 } from "child_process";
|
|
35236
|
+
function vectorStorePath(projectRoot) {
|
|
35237
|
+
const rootHash = hashText(projectRoot).slice(0, 16);
|
|
35238
|
+
return path51.join(indexDir(), `${rootHash}.vectors.json`);
|
|
35239
|
+
}
|
|
35240
|
+
function loadVectorStore(projectRoot) {
|
|
35241
|
+
const file = vectorStorePath(projectRoot);
|
|
35242
|
+
if (!existsSync36(file)) return null;
|
|
35243
|
+
try {
|
|
35244
|
+
const parsed = JSON.parse(readFileSync32(file, "utf8"));
|
|
35245
|
+
if (parsed.version !== VECTOR_STORE_VERSION) return null;
|
|
35246
|
+
return parsed;
|
|
35247
|
+
} catch {
|
|
35248
|
+
return null;
|
|
35249
|
+
}
|
|
35250
|
+
}
|
|
35251
|
+
function saveVectorStore(projectRoot, store) {
|
|
35252
|
+
writeFileSync26(vectorStorePath(projectRoot), JSON.stringify(store));
|
|
35253
|
+
}
|
|
35254
|
+
function cosineSimilarity(a, b) {
|
|
35255
|
+
let dot = 0, normA = 0, normB = 0;
|
|
35256
|
+
for (let i = 0; i < a.length; i++) {
|
|
35257
|
+
dot += a[i] * b[i];
|
|
35258
|
+
normA += a[i] * a[i];
|
|
35259
|
+
normB += b[i] * b[i];
|
|
35260
|
+
}
|
|
35261
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
35262
|
+
return denom === 0 ? 0 : dot / denom;
|
|
35263
|
+
}
|
|
35264
|
+
async function embedSymbols(index) {
|
|
35265
|
+
const rootHash = hashText(index.projectRoot).slice(0, 16);
|
|
35266
|
+
const existing = loadVectorStore(index.projectRoot);
|
|
35267
|
+
const store = {
|
|
35268
|
+
version: VECTOR_STORE_VERSION,
|
|
35269
|
+
projectRootHash: rootHash,
|
|
35270
|
+
vectors: {}
|
|
35271
|
+
};
|
|
35272
|
+
const allSymbols = [];
|
|
35273
|
+
for (const file of Object.values(index.files)) {
|
|
35274
|
+
for (const symbol of file.symbols) {
|
|
35275
|
+
if (existing?.vectors[symbol.id]) {
|
|
35276
|
+
store.vectors[symbol.id] = existing.vectors[symbol.id];
|
|
35277
|
+
} else {
|
|
35278
|
+
allSymbols.push({ id: symbol.id, text: symbol.summary || `${symbol.kind} ${symbol.name} in ${symbol.filePath}` });
|
|
35279
|
+
}
|
|
35280
|
+
}
|
|
35281
|
+
}
|
|
35282
|
+
if (allSymbols.length === 0) {
|
|
35283
|
+
saveVectorStore(index.projectRoot, store);
|
|
35284
|
+
return store;
|
|
35285
|
+
}
|
|
35286
|
+
const connected = await connectEmbedDaemon().catch(() => false);
|
|
35287
|
+
if (!connected) {
|
|
35288
|
+
saveVectorStore(index.projectRoot, store);
|
|
35289
|
+
return store;
|
|
35290
|
+
}
|
|
35291
|
+
for (let i = 0; i < allSymbols.length; i += EMBED_BATCH_SIZE) {
|
|
35292
|
+
const batch = allSymbols.slice(i, i + EMBED_BATCH_SIZE);
|
|
35293
|
+
const texts = batch.map((s) => s.text);
|
|
35294
|
+
try {
|
|
35295
|
+
const vectors = await embedBatchViaClient(texts, "low");
|
|
35296
|
+
if (vectors && vectors.length === batch.length) {
|
|
35297
|
+
for (let j = 0; j < batch.length; j++) {
|
|
35298
|
+
store.vectors[batch[j].id] = vectors[j];
|
|
35299
|
+
}
|
|
35300
|
+
}
|
|
35301
|
+
} catch {
|
|
35302
|
+
}
|
|
35303
|
+
}
|
|
35304
|
+
saveVectorStore(index.projectRoot, store);
|
|
35305
|
+
return store;
|
|
35306
|
+
}
|
|
35203
35307
|
function normalizeProjectRoot(projectRoot) {
|
|
35204
35308
|
return path51.resolve(projectRoot || process.cwd());
|
|
35205
35309
|
}
|
|
@@ -35475,7 +35579,7 @@ function filteredFiles(index, options = {}) {
|
|
|
35475
35579
|
return matchesPath(file.path, options.paths);
|
|
35476
35580
|
});
|
|
35477
35581
|
}
|
|
35478
|
-
function
|
|
35582
|
+
function lexicalSearch(query, options = {}) {
|
|
35479
35583
|
const terms = tokenize2(query);
|
|
35480
35584
|
if (terms.length === 0) return [];
|
|
35481
35585
|
const index = loadOrBuildCodeContextIndex({ projectRoot: options.projectRoot, force: options.force || options.refreshIndex, maxFiles: options.maxFiles });
|
|
@@ -35501,6 +35605,81 @@ function searchCodeContext(query, options = {}) {
|
|
|
35501
35605
|
const limit = options.limit ?? 20;
|
|
35502
35606
|
return results.sort((a, b) => b.score - a.score || a.filePath.localeCompare(b.filePath)).slice(offset, offset + limit);
|
|
35503
35607
|
}
|
|
35608
|
+
function searchCodeContext(query, options = {}) {
|
|
35609
|
+
return lexicalSearch(query, options);
|
|
35610
|
+
}
|
|
35611
|
+
async function searchCodeContextSemantic(query, options = {}) {
|
|
35612
|
+
const terms = tokenize2(query);
|
|
35613
|
+
if (terms.length === 0) return [];
|
|
35614
|
+
const index = loadOrBuildCodeContextIndex({ projectRoot: options.projectRoot, force: options.force || options.refreshIndex, maxFiles: options.maxFiles });
|
|
35615
|
+
const projectRoot = normalizeProjectRoot(options.projectRoot);
|
|
35616
|
+
const vectorStore = loadVectorStore(projectRoot);
|
|
35617
|
+
if (!vectorStore || Object.keys(vectorStore.vectors).length === 0) {
|
|
35618
|
+
return lexicalSearch(query, options);
|
|
35619
|
+
}
|
|
35620
|
+
let queryVector = null;
|
|
35621
|
+
try {
|
|
35622
|
+
const connected = await connectEmbedDaemon().catch(() => false);
|
|
35623
|
+
if (connected) {
|
|
35624
|
+
const result = await embedBatchViaClient([query], "high");
|
|
35625
|
+
if (result && result.length === 1) queryVector = result[0];
|
|
35626
|
+
}
|
|
35627
|
+
} catch {
|
|
35628
|
+
}
|
|
35629
|
+
if (!queryVector) return lexicalSearch(query, options);
|
|
35630
|
+
const files = filteredFiles(index, options);
|
|
35631
|
+
const candidates = [];
|
|
35632
|
+
for (const file of files) {
|
|
35633
|
+
for (const symbol of file.symbols) {
|
|
35634
|
+
const lexical = scoreSymbol(symbol, terms);
|
|
35635
|
+
const vec = vectorStore.vectors[symbol.id];
|
|
35636
|
+
const vectorScore = vec ? cosineSimilarity(queryVector, vec) : 0;
|
|
35637
|
+
if (lexical.score > 0 || vectorScore > 0.3) {
|
|
35638
|
+
candidates.push({
|
|
35639
|
+
symbol,
|
|
35640
|
+
lexicalScore: lexical.score,
|
|
35641
|
+
vectorScore,
|
|
35642
|
+
matches: lexical.matches
|
|
35643
|
+
});
|
|
35644
|
+
}
|
|
35645
|
+
}
|
|
35646
|
+
}
|
|
35647
|
+
const byLexical = [...candidates].sort((a, b) => b.lexicalScore - a.lexicalScore);
|
|
35648
|
+
const byVector = [...candidates].sort((a, b) => b.vectorScore - a.vectorScore);
|
|
35649
|
+
const lexicalRank = /* @__PURE__ */ new Map();
|
|
35650
|
+
const vectorRank = /* @__PURE__ */ new Map();
|
|
35651
|
+
byLexical.forEach((c, i) => lexicalRank.set(c.symbol.id, i + 1));
|
|
35652
|
+
byVector.forEach((c, i) => vectorRank.set(c.symbol.id, i + 1));
|
|
35653
|
+
const VECTOR_WEIGHT = 0.6;
|
|
35654
|
+
const LEXICAL_WEIGHT = 0.4;
|
|
35655
|
+
const fused = candidates.map((c) => {
|
|
35656
|
+
const lRank = lexicalRank.get(c.symbol.id) ?? candidates.length + 1;
|
|
35657
|
+
const vRank = vectorRank.get(c.symbol.id) ?? candidates.length + 1;
|
|
35658
|
+
const rrfScore = VECTOR_WEIGHT * (1 / (RRF_K + vRank)) + LEXICAL_WEIGHT * (1 / (RRF_K + lRank));
|
|
35659
|
+
return {
|
|
35660
|
+
symbol: c.symbol,
|
|
35661
|
+
score: rrfScore,
|
|
35662
|
+
matches: c.vectorScore > 0.3 ? [...c.matches, `semantic=${c.vectorScore.toFixed(3)}`] : c.matches,
|
|
35663
|
+
filePath: c.symbol.filePath,
|
|
35664
|
+
language: c.symbol.language,
|
|
35665
|
+
content: c.symbol.text,
|
|
35666
|
+
startLine: c.symbol.startLine,
|
|
35667
|
+
endLine: c.symbol.endLine
|
|
35668
|
+
};
|
|
35669
|
+
});
|
|
35670
|
+
const offset = Math.max(0, options.offset ?? 0);
|
|
35671
|
+
const limit = options.limit ?? 20;
|
|
35672
|
+
return fused.sort((a, b) => b.score - a.score || a.filePath.localeCompare(b.filePath)).slice(offset, offset + limit);
|
|
35673
|
+
}
|
|
35674
|
+
async function buildCodeContextIndexWithEmbeddings(options = {}) {
|
|
35675
|
+
const index = buildCodeContextIndex(options);
|
|
35676
|
+
const existingStore = loadVectorStore(index.projectRoot);
|
|
35677
|
+
const existingCount = existingStore ? Object.keys(existingStore.vectors).length : 0;
|
|
35678
|
+
const store = await embedSymbols(index);
|
|
35679
|
+
const vectorCount = Object.keys(store.vectors).length;
|
|
35680
|
+
const newEmbeddings = vectorCount - Math.min(existingCount, vectorCount);
|
|
35681
|
+
return { index, vectorCount, newEmbeddings };
|
|
35682
|
+
}
|
|
35504
35683
|
function dependentsMap(index) {
|
|
35505
35684
|
const map = /* @__PURE__ */ new Map();
|
|
35506
35685
|
for (const file of Object.values(index.files)) {
|
|
@@ -35592,15 +35771,19 @@ function getCodeContextStats(options = {}) {
|
|
|
35592
35771
|
indexPath: getCodeContextIndexPath(index.projectRoot)
|
|
35593
35772
|
};
|
|
35594
35773
|
}
|
|
35595
|
-
var INDEX_VERSION, DEFAULT_MAX_FILES, IGNORE_SEGMENTS;
|
|
35774
|
+
var VECTOR_STORE_VERSION, EMBED_BATCH_SIZE, INDEX_VERSION, DEFAULT_MAX_FILES, IGNORE_SEGMENTS, RRF_K;
|
|
35596
35775
|
var init_code_context_index = __esm({
|
|
35597
35776
|
"src/lib/code-context-index.ts"() {
|
|
35598
35777
|
"use strict";
|
|
35599
35778
|
init_config();
|
|
35600
35779
|
init_code_chunker();
|
|
35780
|
+
init_exe_daemon_client();
|
|
35781
|
+
VECTOR_STORE_VERSION = 1;
|
|
35782
|
+
EMBED_BATCH_SIZE = 64;
|
|
35601
35783
|
INDEX_VERSION = 2;
|
|
35602
35784
|
DEFAULT_MAX_FILES = 5e3;
|
|
35603
35785
|
IGNORE_SEGMENTS = /* @__PURE__ */ new Set(["node_modules", "dist", ".git", "coverage", ".worktrees", ".next", "build", "target", "vendor"]);
|
|
35786
|
+
RRF_K = 60;
|
|
35604
35787
|
}
|
|
35605
35788
|
});
|
|
35606
35789
|
|
package/dist/bin/exe-agent.js
CHANGED
|
@@ -1377,6 +1377,24 @@ var PLATFORM_PROCEDURES = [
|
|
|
1377
1377
|
priority: "p0",
|
|
1378
1378
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
1379
1379
|
},
|
|
1380
|
+
{
|
|
1381
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
1382
|
+
domain: "support",
|
|
1383
|
+
priority: "p1",
|
|
1384
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
1388
|
+
domain: "support",
|
|
1389
|
+
priority: "p0",
|
|
1390
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
1391
|
+
},
|
|
1392
|
+
{
|
|
1393
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
1394
|
+
domain: "support",
|
|
1395
|
+
priority: "p1",
|
|
1396
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
1397
|
+
},
|
|
1380
1398
|
// --- Operations ---
|
|
1381
1399
|
{
|
|
1382
1400
|
title: "Managers must supervise deployed workers",
|
package/dist/bin/exe-assign.js
CHANGED
|
@@ -3532,6 +3532,24 @@ var init_platform_procedures = __esm({
|
|
|
3532
3532
|
priority: "p0",
|
|
3533
3533
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3534
3534
|
},
|
|
3535
|
+
{
|
|
3536
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3537
|
+
domain: "support",
|
|
3538
|
+
priority: "p1",
|
|
3539
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3543
|
+
domain: "support",
|
|
3544
|
+
priority: "p0",
|
|
3545
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3546
|
+
},
|
|
3547
|
+
{
|
|
3548
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3549
|
+
domain: "support",
|
|
3550
|
+
priority: "p1",
|
|
3551
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3552
|
+
},
|
|
3535
3553
|
// --- Operations ---
|
|
3536
3554
|
{
|
|
3537
3555
|
title: "Managers must supervise deployed workers",
|
package/dist/bin/exe-boot.js
CHANGED
|
@@ -3269,6 +3269,24 @@ var init_platform_procedures = __esm({
|
|
|
3269
3269
|
priority: "p0",
|
|
3270
3270
|
content: "When an agent encounters a suspected Exe OS bug, update breakage, MCP/tool failure, installer issue, memory/orchestration defect, or customer-local patch need, it MUST use create_bug_report. Do this before or alongside any local workaround so the report reaches AskExe support directly via the customer's license. Do NOT ask the founder for permission to file a required bug report. If create_bug_report is deferred/lazy-loaded, load it and call it. If it is unavailable in the live MCP surface, report 'create_bug_report unavailable in this session' and save a local report in exe/output \u2014 never claim the tool does not exist unless the live MCP surface was checked. If upstream delivery fails, call support_test (MCP) and include its result in the local report so AskExe can distinguish customer setup, license provisioning, and server intake issues; only ask the founder to run `exe-os support test` if MCP is disconnected/unavailable. Classify first: upstream_bug = reproducible exe-os/platform defect; customer_customization = identity, behavior, procedure, config, branding, workflow preference that belongs in customer-owned layers; emergency_hotfix = temporary local patch. For upstream bugs/emergency hotfixes include version, repro steps, expected/actual, files changed, workaround, and local diff summary. Avoid permanent platform-code patches unless founder approves; if a hotfix is unavoidable, document it in the bug report and re-check after npm update."
|
|
3271
3271
|
},
|
|
3272
|
+
{
|
|
3273
|
+
title: "Bug report status check \u2014 surface available fixes on boot",
|
|
3274
|
+
domain: "support",
|
|
3275
|
+
priority: "p1",
|
|
3276
|
+
content: "Once per session (COO boot only, never repeat), call list_my_bug_reports to check if any previously filed bug reports have been fixed by AskExe. If any report has status 'fixed' with a fixed_version, surface it to the founder immediately: '\u{1F527} N bug fix(es) available \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no reports exist or none are fixed, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
title: "Feature request triage \u2014 upstream feature vs local customization",
|
|
3280
|
+
domain: "support",
|
|
3281
|
+
priority: "p0",
|
|
3282
|
+
content: "When an agent or founder identifies a desired capability that exe-os does not yet provide, the COO (or equivalent coordinator) must decide: is this a local customization (identity, behavior, procedure, config, branding, workflow preference that can be configured in customer-owned layers) or an upstream feature request (a platform capability that requires changes to exe-os code, shipped via npm update)? Local customizations: implement immediately using store_behavior, update_identity, company_procedure, or config changes. Upstream features: use create_feature_request to submit to AskExe. Include use case, business impact, and current workaround. Do NOT ask the founder for permission to file a feature request \u2014 file it proactively when the need is clear."
|
|
3283
|
+
},
|
|
3284
|
+
{
|
|
3285
|
+
title: "Feature request status check \u2014 surface shipped features on boot",
|
|
3286
|
+
domain: "support",
|
|
3287
|
+
priority: "p1",
|
|
3288
|
+
content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
|
|
3289
|
+
},
|
|
3272
3290
|
// --- Operations ---
|
|
3273
3291
|
{
|
|
3274
3292
|
title: "Managers must supervise deployed workers",
|