@pasko70/pibo 2.2.3 → 2.2.5
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/agent-runtime/capabilities.js +9 -1
- package/dist/agent-runtimes/codex-native/adapter.js +5 -0
- package/dist/agent-runtimes/omp/adapter.js +5 -0
- package/dist/agent-runtimes/omp/host-tools.js +1 -1
- package/dist/agent-runtimes/omp/turn.js +2 -0
- package/dist/agent-runtimes/pi/adapter.js +27 -6
- package/dist/agent-runtimes/pi/intent-tracing.js +120 -0
- package/dist/agent-runtimes/pi/routed-session.js +25 -8
- package/dist/agent-runtimes/pi/runtime.js +3 -0
- package/dist/apps/chat/chat-settings-routes.js +44 -3
- package/dist/apps/chat/chat-transcription.js +85 -0
- package/dist/apps/chat/data/chat-data-mappers.js +4 -4
- package/dist/apps/chat/stream.js +23 -9
- package/dist/apps/chat/trace-v2.js +1 -0
- package/dist/apps/chat/web-app.js +49 -0
- package/dist/apps/chat-ui/assets/{dist-CImWCF2M.js → dist-BCRR_a0Z.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-luJVFsmq.js → dist-BK7eaoLT.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BFwTuvyi.js → dist-CTUT484B.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-ltfz1vFX.js → dist-fNgdnmyE.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-rf4HYdoa.js → dist-wq3P0LZj.js} +1 -1
- package/dist/apps/chat-ui/assets/{index-nZQXUpxE.css → index-BJ56TREg.css} +1 -1
- package/dist/apps/chat-ui/assets/index-DsFKL_EZ.js +228 -0
- package/dist/apps/chat-ui/index.html +2 -2
- package/dist/apps/chat-vscode-web/assets/index-R4FTxr78.js +43 -0
- package/dist/apps/chat-vscode-web/index.html +1 -1
- package/dist/apps/vscode-artifacts/latest.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-2.2.5.vsix +0 -0
- package/dist/core/gateway-resource-guard.js +35 -14
- package/dist/core/gateway-settings.js +64 -0
- package/dist/core/session-router.js +5 -1
- package/dist/core/user-settings.js +20 -0
- package/dist/data/ingest-service.js +2 -2
- package/dist/debug/index.js +7 -2
- package/dist/gateway/server.js +2 -0
- package/dist/index.js +5 -0
- package/dist/plugins/builtin.js +4 -2
- package/dist/plugins/openai-chatgpt-transcription.js +12 -0
- package/dist/plugins/openai-transcription.js +12 -0
- package/dist/plugins/registry.js +23 -0
- package/dist/session-ui/terminalRows.js +51 -1
- package/dist/shared/trace-event-projection.js +4 -0
- package/dist/shared/trace-live-reducer.js +4 -0
- package/dist/shared/trace-patch-nodes.js +1 -0
- package/dist/transcription/openai-chatgpt.js +148 -0
- package/dist/transcription/openai.js +72 -0
- package/dist/transcription/types.js +8 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/dist/apps/chat-ui/assets/index-D2Maa2v1.js +0 -226
- package/dist/apps/chat-vscode-web/assets/index-BpurWVnX.js +0 -41
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-2.2.3.vsix +0 -0
package/dist/apps/chat/stream.js
CHANGED
|
@@ -58,36 +58,49 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
|
|
|
58
58
|
}
|
|
59
59
|
break;
|
|
60
60
|
case "tool_call":
|
|
61
|
-
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, eventId);
|
|
61
|
+
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
|
|
62
62
|
frames.push({
|
|
63
63
|
type: "TOOL_CALL_ARGS",
|
|
64
64
|
toolCallId: event.toolCallId,
|
|
65
65
|
toolName: event.toolName,
|
|
66
66
|
args: event.args,
|
|
67
67
|
argsComplete: event.argsComplete,
|
|
68
|
+
...(event.intent ? { intent: event.intent } : {}),
|
|
68
69
|
runId: eventId,
|
|
69
70
|
sourceEventType: "tool_call",
|
|
70
71
|
});
|
|
71
72
|
break;
|
|
72
|
-
case "tool_execution_started":
|
|
73
|
-
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, eventId);
|
|
73
|
+
case "tool_execution_started": {
|
|
74
|
+
const started = ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
|
|
75
|
+
if (!started && event.intent) {
|
|
76
|
+
frames.push({
|
|
77
|
+
type: "TOOL_CALL_START",
|
|
78
|
+
toolCallId: event.toolCallId,
|
|
79
|
+
toolName: event.toolName,
|
|
80
|
+
args: event.args,
|
|
81
|
+
intent: event.intent,
|
|
82
|
+
runId: eventId,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
74
85
|
break;
|
|
86
|
+
}
|
|
75
87
|
case "tool_execution_updated":
|
|
76
|
-
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, eventId);
|
|
88
|
+
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
|
|
77
89
|
frames.push({
|
|
78
90
|
type: "TOOL_CALL_ARGS",
|
|
79
91
|
toolCallId: event.toolCallId,
|
|
80
92
|
toolName: event.toolName,
|
|
81
93
|
args: event.args,
|
|
82
94
|
argsComplete: true,
|
|
95
|
+
...(event.intent ? { intent: event.intent } : {}),
|
|
83
96
|
runId: eventId,
|
|
84
97
|
partialResult: event.partialResult,
|
|
85
98
|
sourceEventType: "tool_execution_updated",
|
|
86
99
|
});
|
|
87
100
|
break;
|
|
88
101
|
case "tool_execution_finished":
|
|
89
|
-
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, undefined, eventId);
|
|
90
|
-
frames.push({ type: "TOOL_CALL_RESULT", toolCallId: event.toolCallId, toolName: event.toolName, result: event.result, isError: event.isError, runId: eventId });
|
|
102
|
+
ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, undefined, event.intent, eventId);
|
|
103
|
+
frames.push({ type: "TOOL_CALL_RESULT", toolCallId: event.toolCallId, toolName: event.toolName, result: event.result, isError: event.isError, ...(event.intent ? { intent: event.intent } : {}), runId: eventId });
|
|
91
104
|
break;
|
|
92
105
|
case "subagent_session":
|
|
93
106
|
frames.push({
|
|
@@ -149,9 +162,10 @@ function ensureReasoningStarted(frames, state, messageId, runId) {
|
|
|
149
162
|
state.reasoningMessageIds.add(messageId);
|
|
150
163
|
frames.push({ type: "REASONING_MESSAGE_START", messageId, runId });
|
|
151
164
|
}
|
|
152
|
-
function ensureToolCallStarted(frames, state, toolCallId, toolName, args, runId) {
|
|
165
|
+
function ensureToolCallStarted(frames, state, toolCallId, toolName, args, intent, runId) {
|
|
153
166
|
if (state.toolCallIds.has(toolCallId))
|
|
154
|
-
return;
|
|
167
|
+
return false;
|
|
155
168
|
state.toolCallIds.add(toolCallId);
|
|
156
|
-
frames.push({ type: "TOOL_CALL_START", toolCallId, toolName, args, runId });
|
|
169
|
+
frames.push({ type: "TOOL_CALL_START", toolCallId, toolName, args, ...(intent ? { intent } : {}), runId });
|
|
170
|
+
return true;
|
|
157
171
|
}
|
|
@@ -183,6 +183,7 @@ function compactTraceNode(node, payloadStore, piboSessionId, depth) {
|
|
|
183
183
|
linkedPiboSessionId: node.linkedPiboSessionId,
|
|
184
184
|
toolCallId: node.toolCallId,
|
|
185
185
|
runId: node.runId,
|
|
186
|
+
intent: node.intent,
|
|
186
187
|
eventId: node.eventId,
|
|
187
188
|
entryId: node.entryId,
|
|
188
189
|
source: node.source,
|
|
@@ -47,6 +47,7 @@ import { createDefaultWebAnnotationStore } from "../../web-annotations/store.js"
|
|
|
47
47
|
import { CHAT_WEB_MOUNT_PATH, isChatAppPath, responseBuiltChatAsset, responseBuiltChatPublicFile, responseChatAppShell, isVscodeAppPath, responseBuiltVscodeAsset, responseVscodeAppShell } from "./static-assets.js";
|
|
48
48
|
import { executeProviderAuthAction, isProviderAuthAction, providerAuthActionResponse, readProviderAuthCatalog, } from "./provider-auth-actions.js";
|
|
49
49
|
import { ensurePrivateChatUploadDirectory, prepareChatFileAttachments, resolveDownloadPath, responseChatFileDownload, saveUploadedChatFiles } from "./chat-files.js";
|
|
50
|
+
import { responseChatTranscription, responseChatTranscriptionProviders } from "./chat-transcription.js";
|
|
50
51
|
import { chatSettingsRoute, chatSettingsRouteInvalidatesBootstrapCatalog, chatSettingsRouteRequiresSameOrigin, handleChatSettingsRoute, } from "./chat-settings-routes.js";
|
|
51
52
|
import { chatCapabilityRoute, chatCapabilityRouteRequiresSameOrigin, handleChatCapabilityRoute, } from "./chat-capability-routes.js";
|
|
52
53
|
import { chatUserSkillRoute, chatUserSkillRouteRequiresSameOrigin, handleChatUserSkillRoute, syncChatUserSkills, } from "./chat-user-skill-routes.js";
|
|
@@ -88,6 +89,7 @@ function loadBootstrapCatalog(state, context, webSession) {
|
|
|
88
89
|
capabilities: {
|
|
89
90
|
actions: context.channelContext.getGatewayActions(),
|
|
90
91
|
},
|
|
92
|
+
integrations: state.integrations,
|
|
91
93
|
}));
|
|
92
94
|
state.bootstrapCatalogCache = { expiresAt: now + BOOTSTRAP_CATALOG_CACHE_TTL_MS, value };
|
|
93
95
|
value.catch(() => {
|
|
@@ -229,6 +231,34 @@ function createReliabilityStore(path) {
|
|
|
229
231
|
function createDataStore(options) {
|
|
230
232
|
return new PiboDataStore(options.dataStorePath, { payloadRootDir: options.dataPayloadRootDir });
|
|
231
233
|
}
|
|
234
|
+
function resolveVscodeWebUrl(value) {
|
|
235
|
+
const trimmed = value?.trim();
|
|
236
|
+
if (!trimmed)
|
|
237
|
+
return undefined;
|
|
238
|
+
const configurationOrigin = "https://pibo.invalid";
|
|
239
|
+
try {
|
|
240
|
+
const parsed = new URL(trimmed, `${configurationOrigin}/`);
|
|
241
|
+
if (trimmed.startsWith("/") && !trimmed.includes("\\") && parsed.origin === configurationOrigin) {
|
|
242
|
+
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// Fall through to the startup error below.
|
|
247
|
+
}
|
|
248
|
+
throw new Error("VS Code Web URL must be a same-origin absolute path beginning with /");
|
|
249
|
+
}
|
|
250
|
+
function resolveChatWebIntegrations(options) {
|
|
251
|
+
const url = resolveVscodeWebUrl(options.vscodeWeb?.url ?? process.env.PIBO_VSCODE_WEB_URL);
|
|
252
|
+
if (!url)
|
|
253
|
+
return {};
|
|
254
|
+
const workspaceRoot = (options.vscodeWeb?.workspaceRoot ?? process.env.PIBO_VSCODE_WEB_WORKSPACE_ROOT)?.trim();
|
|
255
|
+
return {
|
|
256
|
+
vscode: {
|
|
257
|
+
url,
|
|
258
|
+
...(workspaceRoot ? { workspaceRoot } : {}),
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
}
|
|
232
262
|
function createPersistenceMetrics() {
|
|
233
263
|
return { eventCount: 0, errorCount: 0, totalIndexingMs: 0, maxIndexingMs: 0 };
|
|
234
264
|
}
|
|
@@ -3368,6 +3398,7 @@ async function sendChatMessage(input) {
|
|
|
3368
3398
|
return responseJson({ output, event: accepted });
|
|
3369
3399
|
}
|
|
3370
3400
|
export function createChatWebApp(options = {}) {
|
|
3401
|
+
const integrations = resolveChatWebIntegrations(options);
|
|
3371
3402
|
ensurePrivateChatUploadDirectory();
|
|
3372
3403
|
const defaultProfile = options.defaultProfile ?? "base";
|
|
3373
3404
|
const dataStore = createDataStore(options);
|
|
@@ -3411,6 +3442,7 @@ export function createChatWebApp(options = {}) {
|
|
|
3411
3442
|
workflowLifecycleEventStore: new ChatWorkflowLifecycleEventStore(dataStore),
|
|
3412
3443
|
workflowPromptAssetStore: new ChatWorkflowPromptAssetStore(dataStore),
|
|
3413
3444
|
telemetryRetentionMaintenance: {},
|
|
3445
|
+
integrations,
|
|
3414
3446
|
};
|
|
3415
3447
|
let disposed = false;
|
|
3416
3448
|
const requireSession = (request, context) => context.requireSession({
|
|
@@ -3437,6 +3469,10 @@ export function createChatWebApp(options = {}) {
|
|
|
3437
3469
|
},
|
|
3438
3470
|
async handleRequest(request, context) {
|
|
3439
3471
|
const url = new URL(request.url);
|
|
3472
|
+
if (url.pathname === `${CHAT_WEB_API_PREFIX}/auth-check` && request.method === "GET") {
|
|
3473
|
+
await requireSession(request, context);
|
|
3474
|
+
return new Response(null, { status: 204, headers: { "cache-control": "no-store" } });
|
|
3475
|
+
}
|
|
3440
3476
|
if (isTelemetryRetentionMaintenanceDue({ state: state.telemetryRetentionMaintenance })) {
|
|
3441
3477
|
maybeRunTelemetryRetentionMaintenance({
|
|
3442
3478
|
state: state.telemetryRetentionMaintenance,
|
|
@@ -3476,6 +3512,15 @@ export function createChatWebApp(options = {}) {
|
|
|
3476
3512
|
await requireSession(request, context);
|
|
3477
3513
|
return responseJson(await saveUploadedChatFiles(request), { status: 201 });
|
|
3478
3514
|
}
|
|
3515
|
+
if (url.pathname === `${CHAT_WEB_API_PREFIX}/transcription/providers` && request.method === "GET") {
|
|
3516
|
+
await requireSession(request, context);
|
|
3517
|
+
return await responseChatTranscriptionProviders(context);
|
|
3518
|
+
}
|
|
3519
|
+
if (url.pathname === `${CHAT_WEB_API_PREFIX}/transcription` && request.method === "POST") {
|
|
3520
|
+
requireSameOriginMultipartRequest(request);
|
|
3521
|
+
await requireSession(request, context);
|
|
3522
|
+
return await responseChatTranscription(request, context);
|
|
3523
|
+
}
|
|
3479
3524
|
if (url.pathname === CHAT_WEB_API_PREFIX + "/download" && request.method === "GET") {
|
|
3480
3525
|
const webSession = await requireSession(request, context);
|
|
3481
3526
|
const path = url.searchParams.get("path")?.trim();
|
|
@@ -4257,11 +4302,15 @@ export function createChatWebApp(options = {}) {
|
|
|
4257
4302
|
if (chatSettingsRouteRequiresSameOrigin(settingsRoute))
|
|
4258
4303
|
requireSameOriginJsonRequest(request);
|
|
4259
4304
|
const webSession = await requireSession(request, context);
|
|
4305
|
+
const transcriptionProviderIds = settingsRoute.kind === "user-settings" && settingsRoute.action === "update"
|
|
4306
|
+
? (await context.channelContext.getTranscriptionProviderInfos?.())?.map((provider) => provider.id)
|
|
4307
|
+
: undefined;
|
|
4260
4308
|
const response = await handleChatSettingsRoute({
|
|
4261
4309
|
route: settingsRoute,
|
|
4262
4310
|
request,
|
|
4263
4311
|
cwd: process.cwd(),
|
|
4264
4312
|
dataStore: state.dataStore,
|
|
4313
|
+
transcriptionProviderIds,
|
|
4265
4314
|
});
|
|
4266
4315
|
if (chatSettingsRouteInvalidatesBootstrapCatalog(settingsRoute))
|
|
4267
4316
|
invalidateBootstrapCatalogCache(state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as e,L as t,R as n,i as r,r as i,s as a,u as o}from"./dist-CqM4On9D.js";import{n as s,t as c}from"./index-
|
|
1
|
+
import{K as e,L as t,R as n,i as r,r as i,s as a,u as o}from"./dist-CqM4On9D.js";import{n as s,t as c}from"./index-DsFKL_EZ.js";var l=i.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:`!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso`,nodeNames:`⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity`,maxTerm:36,nodeProps:[[`isolate`,-3,3,13,17,``]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new r(`b~RP#q#rU~XP#q#r[~aOT~~`,17,4),new r("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new r(`[~RPwxU~ZOp~~`,11,15),new r(`[~RPrsU~ZOn~~`,11,14),new r("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new r("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),u=s.parser.configure({top:`SingleExpression`}),d=l.configure({props:[t({Text:n.content,Is:n.definitionOperator,AttributeName:n.attributeName,VueAttributeName:n.keyword,Identifier:n.variableName,"AttributeValue ScriptAttributeValue":n.attributeValue,Entity:n.character,"{{ }}":n.brace,"@ :":n.punctuation})]}),f={parser:u},p=d.configure({wrap:e((e,t)=>e.name==`InterpolationContent`?f:null)}),m=d.configure({wrap:e((e,t)=>e.name==`AttributeScript`?f:null),top:`Attribute`}),h={parser:p},g={parser:m},_=c();function v(t){return t.configure({dialect:`selfClosing`,wrap:e(b)},`vue`)}var y=v(_.language);function b(e,t){switch(e.name){case`Attribute`:return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?g:null;case`Text`:return h}return null}function x(e={}){let t=_;if(e.base){if(e.base.language.name!=`html`||!(e.base.language instanceof a))throw RangeError(`The base option must be the result of calling html(...)`);t=e.base}return new o(t.language==_.language?y:v(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:[`{`,`"`]}})])}export{x as vue};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as e,L as t,R as n,n as r,r as i,s as a,u as o}from"./dist-CqM4On9D.js";import{n as s,t as c}from"./index-
|
|
1
|
+
import{K as e,L as t,R as n,n as r,r as i,s as a,u as o}from"./dist-CqM4On9D.js";import{n as s,t as c}from"./index-DsFKL_EZ.js";var l=1,u=33,d=34,f=35,p=36,m=new r(e=>{let t=e.pos;for(;;){if(e.next==10){e.advance();break}if(e.next==123&&e.peek(1)==123||e.next<0)break;e.advance()}e.pos>t&&e.acceptToken(l)});function h(e,t,n){return new r(r=>{let i=r.pos;for(;r.next!=e&&r.next>=0&&(n||r.next!=38&&(r.next!=123||r.peek(1)!=123));)r.advance();r.pos>i&&r.acceptToken(t)})}var g=h(39,u,!1),_=h(34,d,!1),v=h(39,f,!0),y=h(34,p,!0),b=i.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<<GrOOQO<<Gr<<GrOOQO1G/[1G/[OOOS-E6x-E6xOOQO1G.}1G.}OOOQ-E6y-E6yOOQOAN=^AN=^",stateData:"&d~OvOS~OPROSQOVROWRO~OZTO[XO^VOaUOhWO~OR]OU^O~O[`O^aO~O[bO~O[cO~O[dO~ObeO~ObfO~ObgO~ORhO~O]kOwiO~O[lO~O_mO~OynOzoO~OysOztO~O[uO~O]wOwiO~O_yOwiO~OtzO~Os|O~OSQOV!OOW!OOr!OOy!QO~OSQOV!ROW!ROq!ROz!QO~O_!TOwiO~O]!UO~Oy!VO~Oz!VO~OSQOV!OOW!OOr!OOy!XO~OSQOV!ROW!ROq!ROz!XO~O]!ZO~O",goto:"#dyPPPPPzPPPP!WPPPPP!WPP!Z!^!a!d!dP!g!j!m!p!v#Q#WPPPPPPPP#^SROSS!Os!PT!Rt!SRYPRqeR{nR}oRZPRqfR[PRqgQSOR_SQj`SvjxRxlQ!PsR!W!PQ!StR!Y!SQpeRrf",nodeNames:`⚠ Text Content }} {{ Interpolation InterpolationContent Entity InvalidEntity Attribute BoundAttributeName [ Identifier ] ( ) ReferenceName # Is ExpressionAttributeValue AttributeInterpolation AttributeInterpolation EventName DirectiveName * StatementAttributeValue AttributeName AttributeValue`,maxTerm:42,nodeProps:[[`openedBy`,3,`{{`,15,`(`],[`closedBy`,4,`}}`,14,`)`],[`isolate`,-4,5,19,25,27,``]],skippedNodes:[0],repeatNodeCount:4,tokenData:"0r~RyOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mqr#rrs%jst&Qtv#rvw&hwx)zxy*byz*xz{+`{}#r}!O+v!O!P-]!P!Q#r!Q![+v![!]+v!]!_#r!_!`-s!`!c#r!c!}+v!}#O.Z#O#P#r#P#Q.q#Q#R#r#R#S+v#S#T#r#T#o+v#o#p/X#p#q#r#q#r0Z#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vQ#wTUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rQ$ZSO#q#r#r;'S#r;'S;=`$g<%lO#rQ$jP;=`<%l#rR$t[UQvPOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mq#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR%qTyPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&XTaPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&oXUQWPOp'[pq#rq!]'[!]!^#r!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R'aXUQOp'[pq#rq!]'[!]!^'|!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R(TTVPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR(gXOp'[pq#rq!]'[!]!^'|!^#q'[#q#r)S#r;'S'[;'S;=`)t<%lO'[P)VUOp)Sq!])S!]!^)i!^;'S)S;'S;=`)n<%lO)SP)nOVPP)qP;=`<%l)SR)wP;=`<%l'[R*RTzPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR*iT^PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+PT_PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+gThPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+}b[PUQO}#r}!O+v!O!Q#r!Q![+v![!]+v!]!c#r!c!}+v!}#R#r#R#S+v#S#T#r#T#o+v#o#q#r#q#r$W#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vR-YP;=`<%l+vR-dTwPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR-zTUQbPO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.bTZPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.xT]PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/^VUQO#o#r#o#p/s#p#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/zTSPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#r~0^TO#q#r#q#r0m#r;'S#r;'S;=`$g<%lO#r~0rOR~",tokenizers:[m,g,_,v,y,0,1],topRules:{Content:[0,2],Attribute:[1,9]},tokenPrec:0}),x=s.parser.configure({top:`SingleExpression`}),S=b.configure({props:[t({Text:n.content,Is:n.definitionOperator,AttributeName:n.attributeName,"AttributeValue ExpressionAttributeValue StatementAttributeValue":n.attributeValue,Entity:n.character,InvalidEntity:n.invalid,"BoundAttributeName/Identifier":n.attributeName,"EventName/Identifier":n.special(n.attributeName),"ReferenceName/Identifier":n.variableName,"DirectiveName/Identifier":n.keyword,"{{ }}":n.brace,"( )":n.paren,"[ ]":n.bracket,"# '*'":n.punctuation})]}),C={parser:x},w={parser:s.parser},T=S.configure({wrap:e((e,t)=>e.name==`InterpolationContent`?C:null)}),E=S.configure({wrap:e((e,t)=>e.name==`InterpolationContent`?C:e.name==`AttributeInterpolation`?e.node.parent?.name==`StatementAttributeValue`?w:C:null),top:`Attribute`}),D={parser:T},O={parser:E},k=c({selfClosingTags:!0});function A(t){return t.configure({wrap:e(M)},`angular`)}var j=A(k.language);function M(e,t){switch(e.name){case`Attribute`:return/^[*#(\[]|\{\{/.test(t.read(e.from,e.to))?O:null;case`Text`:return D}return null}function N(e={}){let t=k;if(e.base){if(e.base.language.name!=`html`||!(e.base.language instanceof a))throw RangeError(`The base option must be the result of calling html(...)`);t=e.base}return new o(t.language==k.language?j:A(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:[`[`,`{`,`"`]},indentOnInput:/^\s*[\}\]]$/})])}export{N as angular};
|